From cc02ac129e1b1a8591132883098f752e8a04446f Mon Sep 17 00:00:00 2001 From: Heng Ge Date: Tue, 20 Jan 2026 13:06:41 -0800 Subject: [PATCH 01/20] commit --- Cargo.lock | 607 ++++-- Cargo.toml | 2 + rust/lance/Cargo.toml | 15 + rust/lance/benches/mem_random_access.rs | 585 ++++++ rust/lance/benches/mem_read_benchmark.rs | 1122 +++++++++++ rust/lance/benches/mem_wal_write.rs | 586 ++++++ rust/lance/src/dataset.rs | 1 + rust/lance/src/dataset/mem_wal.rs | 49 + rust/lance/src/dataset/mem_wal/api.rs | 321 +++ rust/lance/src/dataset/mem_wal/config.rs | 182 ++ rust/lance/src/dataset/mem_wal/dispatcher.rs | 415 ++++ rust/lance/src/dataset/mem_wal/epoch.rs | 372 ++++ rust/lance/src/dataset/mem_wal/manifest.rs | 480 +++++ rust/lance/src/dataset/mem_wal/read.rs | 18 + .../src/dataset/mem_wal/read/memtable.rs | 44 + .../src/dataset/mem_wal/read/memtable/exec.rs | 26 + .../mem_wal/read/memtable/exec/btree.rs | 482 +++++ .../dataset/mem_wal/read/memtable/exec/fts.rs | 453 +++++ .../mem_wal/read/memtable/exec/range_scan.rs | 366 ++++ .../mem_wal/read/memtable/exec/scan.rs | 315 +++ .../mem_wal/read/memtable/exec/split.rs | 314 +++ .../mem_wal/read/memtable/exec/vector.rs | 368 ++++ .../dataset/mem_wal/read/memtable/scanner.rs | 898 +++++++++ rust/lance/src/dataset/mem_wal/util.rs | 210 ++ rust/lance/src/dataset/mem_wal/write.rs | 48 + .../src/dataset/mem_wal/write/batch_store.rs | 758 +++++++ .../src/dataset/mem_wal/write/batch_write.rs | 606 ++++++ rust/lance/src/dataset/mem_wal/write/flush.rs | 948 +++++++++ .../src/dataset/mem_wal/write/immutable.rs | 268 +++ .../src/dataset/mem_wal/write/indexes.rs | 1783 +++++++++++++++++ .../src/dataset/mem_wal/write/memtable.rs | 1053 ++++++++++ .../mem_wal/write/memtable_perf_test.rs | 269 +++ .../dataset/mem_wal/write/sequenced_batch.rs | 209 ++ rust/lance/src/dataset/mem_wal/write/stats.rs | 286 +++ rust/lance/src/dataset/mem_wal/write/wal.rs | 530 +++++ .../dataset/mem_wal/write/watchable_cell.rs | 297 +++ .../lance/src/dataset/mem_wal/write/writer.rs | 1391 +++++++++++++ 37 files changed, 16526 insertions(+), 151 deletions(-) create mode 100644 rust/lance/benches/mem_random_access.rs create mode 100644 rust/lance/benches/mem_read_benchmark.rs create mode 100644 rust/lance/benches/mem_wal_write.rs create mode 100644 rust/lance/src/dataset/mem_wal.rs create mode 100644 rust/lance/src/dataset/mem_wal/api.rs create mode 100644 rust/lance/src/dataset/mem_wal/config.rs create mode 100644 rust/lance/src/dataset/mem_wal/dispatcher.rs create mode 100644 rust/lance/src/dataset/mem_wal/epoch.rs create mode 100644 rust/lance/src/dataset/mem_wal/manifest.rs create mode 100644 rust/lance/src/dataset/mem_wal/read.rs create mode 100644 rust/lance/src/dataset/mem_wal/read/memtable.rs create mode 100644 rust/lance/src/dataset/mem_wal/read/memtable/exec.rs create mode 100644 rust/lance/src/dataset/mem_wal/read/memtable/exec/btree.rs create mode 100644 rust/lance/src/dataset/mem_wal/read/memtable/exec/fts.rs create mode 100644 rust/lance/src/dataset/mem_wal/read/memtable/exec/range_scan.rs create mode 100644 rust/lance/src/dataset/mem_wal/read/memtable/exec/scan.rs create mode 100644 rust/lance/src/dataset/mem_wal/read/memtable/exec/split.rs create mode 100644 rust/lance/src/dataset/mem_wal/read/memtable/exec/vector.rs create mode 100644 rust/lance/src/dataset/mem_wal/read/memtable/scanner.rs create mode 100644 rust/lance/src/dataset/mem_wal/util.rs create mode 100644 rust/lance/src/dataset/mem_wal/write.rs create mode 100644 rust/lance/src/dataset/mem_wal/write/batch_store.rs create mode 100644 rust/lance/src/dataset/mem_wal/write/batch_write.rs create mode 100644 rust/lance/src/dataset/mem_wal/write/flush.rs create mode 100644 rust/lance/src/dataset/mem_wal/write/immutable.rs create mode 100644 rust/lance/src/dataset/mem_wal/write/indexes.rs create mode 100644 rust/lance/src/dataset/mem_wal/write/memtable.rs create mode 100644 rust/lance/src/dataset/mem_wal/write/memtable_perf_test.rs create mode 100644 rust/lance/src/dataset/mem_wal/write/sequenced_batch.rs create mode 100644 rust/lance/src/dataset/mem_wal/write/stats.rs create mode 100644 rust/lance/src/dataset/mem_wal/write/wal.rs create mode 100644 rust/lance/src/dataset/mem_wal/write/watchable_cell.rs create mode 100644 rust/lance/src/dataset/mem_wal/write/writer.rs diff --git a/Cargo.lock b/Cargo.lock index c887678be54..0f95bd0eef5 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -327,7 +327,7 @@ dependencies = [ "arrow-data", "arrow-schema", "arrow-select", - "flatbuffers", + "flatbuffers 25.12.19", "lz4_flex 0.12.0", "zstd", ] @@ -580,6 +580,15 @@ dependencies = [ "num-traits", ] +[[package]] +name = "atomic" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a89cbf775b137e9b968e67227ef7f775587cde3fd31b0d8599dbd0f598a48340" +dependencies = [ + "bytemuck", +] + [[package]] name = "atomic-waker" version = "1.1.2" @@ -636,9 +645,9 @@ dependencies = [ [[package]] name = "aws-lc-rs" -version = "1.15.3" +version = "1.15.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e84ce723ab67259cfeb9877c6a639ee9eb7a27b28123abd71db7f0d5d0cc9d86" +checksum = "6a88aab2464f1f25453baa7a07c84c5b7684e274054ba06817f382357f77a288" dependencies = [ "aws-lc-sys", "zeroize", @@ -646,9 +655,9 @@ dependencies = [ [[package]] name = "aws-lc-sys" -version = "0.36.0" +version = "0.35.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43a442ece363113bd4bd4c8b18977a7798dd4d3c3383f34fb61936960e8f4ad8" +checksum = "b45afffdee1e7c9126814751f88dddc747f41d91da16c9551a0f1e8a11e788a1" dependencies = [ "cc", "cmake", @@ -658,9 +667,9 @@ dependencies = [ [[package]] name = "aws-runtime" -version = "1.5.18" +version = "1.5.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "959dab27ce613e6c9658eb3621064d0e2027e5f2acb65bc526a43577facea557" +checksum = "d81b5b2898f6798ad58f484856768bca817e3cd9de0974c24ae0f1113fe88f1b" dependencies = [ "aws-credential-types", "aws-sigv4", @@ -683,16 +692,15 @@ dependencies = [ [[package]] name = "aws-sdk-dynamodb" -version = "1.102.0" +version = "1.101.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5f7e6a53cf5ee8b7041c73106d9a93480b47f8b955466262b043aab0b5bf489" +checksum = "b6f98cd9e5f2fc790aff1f393bc3c8680deea31c05d3c6f23b625cdc50b1b6b4" dependencies = [ "aws-credential-types", "aws-runtime", "aws-smithy-async", "aws-smithy-http", "aws-smithy-json", - "aws-smithy-observability", "aws-smithy-runtime", "aws-smithy-runtime-api", "aws-smithy-types", @@ -706,9 +714,9 @@ dependencies = [ [[package]] name = "aws-sdk-s3" -version = "1.120.0" +version = "1.119.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06673901e961f20fa8d7da907da48f7ad6c1b383e3726c22bd418900f015abe1" +checksum = "1d65fddc3844f902dfe1864acb8494db5f9342015ee3ab7890270d36fbd2e01c" dependencies = [ "aws-credential-types", "aws-runtime", @@ -718,7 +726,6 @@ dependencies = [ "aws-smithy-eventstream", "aws-smithy-http", "aws-smithy-json", - "aws-smithy-observability", "aws-smithy-runtime", "aws-smithy-runtime-api", "aws-smithy-types", @@ -731,7 +738,7 @@ dependencies = [ "http 0.2.12", "http 1.4.0", "http-body 0.4.6", - "lru 0.16.3", + "lru", "percent-encoding", "regex-lite", "sha2", @@ -741,16 +748,15 @@ dependencies = [ [[package]] name = "aws-sdk-sso" -version = "1.92.0" +version = "1.91.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7d63bd2bdeeb49aa3f9b00c15e18583503b778b2e792fc06284d54e7d5b6566" +checksum = "8ee6402a36f27b52fe67661c6732d684b2635152b676aa2babbfb5204f99115d" dependencies = [ "aws-credential-types", "aws-runtime", "aws-smithy-async", "aws-smithy-http", "aws-smithy-json", - "aws-smithy-observability", "aws-smithy-runtime", "aws-smithy-runtime-api", "aws-smithy-types", @@ -764,16 +770,15 @@ dependencies = [ [[package]] name = "aws-sdk-ssooidc" -version = "1.94.0" +version = "1.93.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "532d93574bf731f311bafb761366f9ece345a0416dbcc273d81d6d1a1205239b" +checksum = "a45a7f750bbd170ee3677671ad782d90b894548f4e4ae168302c57ec9de5cb3e" dependencies = [ "aws-credential-types", "aws-runtime", "aws-smithy-async", "aws-smithy-http", "aws-smithy-json", - "aws-smithy-observability", "aws-smithy-runtime", "aws-smithy-runtime-api", "aws-smithy-types", @@ -787,16 +792,15 @@ dependencies = [ [[package]] name = "aws-sdk-sts" -version = "1.96.0" +version = "1.95.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "357e9a029c7524db6a0099cd77fbd5da165540339e7296cca603531bc783b56c" +checksum = "55542378e419558e6b1f398ca70adb0b2088077e79ad9f14eb09441f2f7b2164" dependencies = [ "aws-credential-types", "aws-runtime", "aws-smithy-async", "aws-smithy-http", "aws-smithy-json", - "aws-smithy-observability", "aws-smithy-query", "aws-smithy-runtime", "aws-smithy-runtime-api", @@ -850,9 +854,9 @@ dependencies = [ [[package]] name = "aws-smithy-checksums" -version = "0.63.13" +version = "0.63.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23374b9170cbbcc6f5df8dc5ebb9b6c5c28a3c8f599f0e8b8b10eb6f4a5c6e74" +checksum = "87294a084b43d649d967efe58aa1f9e0adc260e13a6938eb904c0ae9b45824ae" dependencies = [ "aws-smithy-http", "aws-smithy-types", @@ -942,9 +946,9 @@ dependencies = [ [[package]] name = "aws-smithy-observability" -version = "0.2.0" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef1fcbefc7ece1d70dcce29e490f269695dfca2d2bacdeaf9e5c3f799e4e6a42" +checksum = "17f616c3f2260612fe44cede278bafa18e73e6479c4e393e2c4518cf2a9a228a" dependencies = [ "aws-smithy-runtime-api", ] @@ -961,9 +965,9 @@ dependencies = [ [[package]] name = "aws-smithy-runtime" -version = "1.9.8" +version = "1.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb5b6167fcdf47399024e81ac08e795180c576a20e4d4ce67949f9a88ae37dc1" +checksum = "a392db6c583ea4a912538afb86b7be7c5d8887d91604f50eb55c262ee1b4a5f5" dependencies = [ "aws-smithy-async", "aws-smithy-http", @@ -985,9 +989,9 @@ dependencies = [ [[package]] name = "aws-smithy-runtime-api" -version = "1.10.0" +version = "1.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "efce7aaaf59ad53c5412f14fc19b2d5c6ab2c3ec688d272fd31f76ec12f44fb0" +checksum = "ab0d43d899f9e508300e587bf582ba54c27a452dd0a9ea294690669138ae14a2" dependencies = [ "aws-smithy-async", "aws-smithy-types", @@ -1002,9 +1006,9 @@ dependencies = [ [[package]] name = "aws-smithy-types" -version = "1.3.6" +version = "1.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65f172bcb02424eb94425db8aed1b6d583b5104d4d5ddddf22402c661a320048" +checksum = "905cb13a9895626d49cf2ced759b062d913834c7482c38e49557eac4e6193f01" dependencies = [ "base64-simd", "bytes", @@ -1475,6 +1479,9 @@ name = "bytes" version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b35204fbdc0b3f4446b89fc1ac2cf84a8a68971995d0bf2e925ec7cd960f9cb3" +dependencies = [ + "serde", +] [[package]] name = "bytes-utils" @@ -1503,9 +1510,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.53" +version = "1.2.52" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "755d2fce177175ffca841e9a06afdb2c4ab0f593d53b4dee48147dfaade85932" +checksum = "cd4932aefd12402b36c60956a4fe0035421f544799057659ff86f923657aada3" dependencies = [ "find-msvc-tools", "jobserver", @@ -1542,9 +1549,9 @@ checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" [[package]] name = "chrono" -version = "0.4.43" +version = "0.4.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fac4744fb15ae8337dc853fee7fb3f4e48c0fbaa23d0afe49c447b4fab126118" +checksum = "145052bdd345b87320e369255277e3fb5152762ad123a901ef5c262dd38fe8d2" dependencies = [ "iana-time-zone", "js-sys", @@ -1637,9 +1644,9 @@ dependencies = [ [[package]] name = "clap_lex" -version = "0.7.7" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3e64b0cc0439b12df2fa678eae89a1c56a529fd067a9115f7827f1fffd22b32" +checksum = "a1d728cc89cf3aee9ff92b05e62b19ee65a02b5702cff7d5a377e32c6ae29d8d" [[package]] name = "cmake" @@ -1658,9 +1665,9 @@ checksum = "b05b61dc5112cbb17e4b6cd61790d9845d13888356391624cbe7e41efeac1e75" [[package]] name = "comfy-table" -version = "7.2.2" +version = "7.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "958c5d6ecf1f214b4c2bbbbf6ab9523a864bd136dcf71a7e8904799acfe1ad47" +checksum = "b03b7db8e0b4b2fdad6c551e634134e99ec000e5c8c3b6856c65e8bbaded7a3b" dependencies = [ "unicode-segmentation", "unicode-width", @@ -1798,9 +1805,9 @@ dependencies = [ [[package]] name = "crc" -version = "3.3.0" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9710d3b3739c2e349eb44fe848ad0b7c8cb1e42bd87ee49371df2f7acaf3e675" +checksum = "5eb8a2a1cd12ab0d987a5d5e825195d372001a4094a0376319d5a0ad71c1ba0d" dependencies = [ "crc-catalog", ] @@ -1813,14 +1820,15 @@ checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5" [[package]] name = "crc-fast" -version = "1.9.0" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fd92aca2c6001b1bf5ba0ff84ee74ec8501b52bbef0cac80bf25a6c1d87a83d" +checksum = "6ddc2d09feefeee8bd78101665bd8645637828fa9317f9f292496dbbd8c65ff3" dependencies = [ "crc", "digest", + "rand 0.9.2", + "regex", "rustversion", - "spin 0.10.0", ] [[package]] @@ -1916,6 +1924,16 @@ dependencies = [ "crossbeam-utils", ] +[[package]] +name = "crossbeam-skiplist" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df29de440c58ca2cc6e587ec3d22347551a32435fbde9d2bff64e78a9ffa151b" +dependencies = [ + "crossbeam-epoch", + "crossbeam-utils", +] + [[package]] name = "crossbeam-utils" version = "0.8.21" @@ -2144,7 +2162,7 @@ dependencies = [ "futures", "itertools 0.14.0", "log", - "object_store", + "object_store 0.12.4", "parking_lot", "parquet", "rand 0.9.2", @@ -2177,7 +2195,7 @@ dependencies = [ "futures", "itertools 0.14.0", "log", - "object_store", + "object_store 0.12.4", "parking_lot", "tokio", ] @@ -2202,7 +2220,7 @@ dependencies = [ "futures", "itertools 0.14.0", "log", - "object_store", + "object_store 0.12.4", "tokio", ] @@ -2221,7 +2239,7 @@ dependencies = [ "indexmap", "libc", "log", - "object_store", + "object_store 0.12.4", "parquet", "paste", "sqlparser", @@ -2263,7 +2281,7 @@ dependencies = [ "glob", "itertools 0.14.0", "log", - "object_store", + "object_store 0.12.4", "rand 0.9.2", "tokio", "url", @@ -2289,7 +2307,7 @@ dependencies = [ "datafusion-session", "futures", "itertools 0.14.0", - "object_store", + "object_store 0.12.4", "tokio", ] @@ -2311,7 +2329,7 @@ dependencies = [ "datafusion-physical-plan", "datafusion-session", "futures", - "object_store", + "object_store 0.12.4", "regex", "tokio", ] @@ -2334,7 +2352,7 @@ dependencies = [ "datafusion-physical-plan", "datafusion-session", "futures", - "object_store", + "object_store 0.12.4", "tokio", ] @@ -2362,7 +2380,7 @@ dependencies = [ "futures", "itertools 0.14.0", "log", - "object_store", + "object_store 0.12.4", "parking_lot", "parquet", "tokio", @@ -2387,7 +2405,7 @@ dependencies = [ "datafusion-expr", "futures", "log", - "object_store", + "object_store 0.12.4", "parking_lot", "rand 0.9.2", "tempfile", @@ -2750,7 +2768,7 @@ dependencies = [ "datafusion", "half", "itertools 0.14.0", - "object_store", + "object_store 0.12.4", "pbjson-types", "prost", "substrait", @@ -2979,6 +2997,12 @@ dependencies = [ "const-random", ] +[[package]] +name = "dotenvy" +version = "0.15.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1aaf95b3e5c8f23aa320147307562d361db0ae0d51242340f558153b4eb2439b" + [[package]] name = "downcast" version = "0.11.0" @@ -2997,6 +3021,19 @@ version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" +[[package]] +name = "duration-str" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f88959de2d447fd3eddcf1909d1f19fe084e27a056a6904203dc5d8b9e771c1e" +dependencies = [ + "rust_decimal", + "serde", + "thiserror 2.0.17", + "time", + "winnow 0.6.26", +] + [[package]] name = "dyn-clone" version = "1.0.20" @@ -3139,6 +3176,12 @@ dependencies = [ "encoding_rs", ] +[[package]] +name = "endian-type" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c34f04666d835ff5d62e058c3995147c06f42fe86ff053337632bca83e42702d" + [[package]] name = "env_filter" version = "0.1.4" @@ -3240,6 +3283,17 @@ dependencies = [ "pin-project-lite", ] +[[package]] +name = "fail-parallel" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5666e8ca4ec174d896fb742789c29b1bea9319dcfd623c41bececc0a60c4939d" +dependencies = [ + "log", + "once_cell", + "rand 0.8.5", +] + [[package]] name = "fast-float2" version = "0.2.3" @@ -3277,22 +3331,39 @@ dependencies = [ "subtle", ] +[[package]] +name = "figment" +version = "0.10.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8cb01cd46b0cf372153850f4c6c272d9cbea2da513e07538405148f95bd789f3" +dependencies = [ + "atomic", + "pear", + "serde", + "serde_json", + "serde_yaml", + "toml", + "uncased", + "version_check", +] + [[package]] name = "filetime" -version = "0.2.27" +version = "0.2.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f98844151eee8917efc50bd9e8318cb963ae8b297431495d3f758616ea5c57db" +checksum = "bc0505cd1b6fa6580283f6bdf70a73fcf4aba1184038c90902b92b3dd0df63ed" dependencies = [ "cfg-if", "libc", "libredox", + "windows-sys 0.60.2", ] [[package]] name = "find-msvc-tools" -version = "0.1.8" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8591b0bcc8a98a64310a2fae1bb3e9b8564dd10e381e6e28010fde8e8e8568db" +checksum = "f449e6c6c08c865631d4890cfacf252b3d396c9bcc83adb6623cdb02a8336c41" [[package]] name = "findshlibs" @@ -3312,6 +3383,16 @@ version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1d674e81391d1e1ab681a28d99df07927c6d4aa5b027d7da16ba32d1d21ecd99" +[[package]] +name = "flatbuffers" +version = "24.12.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f1baf0dbf96932ec9a3038d57900329c015b0bfb7b63d904f3bc27e2b02a096" +dependencies = [ + "bitflags 1.3.2", + "rustc_version", +] + [[package]] name = "flatbuffers" version = "25.12.19" @@ -3777,7 +3858,7 @@ dependencies = [ "rustls-pemfile", "serde", "serde_json", - "thiserror 2.0.18", + "thiserror 2.0.17", "time", "tokio", ] @@ -3930,7 +4011,7 @@ dependencies = [ "reqwest", "serde", "serde_json", - "thiserror 2.0.18", + "thiserror 2.0.17", "tokio", "ureq", "windows-sys 0.60.2", @@ -4443,6 +4524,12 @@ dependencies = [ "str_stack", ] +[[package]] +name = "inlinable_string" +version = "0.1.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8fae54786f62fb2918dcfae3d568594e50eb9b5c25bf04371af6fe7516452fb" + [[package]] name = "inout" version = "0.1.4" @@ -4628,9 +4715,9 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.85" +version = "0.3.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c942ebf8e95485ca0d52d97da7c5a2c387d0e7f0ba4c35e93bfcaee045955b3" +checksum = "464a3709c7f55f1f721e5389aa6ea4e3bc6aba669353300af094b29ffbdde1d8" dependencies = [ "once_cell", "wasm-bindgen", @@ -4707,6 +4794,7 @@ dependencies = [ "chrono", "clap", "criterion", + "crossbeam-skiplist", "dashmap", "datafusion", "datafusion-expr", @@ -4743,7 +4831,7 @@ dependencies = [ "lzma-sys", "mock_instant", "moka", - "object_store", + "object_store 0.12.4", "paste", "permutation", "pin-project", @@ -4757,12 +4845,14 @@ dependencies = [ "semver", "serde", "serde_json", + "slatedb", "snafu", "tantivy", "tempfile", "test-log", "tokio", "tokio-stream", + "tokio-util", "tracing", "tracing-chrome", "tracing-subscriber", @@ -4822,7 +4912,7 @@ dependencies = [ "mock_instant", "moka", "num_cpus", - "object_store", + "object_store 0.12.4", "pin-project", "proptest", "prost", @@ -4955,7 +5045,7 @@ dependencies = [ "lance-datagen", "lance-index", "lance-linalg", - "object_store", + "object_store 0.12.4", "parquet", "rand 0.9.2", "tempfile", @@ -4990,7 +5080,7 @@ dependencies = [ "libc", "log", "num-traits", - "object_store", + "object_store 0.12.4", "pprof", "pretty_assertions", "proptest", @@ -5075,7 +5165,7 @@ dependencies = [ "log", "ndarray", "num-traits", - "object_store", + "object_store 0.12.4", "pprof", "prost", "prost-build", @@ -5128,7 +5218,7 @@ dependencies = [ "log", "mock_instant", "mockall", - "object_store", + "object_store 0.12.4", "object_store_opendal", "opendal", "path_abs", @@ -5208,7 +5298,7 @@ dependencies = [ "lance-io", "lance-namespace", "log", - "object_store", + "object_store 0.12.4", "rand 0.9.2", "reqwest", "rstest 0.23.0", @@ -5262,7 +5352,7 @@ dependencies = [ "lance-file", "lance-io", "log", - "object_store", + "object_store 0.12.4", "pprof", "pretty_assertions", "proptest", @@ -5312,7 +5402,7 @@ dependencies = [ "lance-core", "lance-file", "lance-io", - "object_store", + "object_store 0.12.4", "snafu", "tokio", "url", @@ -5524,7 +5614,7 @@ dependencies = [ "reqwest", "serde", "tar", - "thiserror 2.0.18", + "thiserror 2.0.17", "tokio", "yada", ] @@ -5647,15 +5737,6 @@ dependencies = [ "hashbrown 0.15.5", ] -[[package]] -name = "lru" -version = "0.16.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1dc47f592c06f33f8e3aea9591776ec7c9f9e4124778ff8a3c3b87159f7e593" -dependencies = [ - "hashbrown 0.16.1", -] - [[package]] name = "lru-slab" version = "0.1.2" @@ -5952,6 +6033,15 @@ dependencies = [ "rawpointer", ] +[[package]] +name = "nibble_vec" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77a5d83df9f36fe23f0c3648c6bbb8b0298bb5f1939c8f2704431371f4b84d43" +dependencies = [ + "smallvec", +] + [[package]] name = "nix" version = "0.26.4" @@ -6149,9 +6239,39 @@ dependencies = [ [[package]] name = "object_store" -version = "0.12.5" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3cfccb68961a56facde1163f9319e0d15743352344e7808a11795fb99698dcaf" +dependencies = [ + "async-trait", + "base64 0.22.1", + "bytes", + "chrono", + "futures", + "humantime", + "hyper 1.8.1", + "itertools 0.13.0", + "md-5", + "parking_lot", + "percent-encoding", + "quick-xml 0.37.5", + "rand 0.8.5", + "reqwest", + "ring", + "serde", + "serde_json", + "snafu", + "tokio", + "tracing", + "url", + "walkdir", +] + +[[package]] +name = "object_store" +version = "0.12.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbfbfff40aeccab00ec8a910b57ca8ecf4319b335c542f2edcd19dd25a1e2a00" +checksum = "4c1be0c6c22ec0817cdc77d3842f721a17fd30ab6965001415b5402a74e6b740" dependencies = [ "async-trait", "base64 0.22.1", @@ -6176,7 +6296,7 @@ dependencies = [ "serde", "serde_json", "serde_urlencoded", - "thiserror 2.0.18", + "thiserror 2.0.17", "tokio", "tracing", "url", @@ -6195,7 +6315,7 @@ dependencies = [ "bytes", "chrono", "futures", - "object_store", + "object_store 0.12.4", "opendal", "pin-project", "tokio", @@ -6442,7 +6562,7 @@ dependencies = [ "num-bigint", "num-integer", "num-traits", - "object_store", + "object_store 0.12.4", "paste", "seq-macro", "simdutf8", @@ -6518,6 +6638,29 @@ dependencies = [ "hmac", ] +[[package]] +name = "pear" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bdeeaa00ce488657faba8ebf44ab9361f9365a97bd39ffb8a60663f57ff4b467" +dependencies = [ + "inlinable_string", + "pear_codegen", + "yansi", +] + +[[package]] +name = "pear_codegen" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4bab5b985dc082b345f812b7df84e1bef27e7207b39e448439ba8bd69c93f147" +dependencies = [ + "proc-macro2", + "proc-macro2-diagnostics", + "quote", + "syn 2.0.114", +] + [[package]] name = "pem" version = "3.0.6" @@ -6871,7 +7014,7 @@ version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "219cb19e96be00ab2e37d6e299658a0cfa83e52429179969b0f0121b4ac46983" dependencies = [ - "toml_edit", + "toml_edit 0.23.10+spec-1.0.0", ] [[package]] @@ -6907,6 +7050,19 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "proc-macro2-diagnostics" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af066a9c399a26e020ada66a034357a868728e72cd426f3adcd35f80d88d88c8" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.114", + "version_check", + "yansi", +] + [[package]] name = "proptest" version = "1.9.0" @@ -6919,7 +7075,7 @@ dependencies = [ "num-traits", "rand 0.9.2", "rand_chacha 0.9.0", - "rand_xorshift", + "rand_xorshift 0.4.0", "regex-syntax", "rusty-fork", "tempfile", @@ -7045,7 +7201,7 @@ dependencies = [ "rustc-hash", "rustls 0.23.36", "socket2 0.6.1", - "thiserror 2.0.18", + "thiserror 2.0.17", "tokio", "tracing", "web-time", @@ -7066,7 +7222,7 @@ dependencies = [ "rustls 0.23.36", "rustls-pki-types", "slab", - "thiserror 2.0.18", + "thiserror 2.0.17", "tinyvec", "tracing", "web-time", @@ -7107,6 +7263,16 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" +[[package]] +name = "radix_trie" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c069c179fcdc6a2fe24d8d18305cf085fdbd4f922c041943e203685d6a1c58fd" +dependencies = [ + "endian-type", + "nibble_vec", +] + [[package]] name = "rand" version = "0.7.3" @@ -7138,7 +7304,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1" dependencies = [ "rand_chacha 0.9.0", - "rand_core 0.9.5", + "rand_core 0.9.4", ] [[package]] @@ -7168,7 +7334,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" dependencies = [ "ppv-lite86", - "rand_core 0.9.5", + "rand_core 0.9.4", ] [[package]] @@ -7191,9 +7357,9 @@ dependencies = [ [[package]] name = "rand_core" -version = "0.9.5" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76afc826de14238e6e8c374ddcc1fa19e374fd8dd986b0d2af0d02377261d83c" +checksum = "4f1b3bc831f92381018fd9c6350b917c7b21f1eed35a65a51900e0e55a3d7afa" dependencies = [ "getrandom 0.3.4", ] @@ -7227,13 +7393,22 @@ dependencies = [ "rand_core 0.5.1", ] +[[package]] +name = "rand_xorshift" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d25bf25ec5ae4a3f1b92f929810509a2f53d7dca2f50b794ff57e3face536c8f" +dependencies = [ + "rand_core 0.6.4", +] + [[package]] name = "rand_xorshift" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "513962919efc330f829edb2535844d1b912b0fbe2ca165d613e4e8788bb05a5a" dependencies = [ - "rand_core 0.9.5", + "rand_core 0.9.4", ] [[package]] @@ -7242,7 +7417,7 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f703f4665700daf5512dcca5f43afa6af89f09db47fb56be587f80636bda2d41" dependencies = [ - "rand_core 0.9.5", + "rand_core 0.9.4", ] [[package]] @@ -7338,7 +7513,7 @@ checksum = "a4e608c6638b9c18977b00b475ac1f28d14e84b27d8d42f70e0bf1e3dec127ac" dependencies = [ "getrandom 0.2.17", "libredox", - "thiserror 2.0.18", + "thiserror 2.0.17", ] [[package]] @@ -7640,11 +7815,21 @@ dependencies = [ "serde_derive", ] +[[package]] +name = "rust_decimal" +version = "1.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35affe401787a9bd846712274d97654355d21b2a2c092a3139aabe31e9022282" +dependencies = [ + "arrayvec", + "num-traits", +] + [[package]] name = "rustc-demangle" -version = "0.1.27" +version = "0.1.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b50b8869d9fc858ce7266cce0194bd74df58b9d0e3f6df3a9fc8eb470d95c09d" +checksum = "56f7d92ca342cea22a06f2121d944b4fd82af56988c270852495420f961d4ace" [[package]] name = "rustc-hash" @@ -7710,7 +7895,7 @@ dependencies = [ "once_cell", "ring", "rustls-pki-types", - "rustls-webpki 0.103.9", + "rustls-webpki 0.103.8", "subtle", "zeroize", ] @@ -7738,9 +7923,9 @@ dependencies = [ [[package]] name = "rustls-pki-types" -version = "1.14.0" +version = "1.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be040f8b0a225e40375822a563fa9524378b9d63112f53e19ffff34df5d33fdd" +checksum = "21e6f2ab2928ca4291b86736a8bd920a277a399bba1589409d72154ff87c1282" dependencies = [ "web-time", "zeroize", @@ -7758,9 +7943,9 @@ dependencies = [ [[package]] name = "rustls-webpki" -version = "0.103.9" +version = "0.103.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7df23109aa6c1567d1c575b9952556388da57401e4ace1d15f79eedad0d8f53" +checksum = "2ffdfa2f5286e2247234e03f680868ac2815974dc39e00ea15adc445d0aafe52" dependencies = [ "aws-lc-rs", "ring", @@ -8029,6 +8214,15 @@ dependencies = [ "syn 2.0.114", ] +[[package]] +name = "serde_spanned" +version = "0.6.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf41e0cfaf7226dca15e8197172c295a782857fcb97fad1808a166870dee75a3" +dependencies = [ + "serde", +] + [[package]] name = "serde_tokenstream" version = "0.2.2" @@ -8162,7 +8356,7 @@ checksum = "297f631f50729c8c99b84667867963997ec0b50f32b2a7dbcab828ef0541e8bb" dependencies = [ "num-bigint", "num-traits", - "thiserror 2.0.18", + "thiserror 2.0.17", "time", ] @@ -8187,6 +8381,48 @@ version = "0.4.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589" +[[package]] +name = "slatedb" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d19a612f4cf53c6d2e28bab3ce9e184722cec134b03ccfcfe0714f773ae59cc" +dependencies = [ + "async-channel 2.5.0", + "async-trait", + "atomic", + "bitflags 2.10.0", + "bytemuck", + "bytes", + "chrono", + "crc32fast", + "crossbeam-channel", + "crossbeam-skiplist", + "dotenvy", + "duration-str", + "fail-parallel", + "figment", + "flatbuffers 24.12.23", + "futures", + "log", + "moka", + "object_store 0.11.2", + "once_cell", + "parking_lot", + "radix_trie", + "rand 0.8.5", + "rand_xorshift 0.3.0", + "serde", + "serde_json", + "siphasher", + "thiserror 1.0.69", + "tokio", + "tracing", + "tracing-subscriber", + "ulid", + "uuid", + "walkdir", +] + [[package]] name = "smallvec" version = "1.15.1" @@ -8443,9 +8679,9 @@ checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" [[package]] name = "symbolic-common" -version = "12.17.1" +version = "12.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "520cf51c674f8b93d533f80832babe413214bb766b6d7cb74ee99ad2971f8467" +checksum = "b3d8046c5674ab857104bc4559d505f4809b8060d57806e45d49737c97afeb60" dependencies = [ "debugid", "memmap2", @@ -8455,9 +8691,9 @@ dependencies = [ [[package]] name = "symbolic-demangle" -version = "12.17.1" +version = "12.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f0de2ee0ffa2641e17ba715ad51d48b9259778176517979cb38b6aa86fa7425" +checksum = "1accb6e5c4b0f682de907623912e616b44be1c9e725775155546669dbff720ec" dependencies = [ "cpp_demangle", "rustc-demangle", @@ -8557,7 +8793,7 @@ dependencies = [ "itertools 0.14.0", "levenshtein_automata", "log", - "lru 0.12.5", + "lru", "lz4_flex 0.11.5", "measure_time", "memmap2", @@ -8579,7 +8815,7 @@ dependencies = [ "tantivy-stacker", "tantivy-tokenizer-api", "tempfile", - "thiserror 2.0.18", + "thiserror 2.0.17", "time", "uuid", "winapi", @@ -8748,11 +8984,11 @@ dependencies = [ [[package]] name = "thiserror" -version = "2.0.18" +version = "2.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4288b5bcbc7920c07a1149a35cf9590a2aa808e0bc1eafaade0b80947865fbc4" +checksum = "f63587ca0f12b72a0600bcba1d40081f830876000bb46dd2337a3051618f4fc8" dependencies = [ - "thiserror-impl 2.0.18", + "thiserror-impl 2.0.17", ] [[package]] @@ -8768,9 +9004,9 @@ dependencies = [ [[package]] name = "thiserror-impl" -version = "2.0.18" +version = "2.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5" +checksum = "3ff15c8ecd7de3849db632e14d18d2571fa09dfc5ed93479bc4485c7a517c913" dependencies = [ "proc-macro2", "quote", @@ -8808,9 +9044,9 @@ dependencies = [ [[package]] name = "time" -version = "0.3.45" +version = "0.3.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9e442fc33d7fdb45aa9bfeb312c095964abdf596f7567261062b2a7107aaabd" +checksum = "91e7d9e3bb61134e77bde20dd4825b97c010155709965fedf0f49bb138e52a9d" dependencies = [ "deranged", "itoa", @@ -8819,22 +9055,22 @@ dependencies = [ "num-conv", "num_threads", "powerfmt", - "serde_core", + "serde", "time-core", "time-macros", ] [[package]] name = "time-core" -version = "0.1.7" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b36ee98fd31ec7426d599183e8fe26932a8dc1fb76ddb6214d05493377d34ca" +checksum = "40868e7c1d2f0b8d73e4a8c7f0ff63af4f6d19be117e90bd73eb1d62cf831c6b" [[package]] name = "time-macros" -version = "0.2.25" +version = "0.2.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71e552d1249bf61ac2a52db88179fd0673def1e1ad8243a00d9ec9ed71fee3dd" +checksum = "30cfb0125f12d9c277f35663a0a33f8c30190f4e4574868a330595412d34ebf3" dependencies = [ "num-conv", "time-core", @@ -8999,6 +9235,27 @@ dependencies = [ "tokio", ] +[[package]] +name = "toml" +version = "0.8.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc1beb996b9d83529a9e75c17a1686767d148d70663143c7854d8b4a09ced362" +dependencies = [ + "serde", + "serde_spanned", + "toml_datetime 0.6.11", + "toml_edit 0.22.27", +] + +[[package]] +name = "toml_datetime" +version = "0.6.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22cddaf88f4fbc13c51aebbf5f8eceb5c7c5a9da2ac40a13519eb5b0a0e8f11c" +dependencies = [ + "serde", +] + [[package]] name = "toml_datetime" version = "0.7.5+spec-1.1.0" @@ -9008,6 +9265,20 @@ dependencies = [ "serde_core", ] +[[package]] +name = "toml_edit" +version = "0.22.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a" +dependencies = [ + "indexmap", + "serde", + "serde_spanned", + "toml_datetime 0.6.11", + "toml_write", + "winnow 0.7.14", +] + [[package]] name = "toml_edit" version = "0.23.10+spec-1.0.0" @@ -9015,9 +9286,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "84c8b9f757e028cee9fa244aea147aab2a9ec09d5325a9b01e0a49730c2b5269" dependencies = [ "indexmap", - "toml_datetime", + "toml_datetime 0.7.5+spec-1.1.0", "toml_parser", - "winnow", + "winnow 0.7.14", ] [[package]] @@ -9026,14 +9297,20 @@ version = "1.0.6+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a3198b4b0a8e11f09dd03e133c0280504d0801269e9afa46362ffde1cbeebf44" dependencies = [ - "winnow", + "winnow 0.7.14", ] +[[package]] +name = "toml_write" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d99f8c9a7727884afe522e9bd5edbfc91a3312b36a77b5fb8926e4c31a41801" + [[package]] name = "tower" -version = "0.5.3" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebe5ef63511595f1344e2d5cfa636d973292adc0eec1f0ad45fae9f0851ab1d4" +checksum = "d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9" dependencies = [ "futures-core", "futures-util", @@ -9227,7 +9504,7 @@ dependencies = [ "serde", "serde_json", "syn 2.0.114", - "thiserror 2.0.18", + "thiserror 2.0.17", "unicode-ident", ] @@ -9257,12 +9534,32 @@ dependencies = [ "const_fn", ] +[[package]] +name = "ulid" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "470dbf6591da1b39d43c14523b2b469c86879a53e8b758c8e090a470fe7b1fbe" +dependencies = [ + "rand 0.9.2", + "serde", + "web-time", +] + [[package]] name = "unarray" version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94" +[[package]] +name = "uncased" +version = "0.9.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1b88fcfe09e89d3866a5c11019378088af2d24c3fbd4f0543f96b479ec90697" +dependencies = [ + "version_check", +] + [[package]] name = "unicase" version = "2.9.0" @@ -9482,18 +9779,18 @@ checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" [[package]] name = "wasip2" -version = "1.0.2+wasi-0.2.9" +version = "1.0.1+wasi-0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9517f9239f02c069db75e65f174b3da828fe5f5b945c4dd26bd25d89c03ebcf5" +checksum = "0562428422c63773dad2c345a1882263bbf4d65cf3f42e90921f787ef5ad58e7" dependencies = [ "wit-bindgen", ] [[package]] name = "wasm-bindgen" -version = "0.2.108" +version = "0.2.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64024a30ec1e37399cf85a7ffefebdb72205ca1c972291c51512360d90bd8566" +checksum = "0d759f433fa64a2d763d1340820e46e111a7a5ab75f993d1852d70b03dbb80fd" dependencies = [ "cfg-if", "once_cell", @@ -9504,12 +9801,11 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.58" +version = "0.4.56" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70a6e77fd0ae8029c9ea0063f87c46fde723e7d887703d74ad2616d792e51e6f" +checksum = "836d9622d604feee9e5de25ac10e3ea5f2d65b41eac0d9ce72eb5deae707ce7c" dependencies = [ "cfg-if", - "futures-util", "js-sys", "once_cell", "wasm-bindgen", @@ -9518,9 +9814,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.108" +version = "0.2.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "008b239d9c740232e71bd39e8ef6429d27097518b6b30bdf9086833bd5b6d608" +checksum = "48cb0d2638f8baedbc542ed444afc0644a29166f1595371af4fecf8ce1e7eeb3" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -9528,9 +9824,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.108" +version = "0.2.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5256bae2d58f54820e6490f9839c49780dff84c65aeab9e772f15d5f0e913a55" +checksum = "cefb59d5cd5f92d9dcf80e4683949f15ca4b511f4ac0a6e14d4e1ac60c6ecd40" dependencies = [ "bumpalo", "proc-macro2", @@ -9541,9 +9837,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.108" +version = "0.2.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f01b580c9ac74c8d8f0c0e4afb04eeef2acf145458e52c03845ee9cd23e3d12" +checksum = "cbc538057e648b67f72a982e708d485b2efa771e1ac05fec311f9f63e5800db4" dependencies = [ "unicode-ident", ] @@ -9563,9 +9859,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.85" +version = "0.3.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "312e32e551d92129218ea9a2452120f4aabc03529ef03e4d0d82fb2780608598" +checksum = "9b32828d774c412041098d182a8b38b16ea816958e07cf40eec2bc080ae137ac" dependencies = [ "js-sys", "wasm-bindgen", @@ -9931,6 +10227,15 @@ version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650" +[[package]] +name = "winnow" +version = "0.6.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e90edd2ac1aa278a5c4599b1d89cf03074b610800f866d4026dc199d7929a28" +dependencies = [ + "memchr", +] + [[package]] name = "winnow" version = "0.7.14" @@ -9965,9 +10270,9 @@ dependencies = [ [[package]] name = "wit-bindgen" -version = "0.51.0" +version = "0.46.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7249219f66ced02969388cf2bb044a09756a083d0fab1e566056b04d9fbcaa5" +checksum = "f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59" [[package]] name = "wkb" @@ -10154,9 +10459,9 @@ checksum = "40990edd51aae2c2b6907af74ffb635029d5788228222c4bb811e9351c0caad3" [[package]] name = "zmij" -version = "1.0.16" +version = "1.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfcd145825aace48cff44a8844de64bf75feec3080e0aa5cdbde72961ae51a65" +checksum = "ac93432f5b761b22864c774aac244fa5c0fd877678a4c37ebf6cf42208f9c9ec" [[package]] name = "zstd" diff --git a/Cargo.toml b/Cargo.toml index 7a4801a3f24..6e5ea4ee59a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -107,6 +107,7 @@ criterion = { version = "0.5", features = [ "html_reports", ] } crossbeam-queue = "0.3" +crossbeam-skiplist = "0.1" datafusion = { version = "51.0.0", default-features = false, features = [ "nested_expressions", "regex_expressions", @@ -173,6 +174,7 @@ serde = { version = "^1" } serde_json = { version = "1" } semver = "1.0" shellexpand = "3.0" +slatedb = "0.3" snafu = "0.8" strum = "0.26" tantivy = { version = "0.24.1", features = ["stopwords"] } diff --git a/rust/lance/Cargo.toml b/rust/lance/Cargo.toml index 25c30230b35..1c08f799851 100644 --- a/rust/lance/Cargo.toml +++ b/rust/lance/Cargo.toml @@ -41,6 +41,7 @@ byteorder.workspace = true bytes.workspace = true chrono.workspace = true clap = { version = "4.1.1", features = ["derive"], optional = true } +crossbeam-skiplist.workspace = true # This is already used by datafusion dashmap = "6" deepsize.workspace = true @@ -81,6 +82,7 @@ humantime = { workspace = true } async_cell = "0.2.2" semver.workspace = true tokio-stream = { workspace = true } +tokio-util = { workspace = true } [target.'cfg(target_os = "linux")'.dev-dependencies] pprof.workspace = true @@ -113,6 +115,7 @@ aws-sdk-s3 = { workspace = true } geoarrow-array = { workspace = true } geoarrow-schema = { workspace = true } geo-types = { workspace = true } +slatedb = { workspace = true } [features] @@ -165,5 +168,17 @@ harness = false name = "random_access" harness = false +[[bench]] +name = "mem_wal_write" +harness = false + +[[bench]] +name = "mem_random_access" +harness = false + +[[bench]] +name = "mem_read_benchmark" +harness = false + [lints] workspace = true diff --git a/rust/lance/benches/mem_random_access.rs b/rust/lance/benches/mem_random_access.rs new file mode 100644 index 00000000000..e57541c8997 --- /dev/null +++ b/rust/lance/benches/mem_random_access.rs @@ -0,0 +1,585 @@ +// SPDX-License-Identifier: Apache-2.0 +// SPDX-FileCopyrightText: Copyright The Lance Authors + +//! Benchmark comparing random access performance between Arrow RecordBatches +//! and Lance files stored in memory. +//! +//! This benchmark tests different storage strategies for in-memory data: +//! +//! 1. **Arrow RecordBatches**: Direct in-memory access via Vec +//! 2. **Lance Single File**: All data in one Lance file (Dataset with 1 fragment) +//! 3. **Lance Fragmented**: Data across multiple files (1 file per N batches) +//! 4. **Lance Per-Batch**: Each record batch is a separate Lance file (like MemTable) +//! +//! ## Running the benchmark +//! +//! ```bash +//! cargo bench --bench mem_random_access +//! ``` +//! +//! ## Configuration +//! +//! - `BATCH_SIZE`: Number of rows per batch (default: 20) +//! - `NUM_BATCHES`: Total number of batches (default: 100) +//! - `VECTOR_DIM`: Vector dimension (default: 512) +//! - `NUM_ACCESSES`: Number of random accesses per iteration (default: 100) +//! - `SAMPLE_SIZE`: Number of benchmark iterations (default: 100) + +#![allow(clippy::print_stdout, clippy::print_stderr)] + +use std::sync::Arc; + +use arrow_array::{ + Array, FixedSizeListArray, Float32Array, Int64Array, RecordBatch, RecordBatchIterator, +}; +use arrow_schema::{DataType, Field, Schema as ArrowSchema}; +use criterion::{criterion_group, criterion_main, BenchmarkId, Criterion, Throughput}; +use lance::dataset::{Dataset, ProjectionRequest, WriteMode, WriteParams}; +use lance_arrow::FixedSizeListArrayExt; +#[cfg(target_os = "linux")] +use pprof::criterion::{Output, PProfProfiler}; +use rand::Rng; +#[cfg(target_os = "linux")] +use std::time::Duration; +use uuid::Uuid; + +const DEFAULT_BATCH_SIZE: usize = 20; +const DEFAULT_NUM_BATCHES: usize = 100; +const DEFAULT_VECTOR_DIM: i32 = 512; +const DEFAULT_NUM_ACCESSES: usize = 100; + +fn get_batch_size() -> usize { + std::env::var("BATCH_SIZE") + .ok() + .and_then(|s| s.parse().ok()) + .unwrap_or(DEFAULT_BATCH_SIZE) +} + +fn get_num_batches() -> usize { + std::env::var("NUM_BATCHES") + .ok() + .and_then(|s| s.parse().ok()) + .unwrap_or(DEFAULT_NUM_BATCHES) +} + +fn get_vector_dim() -> i32 { + std::env::var("VECTOR_DIM") + .ok() + .and_then(|s| s.parse().ok()) + .unwrap_or(DEFAULT_VECTOR_DIM) +} + +fn get_num_accesses() -> usize { + std::env::var("NUM_ACCESSES") + .ok() + .and_then(|s| s.parse().ok()) + .unwrap_or(DEFAULT_NUM_ACCESSES) +} + +fn get_sample_size() -> usize { + std::env::var("SAMPLE_SIZE") + .ok() + .and_then(|s| s.parse().ok()) + .unwrap_or(100) + .max(10) +} + +/// Create schema: (id: Int64, vector: FixedSizeList[dim]) +fn create_schema(vector_dim: i32) -> Arc { + Arc::new(ArrowSchema::new(vec![ + Field::new("id", DataType::Int64, false), + Field::new( + "vector", + DataType::FixedSizeList( + Arc::new(Field::new("item", DataType::Float32, true)), + vector_dim, + ), + false, + ), + ])) +} + +/// Create a test batch with given parameters. +fn create_batch( + schema: &ArrowSchema, + start_id: i64, + num_rows: usize, + vector_dim: i32, +) -> RecordBatch { + let vectors: Vec = (0..num_rows) + .flat_map(|i| { + let seed = (start_id as usize + i) as f32; + (0..vector_dim as usize).map(move |d| (seed * 0.1 + d as f32 * 0.01).sin()) + }) + .collect(); + + let vector_array = + FixedSizeListArray::try_new_from_values(Float32Array::from(vectors), vector_dim).unwrap(); + + RecordBatch::try_new( + Arc::new(schema.clone()), + vec![ + Arc::new(Int64Array::from_iter_values( + start_id..start_id + num_rows as i64, + )), + Arc::new(vector_array), + ], + ) + .unwrap() +} + +/// Generate random row indices for access. +fn generate_random_indices(total_rows: usize, num_accesses: usize) -> Vec { + let mut rng = rand::rng(); + (0..num_accesses) + .map(|_| rng.random_range(0..total_rows)) + .collect() +} + +/// Convert absolute row indices to Lance row IDs (fragment_idx << 32 | row_within_fragment). +fn to_lance_row_ids(indices: &[usize], rows_per_fragment: usize) -> Vec { + indices + .iter() + .map(|&idx| { + let fragment_idx = idx / rows_per_fragment; + let row_within_fragment = idx % rows_per_fragment; + ((fragment_idx as u64) << 32) | (row_within_fragment as u64) + }) + .collect() +} + +/// Arrow RecordBatch storage for random access. +struct ArrowBatchStore { + batches: Vec, + batch_size: usize, +} + +impl ArrowBatchStore { + fn new(batches: Vec, batch_size: usize) -> Self { + Self { + batches, + batch_size, + } + } + + /// Access a specific row and return the vector column data (sliced view). + fn get_vector(&self, row_idx: usize) -> Arc { + let batch_idx = row_idx / self.batch_size; + let row_in_batch = row_idx % self.batch_size; + let batch = &self.batches[batch_idx]; + let vector_col = batch.column(1); + vector_col.slice(row_in_batch, 1) + } + + /// Access multiple rows and return vector data (simulating realistic access). + fn get_vectors(&self, indices: &[usize]) -> Vec> { + indices.iter().map(|&idx| self.get_vector(idx)).collect() + } +} + +/// Create a Lance dataset with all data in a single file. +async fn create_lance_single_file( + schema: &ArrowSchema, + batches: Vec, + uri: &str, +) -> Dataset { + let total_rows: usize = batches.iter().map(|b| b.num_rows()).sum(); + let write_params = WriteParams { + max_rows_per_file: total_rows + 1, + mode: WriteMode::Create, + ..Default::default() + }; + + let reader = RecordBatchIterator::new(batches.into_iter().map(Ok), Arc::new(schema.clone())); + Dataset::write(reader, uri, Some(write_params)) + .await + .unwrap() +} + +/// Create a Lance dataset with data split into multiple files. +async fn create_lance_multi_file( + schema: &ArrowSchema, + batches: Vec, + uri: &str, + batches_per_file: usize, +) -> Dataset { + let rows_per_file = batches_per_file * batches[0].num_rows(); + let write_params = WriteParams { + max_rows_per_file: rows_per_file, + mode: WriteMode::Create, + ..Default::default() + }; + + let reader = RecordBatchIterator::new(batches.into_iter().map(Ok), Arc::new(schema.clone())); + Dataset::write(reader, uri, Some(write_params)) + .await + .unwrap() +} + +/// Create a Lance dataset with one file per batch (like MemTable). +async fn create_lance_per_batch( + schema: &ArrowSchema, + batches: Vec, + uri: &str, +) -> Dataset { + let batch_size = batches[0].num_rows(); + let write_params = WriteParams { + max_rows_per_file: batch_size, + mode: WriteMode::Create, + ..Default::default() + }; + + let reader = RecordBatchIterator::new(batches.into_iter().map(Ok), Arc::new(schema.clone())); + Dataset::write(reader, uri, Some(write_params)) + .await + .unwrap() +} + +/// Random access via Lance Dataset take_rows. +async fn lance_random_access( + dataset: &Dataset, + row_ids: &[u64], + projection: Arc, +) { + let _batch = dataset + .take_rows(row_ids, ProjectionRequest::Schema(projection)) + .await + .unwrap(); +} + +fn bench_random_access(c: &mut Criterion) { + let rt = tokio::runtime::Runtime::new().unwrap(); + + let batch_size = get_batch_size(); + let num_batches = get_num_batches(); + let vector_dim = get_vector_dim(); + let num_accesses = get_num_accesses(); + let sample_size = get_sample_size(); + + let total_rows = batch_size * num_batches; + let schema = create_schema(vector_dim); + + println!("=== Memory Random Access Benchmark ==="); + println!("Batch size: {} rows", batch_size); + println!("Num batches: {}", num_batches); + println!("Total rows: {}", total_rows); + println!("Vector dim: {}", vector_dim); + println!("Num accesses per iteration: {}", num_accesses); + println!(); + + // Generate test data + let batches: Vec = (0..num_batches) + .map(|i| create_batch(&schema, (i * batch_size) as i64, batch_size, vector_dim)) + .collect(); + + // Calculate data size + let data_size_bytes: usize = batches.iter().map(|b| b.get_array_memory_size()).sum(); + println!( + "Total data size: {:.2} MB", + data_size_bytes as f64 / 1024.0 / 1024.0 + ); + println!(); + + let mut group = c.benchmark_group("MemRandomAccess"); + group.throughput(Throughput::Elements(num_accesses as u64)); + group.sample_size(sample_size); + + // Pre-generate random indices for consistent comparison + let random_indices = generate_random_indices(total_rows, num_accesses); + + // 1. Arrow RecordBatches direct access + { + let store = ArrowBatchStore::new(batches.clone(), batch_size); + let label = format!("{}x{}_dim{}", num_batches, batch_size, vector_dim); + + group.bench_with_input( + BenchmarkId::new("Arrow_Direct", &label), + &random_indices, + |b, indices| { + b.iter(|| { + let _vectors = store.get_vectors(indices); + }); + }, + ); + } + + // 2. Lance single file + { + let uri = format!("memory://lance_single_{}", Uuid::new_v4()); + let dataset = rt.block_on(create_lance_single_file(&schema, batches.clone(), &uri)); + let projection = Arc::new(dataset.schema().clone()); + let num_fragments = dataset.get_fragments().len(); + println!("Lance single file: {} fragments", num_fragments); + + // Single file = all rows in one fragment + let row_ids = to_lance_row_ids(&random_indices, total_rows); + + let label = format!("{}x{}_dim{}", num_batches, batch_size, vector_dim); + let dataset = Arc::new(dataset); + group.bench_with_input( + BenchmarkId::new("Lance_SingleFile", &label), + &row_ids, + |b, row_ids| { + let dataset = dataset.clone(); + let projection = projection.clone(); + b.to_async(&rt).iter(|| { + let dataset = dataset.clone(); + let projection = projection.clone(); + let row_ids = row_ids.clone(); + async move { + lance_random_access(&dataset, &row_ids, projection).await; + } + }); + }, + ); + } + + // 3. Lance fragmented (10 batches per file) + { + let batches_per_file = 10; + let rows_per_fragment = batches_per_file * batch_size; + let uri = format!("memory://lance_frag10_{}", Uuid::new_v4()); + let dataset = rt.block_on(create_lance_multi_file( + &schema, + batches.clone(), + &uri, + batches_per_file, + )); + let projection = Arc::new(dataset.schema().clone()); + let num_fragments = dataset.get_fragments().len(); + println!( + "Lance fragmented (10 batches/file): {} fragments", + num_fragments + ); + + let row_ids = to_lance_row_ids(&random_indices, rows_per_fragment); + + let label = format!("{}x{}_dim{}", num_batches, batch_size, vector_dim); + let dataset = Arc::new(dataset); + group.bench_with_input( + BenchmarkId::new("Lance_Frag10", &label), + &row_ids, + |b, row_ids| { + let dataset = dataset.clone(); + let projection = projection.clone(); + b.to_async(&rt).iter(|| { + let dataset = dataset.clone(); + let projection = projection.clone(); + let row_ids = row_ids.clone(); + async move { + lance_random_access(&dataset, &row_ids, projection).await; + } + }); + }, + ); + } + + // 4. Lance fragmented (5 batches per file) + { + let batches_per_file = 5; + let rows_per_fragment = batches_per_file * batch_size; + let uri = format!("memory://lance_frag5_{}", Uuid::new_v4()); + let dataset = rt.block_on(create_lance_multi_file( + &schema, + batches.clone(), + &uri, + batches_per_file, + )); + let projection = Arc::new(dataset.schema().clone()); + let num_fragments = dataset.get_fragments().len(); + println!( + "Lance fragmented (5 batches/file): {} fragments", + num_fragments + ); + + let row_ids = to_lance_row_ids(&random_indices, rows_per_fragment); + + let label = format!("{}x{}_dim{}", num_batches, batch_size, vector_dim); + let dataset = Arc::new(dataset); + group.bench_with_input( + BenchmarkId::new("Lance_Frag5", &label), + &row_ids, + |b, row_ids| { + let dataset = dataset.clone(); + let projection = projection.clone(); + b.to_async(&rt).iter(|| { + let dataset = dataset.clone(); + let projection = projection.clone(); + let row_ids = row_ids.clone(); + async move { + lance_random_access(&dataset, &row_ids, projection).await; + } + }); + }, + ); + } + + // 5. Lance per-batch (1 file per batch, like current MemTable) + { + let rows_per_fragment = batch_size; // 1 batch = 1 fragment + let uri = format!("memory://lance_per_batch_{}", Uuid::new_v4()); + let dataset = rt.block_on(create_lance_per_batch(&schema, batches, &uri)); + let projection = Arc::new(dataset.schema().clone()); + let num_fragments = dataset.get_fragments().len(); + println!( + "Lance per-batch (1 file per batch): {} fragments", + num_fragments + ); + + let row_ids = to_lance_row_ids(&random_indices, rows_per_fragment); + + let label = format!("{}x{}_dim{}", num_batches, batch_size, vector_dim); + let dataset = Arc::new(dataset); + group.bench_with_input( + BenchmarkId::new("Lance_PerBatch", &label), + &row_ids, + |b, row_ids| { + let dataset = dataset.clone(); + let projection = projection.clone(); + b.to_async(&rt).iter(|| { + let dataset = dataset.clone(); + let projection = projection.clone(); + let row_ids = row_ids.clone(); + async move { + lance_random_access(&dataset, &row_ids, projection).await; + } + }); + }, + ); + } + + group.finish(); + + println!(); + println!("=== Summary ==="); + println!("Benchmark complete. Use `cargo bench --bench mem_random_access -- --verbose` for detailed output."); +} + +/// Benchmark single row access latency. +fn bench_single_access(c: &mut Criterion) { + let rt = tokio::runtime::Runtime::new().unwrap(); + + let batch_size = get_batch_size(); + let num_batches = get_num_batches(); + let vector_dim = get_vector_dim(); + let sample_size = get_sample_size(); + + let total_rows = batch_size * num_batches; + let schema = create_schema(vector_dim); + + // Generate test data + let batches: Vec = (0..num_batches) + .map(|i| create_batch(&schema, (i * batch_size) as i64, batch_size, vector_dim)) + .collect(); + + let mut group = c.benchmark_group("SingleRowAccess"); + group.throughput(Throughput::Elements(1)); + group.sample_size(sample_size); + + // Generate single random index for each iteration + let random_indices = generate_random_indices(total_rows, 1); + let single_idx = random_indices[0]; + + // 1. Arrow direct single access + { + let store = ArrowBatchStore::new(batches.clone(), batch_size); + let label = format!("{}x{}_dim{}", num_batches, batch_size, vector_dim); + + group.bench_with_input( + BenchmarkId::new("Arrow_Single", &label), + &single_idx, + |b, &idx| { + b.iter(|| { + let _vector = store.get_vector(idx); + }); + }, + ); + } + + // 2. Lance single file - single access (all rows in one fragment) + { + let uri = format!("memory://lance_single_one_{}", Uuid::new_v4()); + let dataset = rt.block_on(create_lance_single_file(&schema, batches.clone(), &uri)); + let projection = Arc::new(dataset.schema().clone()); + + // Single file = all rows in fragment 0 + let single_row_id = single_idx as u64; // fragment 0, row = single_idx + + let label = format!("{}x{}_dim{}", num_batches, batch_size, vector_dim); + let dataset = Arc::new(dataset); + group.bench_with_input( + BenchmarkId::new("Lance_SingleFile_Single", &label), + &single_row_id, + |b, &row_id| { + let dataset = dataset.clone(); + let projection = projection.clone(); + b.to_async(&rt).iter(|| { + let dataset = dataset.clone(); + let projection = projection.clone(); + async move { + let row_ids = vec![row_id]; + let _batch = dataset + .take_rows(&row_ids, ProjectionRequest::Schema(projection)) + .await + .unwrap(); + } + }); + }, + ); + } + + // 3. Lance per-batch - single access (1 row per fragment) + { + let rows_per_fragment = batch_size; + let uri = format!("memory://lance_per_batch_one_{}", Uuid::new_v4()); + let dataset = rt.block_on(create_lance_per_batch(&schema, batches, &uri)); + let projection = Arc::new(dataset.schema().clone()); + + // Per-batch: fragment_idx = single_idx / batch_size, row = single_idx % batch_size + let fragment_idx = single_idx / rows_per_fragment; + let row_within_fragment = single_idx % rows_per_fragment; + let single_row_id = ((fragment_idx as u64) << 32) | (row_within_fragment as u64); + + let label = format!("{}x{}_dim{}", num_batches, batch_size, vector_dim); + let dataset = Arc::new(dataset); + group.bench_with_input( + BenchmarkId::new("Lance_PerBatch_Single", &label), + &single_row_id, + |b, &row_id| { + let dataset = dataset.clone(); + let projection = projection.clone(); + b.to_async(&rt).iter(|| { + let dataset = dataset.clone(); + let projection = projection.clone(); + async move { + let row_ids = vec![row_id]; + let _batch = dataset + .take_rows(&row_ids, ProjectionRequest::Schema(projection)) + .await + .unwrap(); + } + }); + }, + ); + } + + group.finish(); +} + +#[cfg(target_os = "linux")] +criterion_group!( + name = benches; + config = Criterion::default() + .significance_level(0.05) + .with_profiler(PProfProfiler::new(100, Output::Flamegraph(None))); + targets = bench_random_access, bench_single_access +); + +#[cfg(not(target_os = "linux"))] +criterion_group!( + name = benches; + config = Criterion::default().significance_level(0.05); + targets = bench_random_access, bench_single_access +); + +criterion_main!(benches); diff --git a/rust/lance/benches/mem_read_benchmark.rs b/rust/lance/benches/mem_read_benchmark.rs new file mode 100644 index 00000000000..9acd78495dc --- /dev/null +++ b/rust/lance/benches/mem_read_benchmark.rs @@ -0,0 +1,1122 @@ +// SPDX-License-Identifier: Apache-2.0 +// SPDX-FileCopyrightText: Copyright The Lance Authors + +//! Benchmark comparing read performance between MemTable (with MemTableScanner) +//! and in-memory Lance tables. +//! +//! This benchmark tests different read operations: +//! +//! 1. **Scan**: Full table scan returning all rows +//! 2. **Point Lookup**: Scalar index lookup by primary key (BTree index) +//! 3. **Full-Text Search**: Token-based text search (FTS index) +//! 4. **Vector Search**: IVF-PQ vector similarity search +//! +//! ## Running the benchmark +//! +//! ```bash +//! cargo bench --bench mem_read_benchmark +//! ``` +//! +//! ## Configuration +//! +//! - `NUM_ROWS`: Total number of rows (default: 10000) +//! - `BATCH_SIZE`: Number of rows per batch (default: 100) +//! - `VECTOR_DIM`: Vector dimension (default: 128) +//! - `SAMPLE_SIZE`: Number of benchmark iterations (default: 100) + +#![allow(clippy::print_stdout, clippy::print_stderr)] + +use std::sync::Arc; + +use arrow_array::types::Float32Type; +use arrow_array::{ + Array, FixedSizeListArray, Float32Array, Int64Array, RecordBatch, RecordBatchIterator, + StringArray, +}; +use arrow_schema::{DataType, Field, Schema as ArrowSchema}; +use criterion::{criterion_group, criterion_main, BenchmarkId, Criterion, Throughput}; +use futures::TryStreamExt; +use lance::dataset::mem_wal::write::{IndexRegistry, MemTable}; +use lance::dataset::{Dataset, WriteParams}; +use lance::index::vector::VectorIndexParams; +use lance_arrow::FixedSizeListArrayExt; +use lance_index::scalar::inverted::tokenizer::InvertedIndexParams; +use lance_index::scalar::FullTextSearchQuery; +use lance_index::vector::ivf::storage::IvfModel; +use lance_index::vector::ivf::IvfBuildParams; +use lance_index::vector::kmeans::{train_kmeans, KMeansParams}; +use lance_index::vector::pq::builder::PQBuildParams; +use lance_index::{DatasetIndexExt, IndexType}; +use lance_linalg::distance::{DistanceType, MetricType}; +#[cfg(target_os = "linux")] +use pprof::criterion::{Output, PProfProfiler}; +use rand::Rng; +use uuid::Uuid; + +const DEFAULT_NUM_ROWS: usize = 10000; +const DEFAULT_BATCH_SIZE: usize = 100; +const DEFAULT_VECTOR_DIM: usize = 128; +const DEFAULT_NUM_LOOKUPS: usize = 100; +const DEFAULT_K: usize = 10; + +fn get_num_rows() -> usize { + std::env::var("NUM_ROWS") + .ok() + .and_then(|s| s.parse().ok()) + .unwrap_or(DEFAULT_NUM_ROWS) +} + +fn get_batch_size() -> usize { + std::env::var("BATCH_SIZE") + .ok() + .and_then(|s| s.parse().ok()) + .unwrap_or(DEFAULT_BATCH_SIZE) +} + +fn get_vector_dim() -> usize { + std::env::var("VECTOR_DIM") + .ok() + .and_then(|s| s.parse().ok()) + .unwrap_or(DEFAULT_VECTOR_DIM) +} + +fn get_sample_size() -> usize { + std::env::var("SAMPLE_SIZE") + .ok() + .and_then(|s| s.parse().ok()) + .unwrap_or(100) + .max(10) +} + +/// Create schema: (id: Int64, text: Utf8, vector: FixedSizeList[dim]) +fn create_schema(vector_dim: usize) -> Arc { + Arc::new(ArrowSchema::new(vec![ + Field::new("id", DataType::Int64, false), + Field::new("text", DataType::Utf8, true), + Field::new( + "vector", + DataType::FixedSizeList( + Arc::new(Field::new("item", DataType::Float32, true)), + vector_dim as i32, + ), + false, + ), + ])) +} + +/// Create a test batch with given parameters. +fn create_batch( + schema: &ArrowSchema, + start_id: i64, + num_rows: usize, + vector_dim: usize, +) -> RecordBatch { + let mut rng = rand::rng(); + + // Create IDs + let ids: Vec = (start_id..start_id + num_rows as i64).collect(); + + // Create text with some common words for FTS + let words = [ + "hello", + "world", + "search", + "benchmark", + "lance", + "memory", + "test", + "data", + ]; + let texts: Vec = (0..num_rows) + .map(|i| { + let w1 = words[i % words.len()]; + let w2 = words[(i + 3) % words.len()]; + let w3 = words[(i + 5) % words.len()]; + format!("{} {} {} row_{}", w1, w2, w3, start_id + i as i64) + }) + .collect(); + + // Create vectors (normalized random) + let vectors: Vec = (0..num_rows) + .flat_map(|_| { + let v: Vec = (0..vector_dim).map(|_| rng.random::() - 0.5).collect(); + let norm: f32 = v.iter().map(|x| x * x).sum::().sqrt(); + v.into_iter().map(move |x| x / norm) + }) + .collect(); + + let vector_array = + FixedSizeListArray::try_new_from_values(Float32Array::from(vectors), vector_dim as i32) + .unwrap(); + + RecordBatch::try_new( + Arc::new(schema.clone()), + vec![ + Arc::new(Int64Array::from(ids)), + Arc::new(StringArray::from(texts)), + Arc::new(vector_array), + ], + ) + .unwrap() +} + +/// Create a query vector (normalized random). +fn create_query_vector(vector_dim: usize) -> Vec { + let mut rng = rand::rng(); + let v: Vec = (0..vector_dim).map(|_| rng.random::() - 0.5).collect(); + let norm: f32 = v.iter().map(|x| x * x).sum::().sqrt(); + v.into_iter().map(|x| x / norm).collect() +} + +/// Generate random IDs for point lookups. +fn generate_random_ids(max_id: i64, count: usize) -> Vec { + let mut rng = rand::rng(); + (0..count).map(|_| rng.random_range(0..max_id)).collect() +} + +/// Train IVF centroids and PQ codebook from vectors. +fn train_ivf_pq_models( + batches: &[RecordBatch], + vector_dim: usize, + num_partitions: usize, + num_sub_vectors: usize, + distance_type: DistanceType, +) -> (IvfModel, lance_index::vector::pq::ProductQuantizer) { + // Collect all vectors into a single array + let mut all_vectors: Vec = Vec::new(); + for batch in batches { + let vector_col = batch.column_by_name("vector").unwrap(); + let fsl = vector_col + .as_any() + .downcast_ref::() + .unwrap(); + let values = fsl + .values() + .as_any() + .downcast_ref::() + .unwrap(); + all_vectors.extend_from_slice(values.values()); + } + + let vectors_array = Float32Array::from(all_vectors); + + // Train IVF centroids + let kmeans_params = KMeansParams::new(None, 50, 1, distance_type); + let kmeans = train_kmeans::( + &vectors_array, + kmeans_params, + vector_dim, + num_partitions, + 256, + ) + .unwrap(); + + // kmeans.centroids is a flat Float32Array, need to convert to FixedSizeListArray + let centroids_flat = kmeans + .centroids + .as_any() + .downcast_ref::() + .expect("Centroids should be Float32Array") + .clone(); + + let centroids_fsl = + FixedSizeListArray::try_new_from_values(centroids_flat, vector_dim as i32).unwrap(); + + let ivf_model = IvfModel::new(centroids_fsl, None); + + // Train PQ codebook + let vectors_fsl = + FixedSizeListArray::try_new_from_values(vectors_array, vector_dim as i32).unwrap(); + + let pq_params = PQBuildParams::new(num_sub_vectors, 8); + let pq = pq_params.build(&vectors_fsl, distance_type).unwrap(); + + (ivf_model, pq) +} + +/// Setup MemTable with all indexes (BTree on id, FTS on text, IVF-PQ on vector). +async fn setup_memtable( + batches: Vec, + vector_dim: usize, + num_partitions: usize, + num_sub_vectors: usize, +) -> MemTable { + let schema = batches[0].schema(); + + // Train IVF-PQ models from the data + let (ivf_model, pq) = train_ivf_pq_models( + &batches, + vector_dim, + num_partitions, + num_sub_vectors, + DistanceType::L2, + ); + + // Create index registry + let mut registry = IndexRegistry::new(); + registry.add_btree("id_idx".to_string(), "id".to_string()); + registry.add_fts("text_idx".to_string(), "text".to_string()); + registry.add_ivf_pq( + "vector_idx".to_string(), + "vector".to_string(), + ivf_model, + pq, + DistanceType::L2, + ); + + // Create MemTable + let mut memtable = MemTable::new(schema, 1, vec![0]).unwrap(); + memtable.set_indexes(registry); + + // Insert batches with sequence numbers + for (seq, batch) in batches.into_iter().enumerate() { + memtable + .insert_with_seq(batch, (seq + 1) as u64) + .await + .unwrap(); + } + + memtable +} + +/// Lance dataset wrapper. +struct LanceSetup { + dataset: Arc, + #[allow(dead_code)] + total_rows: usize, +} + +/// Create Lance dataset with a single fragment (all batches concatenated). +async fn setup_lance(batches: Vec) -> LanceSetup { + let schema = batches[0].schema(); + let total_rows: usize = batches.iter().map(|b| b.num_rows()).sum(); + + let uri = format!("memory://lance_bench_{}", Uuid::new_v4()); + let write_params = WriteParams { + max_rows_per_file: total_rows + 1, + ..Default::default() + }; + + let reader = RecordBatchIterator::new(batches.into_iter().map(Ok), schema); + let dataset = Dataset::write(reader, &uri, Some(write_params)) + .await + .unwrap(); + + LanceSetup { + dataset: Arc::new(dataset), + total_rows, + } +} + +/// Create Lance dataset with one fragment per batch. +async fn setup_lance_per_batch(batches: Vec, batch_size: usize) -> LanceSetup { + let schema = batches[0].schema(); + let total_rows: usize = batches.iter().map(|b| b.num_rows()).sum(); + + let uri = format!("memory://lance_per_batch_{}", Uuid::new_v4()); + let write_params = WriteParams { + max_rows_per_file: batch_size, + ..Default::default() + }; + + let reader = RecordBatchIterator::new(batches.into_iter().map(Ok), schema); + let dataset = Dataset::write(reader, &uri, Some(write_params)) + .await + .unwrap(); + + LanceSetup { + dataset: Arc::new(dataset), + total_rows, + } +} + +/// Create Lance dataset with FTS index on text column (single fragment). +async fn setup_lance_with_fts(batches: Vec) -> LanceSetup { + let schema = batches[0].schema(); + let total_rows: usize = batches.iter().map(|b| b.num_rows()).sum(); + + let uri = format!("memory://lance_fts_bench_{}", Uuid::new_v4()); + let write_params = WriteParams { + max_rows_per_file: total_rows + 1, + ..Default::default() + }; + + let reader = RecordBatchIterator::new(batches.into_iter().map(Ok), schema); + let mut dataset = Dataset::write(reader, &uri, Some(write_params)) + .await + .unwrap(); + + // Create FTS (inverted) index on text column + let params = InvertedIndexParams::default(); + dataset + .create_index(&["text"], IndexType::Inverted, None, ¶ms, true) + .await + .unwrap(); + + LanceSetup { + dataset: Arc::new(dataset), + total_rows, + } +} + +/// Create Lance dataset with FTS index on text column (per-batch fragments). +async fn setup_lance_per_batch_with_fts( + batches: Vec, + batch_size: usize, +) -> LanceSetup { + let schema = batches[0].schema(); + let total_rows: usize = batches.iter().map(|b| b.num_rows()).sum(); + + let uri = format!("memory://lance_fts_per_batch_{}", Uuid::new_v4()); + let write_params = WriteParams { + max_rows_per_file: batch_size, + ..Default::default() + }; + + let reader = RecordBatchIterator::new(batches.into_iter().map(Ok), schema); + let mut dataset = Dataset::write(reader, &uri, Some(write_params)) + .await + .unwrap(); + + // Create FTS (inverted) index on text column + let params = InvertedIndexParams::default(); + dataset + .create_index(&["text"], IndexType::Inverted, None, ¶ms, true) + .await + .unwrap(); + + LanceSetup { + dataset: Arc::new(dataset), + total_rows, + } +} + +/// Create Lance dataset with IVF-PQ vector index (single fragment). +async fn setup_lance_with_vector_index( + batches: Vec, + num_partitions: usize, + num_sub_vectors: usize, +) -> LanceSetup { + let schema = batches[0].schema(); + let total_rows: usize = batches.iter().map(|b| b.num_rows()).sum(); + + let uri = format!("memory://lance_vec_bench_{}", Uuid::new_v4()); + let write_params = WriteParams { + max_rows_per_file: total_rows + 1, + ..Default::default() + }; + + let reader = RecordBatchIterator::new(batches.into_iter().map(Ok), schema); + let mut dataset = Dataset::write(reader, &uri, Some(write_params)) + .await + .unwrap(); + + // Create IVF-PQ index on vector column + let ivf_params = IvfBuildParams { + num_partitions: Some(num_partitions), + ..Default::default() + }; + let pq_params = PQBuildParams { + num_sub_vectors, + num_bits: 8, + ..Default::default() + }; + + let vector_params = + VectorIndexParams::with_ivf_pq_params(MetricType::L2, ivf_params, pq_params); + + dataset + .create_index(&["vector"], IndexType::Vector, None, &vector_params, true) + .await + .unwrap(); + + LanceSetup { + dataset: Arc::new(dataset), + total_rows, + } +} + +/// Create Lance dataset with IVF-PQ vector index (per-batch fragments). +async fn setup_lance_per_batch_with_vector_index( + batches: Vec, + batch_size: usize, + num_partitions: usize, + num_sub_vectors: usize, +) -> LanceSetup { + let schema = batches[0].schema(); + let total_rows: usize = batches.iter().map(|b| b.num_rows()).sum(); + + let uri = format!("memory://lance_vec_per_batch_{}", Uuid::new_v4()); + let write_params = WriteParams { + max_rows_per_file: batch_size, + ..Default::default() + }; + + let reader = RecordBatchIterator::new(batches.into_iter().map(Ok), schema); + let mut dataset = Dataset::write(reader, &uri, Some(write_params)) + .await + .unwrap(); + + // Create IVF-PQ index on vector column + let ivf_params = IvfBuildParams { + num_partitions: Some(num_partitions), + ..Default::default() + }; + let pq_params = PQBuildParams { + num_sub_vectors, + num_bits: 8, + ..Default::default() + }; + + let vector_params = + VectorIndexParams::with_ivf_pq_params(MetricType::L2, ivf_params, pq_params); + + dataset + .create_index(&["vector"], IndexType::Vector, None, &vector_params, true) + .await + .unwrap(); + + LanceSetup { + dataset: Arc::new(dataset), + total_rows, + } +} + +/// Benchmark scan operations. +fn bench_scan(c: &mut Criterion) { + let rt = tokio::runtime::Runtime::new().unwrap(); + + let num_rows = get_num_rows(); + let batch_size = get_batch_size(); + let vector_dim = get_vector_dim(); + let sample_size = get_sample_size(); + + let num_batches = num_rows.div_ceil(batch_size); + let schema = create_schema(vector_dim); + + println!("=== Scan Benchmark ==="); + println!("Num rows: {}", num_rows); + println!("Batch size: {}", batch_size); + println!("Num batches: {}", num_batches); + println!(); + + // Generate test data + let batches: Vec = (0..num_batches) + .map(|i| { + let start_id = (i * batch_size) as i64; + let rows = batch_size.min(num_rows - i * batch_size); + create_batch(&schema, start_id, rows, vector_dim) + }) + .collect(); + + // Setup Lance (single fragment) + let lance_setup = rt.block_on(setup_lance(batches.clone())); + println!( + "Lance (single fragment): {} fragments", + lance_setup.dataset.get_fragments().len() + ); + + // Setup Lance (per-batch fragments) + let lance_per_batch_setup = rt.block_on(setup_lance_per_batch(batches.clone(), batch_size)); + println!( + "Lance (per-batch): {} fragments", + lance_per_batch_setup.dataset.get_fragments().len() + ); + + // Setup MemTable with indexes + let num_partitions = (num_rows / 100).clamp(4, 256); + let num_sub_vectors = (vector_dim / 8).clamp(4, 32); + println!("Creating MemTable with indexes..."); + let memtable = rt.block_on(setup_memtable( + batches, + vector_dim, + num_partitions, + num_sub_vectors, + )); + println!( + "MemTable created with {} rows", + memtable.batch_store().total_rows() + ); + + let mut group = c.benchmark_group("Scan"); + group.throughput(Throughput::Elements(num_rows as u64)); + group.sample_size(sample_size); + + let label = format!("{}_rows", num_rows); + + // MemTable scan using MemTableScanner + group.bench_with_input(BenchmarkId::new("MemTable", &label), &(), |b, _| { + let visibility_seq = num_batches as u64; + b.to_async(&rt).iter(|| async { + let batches: Vec = memtable + .scan(visibility_seq) + .try_into_stream() + .await + .unwrap() + .try_collect() + .await + .unwrap(); + let total: usize = batches.iter().map(|b| b.num_rows()).sum(); + assert!(total > 0); + }); + }); + + // Lance scan (single fragment) + group.bench_with_input( + BenchmarkId::new("Lance_SingleFragment", &label), + &(), + |b, _| { + let dataset = lance_setup.dataset.clone(); + b.to_async(&rt).iter(|| async { + let batches: Vec = dataset + .scan() + .try_into_stream() + .await + .unwrap() + .try_collect() + .await + .unwrap(); + let total: usize = batches.iter().map(|b| b.num_rows()).sum(); + assert!(total > 0); + }); + }, + ); + + // Lance scan (per-batch fragments) + group.bench_with_input( + BenchmarkId::new("Lance_PerBatchFragment", &label), + &(), + |b, _| { + let dataset = lance_per_batch_setup.dataset.clone(); + b.to_async(&rt).iter(|| async { + let batches: Vec = dataset + .scan() + .try_into_stream() + .await + .unwrap() + .try_collect() + .await + .unwrap(); + let total: usize = batches.iter().map(|b| b.num_rows()).sum(); + assert!(total > 0); + }); + }, + ); + + group.finish(); +} + +/// Benchmark point lookup operations. +/// Uses individual equality lookups rather than large IN clauses to avoid +/// DataFusion FilterExec issues with large IN expressions. +fn bench_point_lookup(c: &mut Criterion) { + let rt = tokio::runtime::Runtime::new().unwrap(); + + let num_rows = get_num_rows(); + let batch_size = get_batch_size(); + let vector_dim = get_vector_dim(); + let sample_size = get_sample_size(); + let num_lookups = DEFAULT_NUM_LOOKUPS; + + let num_batches = num_rows.div_ceil(batch_size); + let schema = create_schema(vector_dim); + + println!("=== Point Lookup Benchmark ==="); + println!("Num rows: {}", num_rows); + println!("Num lookups: {}", num_lookups); + println!(); + + // Generate test data + let batches: Vec = (0..num_batches) + .map(|i| { + let start_id = (i * batch_size) as i64; + let rows = batch_size.min(num_rows - i * batch_size); + create_batch(&schema, start_id, rows, vector_dim) + }) + .collect(); + + // Setup Lance (single fragment) + let lance_setup = rt.block_on(setup_lance(batches.clone())); + println!( + "Lance (single fragment): {} fragments", + lance_setup.dataset.get_fragments().len() + ); + + // Setup Lance (per-batch fragments) + let lance_per_batch_setup = rt.block_on(setup_lance_per_batch(batches.clone(), batch_size)); + println!( + "Lance (per-batch): {} fragments", + lance_per_batch_setup.dataset.get_fragments().len() + ); + + // Setup MemTable with indexes + let num_partitions = (num_rows / 100).clamp(4, 256); + let num_sub_vectors = (vector_dim / 8).clamp(4, 32); + println!("Creating MemTable with indexes..."); + let memtable = rt.block_on(setup_memtable( + batches, + vector_dim, + num_partitions, + num_sub_vectors, + )); + println!("MemTable created."); + + // Generate random lookup IDs + let lookup_ids = generate_random_ids(num_rows as i64, num_lookups); + + let mut group = c.benchmark_group("PointLookup"); + group.throughput(Throughput::Elements(num_lookups as u64)); + group.sample_size(sample_size); + + let label = format!("{}_lookups", num_lookups); + + // MemTable point lookup using single IN clause (same as Lance) + group.bench_with_input( + BenchmarkId::new("MemTable_Filter", &label), + &lookup_ids, + |b, ids| { + let visibility_seq = num_batches as u64; + let id_list: Vec = ids.iter().map(|id| id.to_string()).collect(); + let filter = format!("id IN ({})", id_list.join(",")); + + b.to_async(&rt).iter(|| { + let filter = filter.clone(); + let mut scanner = memtable.scan(visibility_seq); + async move { + let batches: Vec = scanner + .filter(&filter) + .unwrap() + .try_into_stream() + .await + .unwrap() + .try_collect() + .await + .unwrap(); + let total: usize = batches.iter().map(|b| b.num_rows()).sum(); + assert!(total > 0); + } + }); + }, + ); + + // Lance filter scan (single fragment) - uses IN clause + group.bench_with_input( + BenchmarkId::new("Lance_SingleFragment_Filter", &label), + &lookup_ids, + |b, ids| { + let dataset = lance_setup.dataset.clone(); + let id_list: Vec = ids.iter().map(|id| id.to_string()).collect(); + let filter = format!("id IN ({})", id_list.join(",")); + + b.to_async(&rt).iter(|| { + let dataset = dataset.clone(); + let filter = filter.clone(); + async move { + let batches: Vec = dataset + .scan() + .filter(&filter) + .unwrap() + .try_into_stream() + .await + .unwrap() + .try_collect() + .await + .unwrap(); + let total: usize = batches.iter().map(|b| b.num_rows()).sum(); + assert!(total > 0); + } + }); + }, + ); + + // Lance filter scan (per-batch fragments) - uses IN clause + group.bench_with_input( + BenchmarkId::new("Lance_PerBatchFragment_Filter", &label), + &lookup_ids, + |b, ids| { + let dataset = lance_per_batch_setup.dataset.clone(); + let id_list: Vec = ids.iter().map(|id| id.to_string()).collect(); + let filter = format!("id IN ({})", id_list.join(",")); + + b.to_async(&rt).iter(|| { + let dataset = dataset.clone(); + let filter = filter.clone(); + async move { + let batches: Vec = dataset + .scan() + .filter(&filter) + .unwrap() + .try_into_stream() + .await + .unwrap() + .try_collect() + .await + .unwrap(); + let total: usize = batches.iter().map(|b| b.num_rows()).sum(); + assert!(total > 0); + } + }); + }, + ); + + group.finish(); +} + +/// Benchmark FTS operations. +fn bench_fts(c: &mut Criterion) { + let rt = tokio::runtime::Runtime::new().unwrap(); + + let num_rows = get_num_rows(); + let batch_size = get_batch_size(); + let vector_dim = get_vector_dim(); + let sample_size = get_sample_size(); + + let num_batches = num_rows.div_ceil(batch_size); + let schema = create_schema(vector_dim); + + println!("=== FTS Benchmark ==="); + println!("Num rows: {}", num_rows); + println!("Batch size: {}", batch_size); + println!("Num batches: {}", num_batches); + println!(); + + // Generate test data + let batches: Vec = (0..num_batches) + .map(|i| { + let start_id = (i * batch_size) as i64; + let rows = batch_size.min(num_rows - i * batch_size); + create_batch(&schema, start_id, rows, vector_dim) + }) + .collect(); + + // Setup Lance with FTS index (single fragment) + println!("Creating Lance dataset with FTS index (single fragment)..."); + let lance_fts_setup = rt.block_on(setup_lance_with_fts(batches.clone())); + println!( + "Lance FTS (single fragment): {} fragments", + lance_fts_setup.dataset.get_fragments().len() + ); + + // Setup Lance with FTS index (per-batch fragments) + println!("Creating Lance dataset with FTS index (per-batch fragments)..."); + let lance_fts_per_batch_setup = + rt.block_on(setup_lance_per_batch_with_fts(batches.clone(), batch_size)); + println!( + "Lance FTS (per-batch): {} fragments", + lance_fts_per_batch_setup.dataset.get_fragments().len() + ); + + // Setup MemTable with indexes + let num_partitions = (num_rows / 100).clamp(4, 256); + let num_sub_vectors = (vector_dim / 8).clamp(4, 32); + println!("Creating MemTable with indexes..."); + let memtable = rt.block_on(setup_memtable( + batches, + vector_dim, + num_partitions, + num_sub_vectors, + )); + println!("MemTable created."); + + // Search terms (these are words we know exist in the data) + let search_terms = ["hello", "world", "search", "benchmark", "lance"]; + + let mut group = c.benchmark_group("FTS"); + group.throughput(Throughput::Elements(search_terms.len() as u64)); + group.sample_size(sample_size); + + let label = format!("{}_terms", search_terms.len()); + + // MemTable FTS using MemTableScanner + group.bench_with_input( + BenchmarkId::new("MemTable_FTS", &label), + &search_terms, + |b, terms| { + let visibility_seq = num_batches as u64; + b.to_async(&rt).iter(|| { + let terms = *terms; + let scanners: Vec<_> = terms + .iter() + .map(|_| memtable.scan(visibility_seq)) + .collect(); + async move { + let mut total_found = 0usize; + for (mut scanner, term) in scanners.into_iter().zip(terms.iter()) { + let batches: Vec = scanner + .full_text_search("text", term) + .try_into_stream() + .await + .unwrap() + .try_collect() + .await + .unwrap(); + total_found += batches.iter().map(|b| b.num_rows()).sum::(); + } + assert!(total_found > 0); + } + }); + }, + ); + + // Lance FTS (single fragment) + group.bench_with_input( + BenchmarkId::new("Lance_SingleFragment_FTS", &label), + &search_terms, + |b, terms| { + let dataset = lance_fts_setup.dataset.clone(); + b.to_async(&rt).iter(|| { + let dataset = dataset.clone(); + let terms = terms.to_vec(); + async move { + let mut total_found = 0usize; + for term in terms { + let query = FullTextSearchQuery::new(term.to_string()); + let batches: Vec = dataset + .scan() + .full_text_search(query) + .unwrap() + .try_into_stream() + .await + .unwrap() + .try_collect() + .await + .unwrap(); + total_found += batches.iter().map(|b| b.num_rows()).sum::(); + } + assert!(total_found > 0); + } + }); + }, + ); + + // Lance FTS (per-batch fragments) + group.bench_with_input( + BenchmarkId::new("Lance_PerBatchFragment_FTS", &label), + &search_terms, + |b, terms| { + let dataset = lance_fts_per_batch_setup.dataset.clone(); + b.to_async(&rt).iter(|| { + let dataset = dataset.clone(); + let terms = terms.to_vec(); + async move { + let mut total_found = 0usize; + for term in terms { + let query = FullTextSearchQuery::new(term.to_string()); + let batches: Vec = dataset + .scan() + .full_text_search(query) + .unwrap() + .try_into_stream() + .await + .unwrap() + .try_collect() + .await + .unwrap(); + total_found += batches.iter().map(|b| b.num_rows()).sum::(); + } + assert!(total_found > 0); + } + }); + }, + ); + + group.finish(); +} + +/// Benchmark vector search operations. +fn bench_vector_search(c: &mut Criterion) { + let rt = tokio::runtime::Runtime::new().unwrap(); + + let num_rows = get_num_rows(); + let batch_size = get_batch_size(); + let vector_dim = get_vector_dim(); + let sample_size = get_sample_size(); + let k = DEFAULT_K; + + let num_batches = num_rows.div_ceil(batch_size); + let schema = create_schema(vector_dim); + + println!("=== Vector Search Benchmark ==="); + println!("Num rows: {}", num_rows); + println!("Batch size: {}", batch_size); + println!("Num batches: {}", num_batches); + println!("Vector dim: {}", vector_dim); + println!("K: {}", k); + println!(); + + // Generate test data + let batches: Vec = (0..num_batches) + .map(|i| { + let start_id = (i * batch_size) as i64; + let rows = batch_size.min(num_rows - i * batch_size); + create_batch(&schema, start_id, rows, vector_dim) + }) + .collect(); + + // Setup Lance with vector index (IVF-PQ) - single fragment + let num_partitions = (num_rows / 100).clamp(4, 256); + let num_sub_vectors = (vector_dim / 8).clamp(4, 32); + println!( + "Creating Lance dataset with IVF-PQ index (single fragment, partitions={}, sub_vectors={})...", + num_partitions, num_sub_vectors + ); + let lance_vec_setup = rt.block_on(setup_lance_with_vector_index( + batches.clone(), + num_partitions, + num_sub_vectors, + )); + println!( + "Lance IVF-PQ (single fragment): {} fragments", + lance_vec_setup.dataset.get_fragments().len() + ); + + // Setup Lance with vector index (IVF-PQ) - per-batch fragments + println!( + "Creating Lance dataset with IVF-PQ index (per-batch fragments, partitions={}, sub_vectors={})...", + num_partitions, num_sub_vectors + ); + let lance_vec_per_batch_setup = rt.block_on(setup_lance_per_batch_with_vector_index( + batches.clone(), + batch_size, + num_partitions, + num_sub_vectors, + )); + println!( + "Lance IVF-PQ (per-batch): {} fragments", + lance_vec_per_batch_setup.dataset.get_fragments().len() + ); + + // Setup MemTable with IVF-PQ index + println!( + "Creating MemTable with IVF-PQ index (partitions={}, sub_vectors={})...", + num_partitions, num_sub_vectors + ); + let memtable = rt.block_on(setup_memtable( + batches, + vector_dim, + num_partitions, + num_sub_vectors, + )); + println!("MemTable IVF-PQ index created."); + + // Create query vector + let query = create_query_vector(vector_dim); + + let mut group = c.benchmark_group("VectorSearch"); + group.throughput(Throughput::Elements(1)); + group.sample_size(sample_size); + + let label = format!("{}_rows_k{}", num_rows, k); + + // MemTable IVF-PQ vector search using MemTableScanner + group.bench_with_input( + BenchmarkId::new("MemTable_IVFPQ", &label), + &query, + |b, q| { + let visibility_seq = num_batches as u64; + let query_array: Arc = Arc::new(Float32Array::from(q.clone())); + b.to_async(&rt).iter(|| { + let query_array = query_array.clone(); + async { + let mut scanner = memtable.scan(visibility_seq); + let batches: Vec = scanner + .nearest("vector", query_array, k, Some(8), None) + .try_into_stream() + .await + .unwrap() + .try_collect() + .await + .unwrap(); + let total: usize = batches.iter().map(|b| b.num_rows()).sum(); + assert!(total > 0); + } + }); + }, + ); + + // Lance IVF-PQ vector search (single fragment) + group.bench_with_input( + BenchmarkId::new("Lance_SingleFragment_IVFPQ", &label), + &query, + |b, q| { + let dataset = lance_vec_setup.dataset.clone(); + let query_array = Float32Array::from(q.clone()); + b.to_async(&rt).iter(|| { + let dataset = dataset.clone(); + let query_array = query_array.clone(); + async move { + let batches: Vec = dataset + .scan() + .nearest("vector", &query_array, k) + .unwrap() + .nprobes(8) + .try_into_stream() + .await + .unwrap() + .try_collect() + .await + .unwrap(); + let total: usize = batches.iter().map(|b| b.num_rows()).sum(); + assert!(total > 0); + } + }); + }, + ); + + // Lance IVF-PQ vector search (per-batch fragments) + group.bench_with_input( + BenchmarkId::new("Lance_PerBatchFragment_IVFPQ", &label), + &query, + |b, q| { + let dataset = lance_vec_per_batch_setup.dataset.clone(); + let query_array = Float32Array::from(q.clone()); + b.to_async(&rt).iter(|| { + let dataset = dataset.clone(); + let query_array = query_array.clone(); + async move { + let batches: Vec = dataset + .scan() + .nearest("vector", &query_array, k) + .unwrap() + .nprobes(8) + .try_into_stream() + .await + .unwrap() + .try_collect() + .await + .unwrap(); + let total: usize = batches.iter().map(|b| b.num_rows()).sum(); + assert!(total > 0); + } + }); + }, + ); + + group.finish(); +} + +/// Run all benchmarks. +fn all_benchmarks(c: &mut Criterion) { + bench_scan(c); + bench_point_lookup(c); + bench_fts(c); + bench_vector_search(c); +} + +#[cfg(target_os = "linux")] +criterion_group!( + name = benches; + config = Criterion::default() + .significance_level(0.05) + .with_profiler(PProfProfiler::new(100, Output::Flamegraph(None))); + targets = all_benchmarks +); + +#[cfg(not(target_os = "linux"))] +criterion_group!( + name = benches; + config = Criterion::default().significance_level(0.05); + targets = all_benchmarks +); + +criterion_main!(benches); diff --git a/rust/lance/benches/mem_wal_write.rs b/rust/lance/benches/mem_wal_write.rs new file mode 100644 index 00000000000..3bc8b2bfc77 --- /dev/null +++ b/rust/lance/benches/mem_wal_write.rs @@ -0,0 +1,586 @@ +// SPDX-License-Identifier: Apache-2.0 +// SPDX-FileCopyrightText: Copyright The Lance Authors + +//! Benchmark for MemWAL write throughput. +//! +//! ## Running against S3 +//! +//! ```bash +//! export AWS_DEFAULT_REGION=us-east-1 +//! export DATASET_PREFIX=s3://your-bucket/bench/mem_wal +//! cargo bench --bench mem_wal_write +//! ``` +//! +//! ## Running against local filesystem +//! +//! ```bash +//! export DATASET_PREFIX=/tmp/bench/mem_wal +//! cargo bench --bench mem_wal_write +//! ``` +//! +//! ## Configuration +//! +//! - `DATASET_PREFIX`: Base URI for datasets (required, e.g. s3://bucket/prefix or /tmp/bench) +//! - `BATCH_SIZE`: Number of rows per write batch (default: 20) +//! - `NUM_BATCHES`: Total number of batches to write (default: 1000) +//! - `DURABLE_WRITE`: yes/no/both (default: no) - whether writes wait for WAL flush +//! - `INDEXED_WRITE`: yes/no/both (default: no) - whether writes update indexes synchronously +//! - `MAX_WAL_BUFFER_SIZE`: WAL buffer size in bytes (default: 1MB from RegionWriterConfig) +//! - `MAX_FLUSH_INTERVAL_MS`: WAL flush interval in milliseconds, 0 to disable (default: 1000ms) +//! - `MAX_MEMTABLE_SIZE`: MemTable size threshold in bytes (default: 64MB from RegionWriterConfig) +//! - `VECTOR_DIM`: Vector dimension for the vector column (default: 512) +//! - `MEMWAL_MAINTAINED_INDEXES`: Comma-separated list of index names to maintain in MemWAL (default: id_btree) +//! - Available indexes: id_btree, text_fts, vector_ivfpq (all created on base table) +//! - Examples: `id_btree`, `id_btree,text_fts`, `vector_ivfpq` +//! - Use `none` to disable MemWAL index maintenance entirely +//! - `SAMPLE_SIZE`: Number of benchmark iterations (default: 10, minimum: 10) + +#![allow(clippy::print_stdout, clippy::print_stderr)] + +use std::sync::Arc; +use std::time::{Duration, Instant}; + +use arrow_array::{ + FixedSizeListArray, Float32Array, Int64Array, RecordBatch, RecordBatchIterator, StringArray, +}; +use arrow_schema::{DataType, Field, Schema as ArrowSchema}; +use criterion::{criterion_group, criterion_main, BenchmarkId, Criterion, Throughput}; +use lance::dataset::mem_wal::{DatasetMemWalExt, MemWalConfig, RegionWriterConfig}; +use lance::dataset::{Dataset, WriteParams}; +use lance::index::vector::VectorIndexParams; +use lance_arrow::FixedSizeListArrayExt; +use lance_index::scalar::ScalarIndexParams; +use lance_index::vector::ivf::IvfBuildParams; +use lance_index::vector::pq::PQBuildParams; +use lance_index::{DatasetIndexExt, IndexType}; +use lance_linalg::distance::DistanceType; +#[cfg(target_os = "linux")] +use pprof::criterion::{Output, PProfProfiler}; +use uuid::Uuid; + +/// Default number of rows per batch. +const DEFAULT_BATCH_SIZE: usize = 20; + +/// Default number of batches to write. +const DEFAULT_NUM_BATCHES: usize = 1000; + +/// Get batch size from environment or use default. +fn get_batch_size() -> usize { + std::env::var("BATCH_SIZE") + .ok() + .and_then(|s| s.parse().ok()) + .unwrap_or(DEFAULT_BATCH_SIZE) +} + +/// Get number of batches from environment or use default. +fn get_num_batches() -> usize { + std::env::var("NUM_BATCHES") + .ok() + .and_then(|s| s.parse().ok()) + .unwrap_or(DEFAULT_NUM_BATCHES) +} + +/// Parse yes/no/both env var, returns list of bool values to test. +fn parse_yes_no_both(var_name: &str, default: &str) -> Vec { + let value = std::env::var(var_name) + .unwrap_or_else(|_| default.to_string()) + .to_lowercase(); + match value.as_str() { + "yes" | "true" | "1" => vec![true], + "no" | "false" | "0" => vec![false], + "both" => vec![false, true], + _ => { + eprintln!( + "Invalid {} value '{}', using default '{}'", + var_name, value, default + ); + parse_yes_no_both(var_name, default) + } + } +} + +/// Get durable write settings from environment. +fn get_durable_write_options() -> Vec { + parse_yes_no_both("DURABLE_WRITE", "no") +} + +/// Get indexed write settings from environment. +fn get_indexed_write_options() -> Vec { + parse_yes_no_both("INDEXED_WRITE", "no") +} + +/// Get max WAL buffer size from environment or use default. +fn get_max_wal_buffer_size() -> Option { + std::env::var("MAX_WAL_BUFFER_SIZE") + .ok() + .and_then(|s| s.parse().ok()) +} + +/// Get max flush interval from environment or use default. +fn get_max_flush_interval() -> Option> { + std::env::var("MAX_FLUSH_INTERVAL_MS").ok().map(|s| { + let ms: u64 = s.parse().unwrap_or(0); + if ms == 0 { + None + } else { + Some(Duration::from_millis(ms)) + } + }) +} + +/// Get max memtable size from environment or use default. +fn get_max_memtable_size() -> Option { + std::env::var("MAX_MEMTABLE_SIZE") + .ok() + .and_then(|s| s.parse().ok()) +} + +/// Default vector dimension for benchmarks. +const DEFAULT_VECTOR_DIM: i32 = 512; + +/// Get vector dimension from environment or use default. +fn get_vector_dim() -> i32 { + std::env::var("VECTOR_DIM") + .ok() + .and_then(|s| s.parse().ok()) + .unwrap_or(DEFAULT_VECTOR_DIM) +} + +/// Parse MEMWAL_MAINTAINED_INDEXES environment variable. +/// Returns list of index names to maintain in MemWAL. +/// Use "none" to disable indexes entirely. +/// Default: "id_btree" +fn get_maintained_indexes() -> Vec { + let value = + std::env::var("MEMWAL_MAINTAINED_INDEXES").unwrap_or_else(|_| "id_btree".to_string()); + + if value.to_lowercase() == "none" { + return vec![]; + } + + value + .split(',') + .map(|s| s.trim().to_string()) + .filter(|s| !s.is_empty()) + .collect() +} + +/// Get sample size from environment or use default. +/// Minimum is 10 (Criterion requirement). +fn get_sample_size() -> usize { + std::env::var("SAMPLE_SIZE") + .ok() + .and_then(|s| s.parse().ok()) + .unwrap_or(10) + .max(10) +} + +/// Format bytes in human-readable form. +fn format_bytes(bytes: u64) -> String { + if bytes >= 1024 * 1024 * 1024 { + format!("{:.2} GB", bytes as f64 / (1024.0 * 1024.0 * 1024.0)) + } else if bytes >= 1024 * 1024 { + format!("{:.2} MB", bytes as f64 / (1024.0 * 1024.0)) + } else if bytes >= 1024 { + format!("{:.2} KB", bytes as f64 / 1024.0) + } else { + format!("{} B", bytes) + } +} + +/// Create test schema for benchmarks. +/// +/// Schema: +/// - id: Int64 (primary key, for BTree index) +/// - vector: FixedSizeList[dim] (for IVF-PQ vector index) +/// - text: Utf8 (for FTS inverted index) +fn create_test_schema(vector_dim: i32) -> Arc { + use std::collections::HashMap; + + // Create id field with primary key metadata + let mut id_metadata = HashMap::new(); + id_metadata.insert( + "lance-schema:unenforced-primary-key".to_string(), + "true".to_string(), + ); + let id_field = Field::new("id", DataType::Int64, false).with_metadata(id_metadata); + + Arc::new(ArrowSchema::new(vec![ + id_field, + Field::new( + "vector", + DataType::FixedSizeList( + Arc::new(Field::new("item", DataType::Float32, true)), + vector_dim, + ), + true, + ), + Field::new("text", DataType::Utf8, true), + ])) +} + +/// Sample text snippets for FTS benchmarking. +const SAMPLE_TEXTS: &[&str] = &[ + "The quick brown fox jumps over the lazy dog", + "Machine learning models require large datasets for training", + "Vector databases enable semantic search capabilities", + "Rust provides memory safety without garbage collection", + "Cloud native applications scale horizontally", + "Data lakehouse combines warehouse and lake benefits", + "Embeddings capture semantic meaning in vector space", + "Columnar storage optimizes analytical query performance", +]; + +/// Create a test batch with the given parameters. +fn create_test_batch( + schema: &ArrowSchema, + start_id: i64, + num_rows: usize, + vector_dim: i32, +) -> RecordBatch { + // Generate random vectors (deterministic based on row id for reproducibility) + let vectors: Vec = (0..num_rows) + .flat_map(|i| { + let seed = (start_id as usize + i) as f32; + (0..vector_dim as usize).map(move |d| (seed * 0.1 + d as f32 * 0.01).sin()) + }) + .collect(); + + let vector_array = + FixedSizeListArray::try_new_from_values(Float32Array::from(vectors), vector_dim).unwrap(); + + // Generate text content + let texts: Vec = (0..num_rows) + .map(|i| { + let base_text = SAMPLE_TEXTS[(start_id as usize + i) % SAMPLE_TEXTS.len()]; + format!("{} (row {})", base_text, start_id as usize + i) + }) + .collect(); + + RecordBatch::try_new( + Arc::new(schema.clone()), + vec![ + Arc::new(Int64Array::from_iter_values( + start_id..start_id + num_rows as i64, + )), + Arc::new(vector_array), + Arc::new(StringArray::from_iter_values(texts)), + ], + ) + .unwrap() +} + +/// Number of rows to create in base dataset for index training. +const BASE_DATASET_ROWS: usize = 1000; + +/// Create a Lance dataset with indexes and MemWAL initialized. +/// Uses DATASET_PREFIX environment variable (e.g. s3://bucket/prefix or /tmp/bench). +/// Creates base table indexes (id_btree, text_fts, vector_ivfpq) and initializes MemWAL with specified indexes. +async fn create_dataset( + schema: &ArrowSchema, + name_prefix: &str, + vector_dim: i32, + maintained_indexes: &[String], +) -> Dataset { + use lance_index::scalar::InvertedIndexParams; + + let prefix = std::env::var("DATASET_PREFIX").expect("DATASET_PREFIX not set"); + // Use short random suffix (8 chars) instead of full UUID + let short_id = &Uuid::new_v4().to_string()[..8]; + let uri = format!( + "{}/{}_{}", + prefix.trim_end_matches('/'), + name_prefix, + short_id + ); + + println!("Creating dataset at {} with indexes...", uri); + let start = Instant::now(); + + // Create initial dataset with 1000 rows for index training + let initial_batch = create_test_batch(schema, 0, BASE_DATASET_ROWS, vector_dim); + let batches = RecordBatchIterator::new([Ok(initial_batch)], Arc::new(schema.clone())); + let write_params = WriteParams::default(); + let mut dataset = Dataset::write(batches, &uri, Some(write_params)) + .await + .expect("Failed to create dataset"); + + // Create BTree index on id column + let scalar_params = ScalarIndexParams::default(); + dataset + .create_index( + &["id"], + IndexType::BTree, + Some("id_btree".to_string()), + &scalar_params, + false, + ) + .await + .expect("Failed to create BTree index"); + + // Create FTS index on text column + let fts_params = InvertedIndexParams::default(); + dataset + .create_index( + &["text"], + IndexType::Inverted, + Some("text_fts".to_string()), + &fts_params, + false, + ) + .await + .expect("Failed to create FTS index"); + + // Create IVF-PQ vector index on vector column + // Use small nlist for the small training dataset + let ivf_params = IvfBuildParams::new(16); // 16 partitions for 1000 rows + let pq_params = PQBuildParams::new(16, 8); // 16 sub-vectors, 8 bits + let vector_params = + VectorIndexParams::with_ivf_pq_params(DistanceType::L2, ivf_params, pq_params); + dataset + .create_index( + &["vector"], + IndexType::IvfPq, + Some("vector_ivfpq".to_string()), + &vector_params, + false, + ) + .await + .expect("Failed to create IVF-PQ index"); + + // Initialize MemWAL with specified maintained indexes + dataset + .initialize_mem_wal(MemWalConfig { + region_spec: None, + maintained_indexes: maintained_indexes.to_vec(), + }) + .await + .expect("Failed to initialize MemWAL"); + + println!( + "Dataset created in {:?} at {}", + start.elapsed(), + dataset.uri() + ); + + dataset +} + +/// Get storage label from DATASET_PREFIX (e.g. "s3" or "local"). +fn get_storage_label() -> &'static str { + let prefix = std::env::var("DATASET_PREFIX").unwrap_or_default(); + if prefix.starts_with("s3://") { + "s3" + } else if prefix.starts_with("gs://") { + "gcs" + } else if prefix.starts_with("az://") { + "azure" + } else { + "local" + } +} + +/// Build benchmark label from config options. +fn build_label( + num_batches: usize, + batch_size: usize, + durable: bool, + indexed: bool, + storage: &str, +) -> String { + let durable_str = if durable { "durable" } else { "nondurable" }; + // sync_indexed_write controls sync vs async index updates + let indexed_str = if indexed { "sync_idx" } else { "async_idx" }; + format!( + "{}x{} {} {} ({})", + num_batches, batch_size, durable_str, indexed_str, storage + ) +} + +/// Build dataset name prefix from config options. +fn build_name_prefix(durable: bool, indexed: bool) -> String { + let d = if durable { "d" } else { "nd" }; + // sync_indexed_write: sync (si) vs async (ai) + let i = if indexed { "si" } else { "ai" }; + format!("{}_{}", d, i) +} + +/// Benchmark Lance MemWAL write throughput. +fn bench_lance_memwal_write(c: &mut Criterion) { + if std::env::var("DATASET_PREFIX").is_err() { + eprintln!("DATASET_PREFIX not set, skipping benchmarks"); + eprintln!("Set DATASET_PREFIX to s3://bucket/prefix or /tmp/bench"); + return; + } + + let rt = tokio::runtime::Runtime::new().unwrap(); + let batch_size = get_batch_size(); + let num_batches = get_num_batches(); + let vector_dim = get_vector_dim(); + let schema = create_test_schema(vector_dim); + let storage_label = get_storage_label(); + let maintained_indexes = get_maintained_indexes(); + + let durable_options = get_durable_write_options(); + let indexed_options = get_indexed_write_options(); + let max_wal_buffer_size = get_max_wal_buffer_size(); + let max_flush_interval = get_max_flush_interval(); + let max_memtable_size = get_max_memtable_size(); + + println!( + "MemWAL indexes to maintain: {}", + if maintained_indexes.is_empty() { + "none".to_string() + } else { + maintained_indexes.join(", ") + } + ); + + let sample_size = get_sample_size(); + + let mut group = c.benchmark_group("MemWAL Write"); + group.throughput(Throughput::Elements((batch_size * num_batches) as u64)); + group.sample_size(sample_size); + group.warm_up_time(Duration::from_secs(1)); + + // Generate benchmarks for all combinations + for &durable in &durable_options { + for &indexed in &indexed_options { + let label = build_label(num_batches, batch_size, durable, indexed, storage_label); + let name_prefix = build_name_prefix(durable, indexed); + + // Create dataset ONCE before benchmark iterations + // Each iteration will use a different region on the same dataset + let dataset = rt.block_on(create_dataset( + &schema, + &name_prefix, + vector_dim, + &maintained_indexes, + )); + let dataset_uri = dataset.uri().to_string(); + + // Pre-generate all batches before timing (outside iter_custom) + let batches: Arc> = Arc::new( + (0..num_batches) + .map(|i| { + create_test_batch(&schema, (i * batch_size) as i64, batch_size, vector_dim) + }) + .collect(), + ); + + println!( + "Benchmark: {} | Dataset: {} | {} batches x {} rows pre-generated", + label, dataset_uri, num_batches, batch_size + ); + + group.bench_with_input( + BenchmarkId::new("Lance MemWAL", &label), + &(batch_size, num_batches, durable, indexed), + |b, &(_batch_size, _num_batches, durable, indexed)| { + let dataset_uri = dataset_uri.clone(); + let batches = batches.clone(); + b.to_async(&rt).iter_custom(|iters| { + let dataset_uri = dataset_uri.clone(); + let batches = batches.clone(); + async move { + let mut total_duration = Duration::ZERO; + + for iter in 0..iters { + // Re-open dataset (cheap operation) + let dataset = Dataset::open(&dataset_uri).await.unwrap(); + + // Create a NEW region for each iteration + let region_id = Uuid::new_v4(); + let default_config = RegionWriterConfig::default(); + let config = RegionWriterConfig { + region_id, + region_spec_id: 0, + durable_writes: durable, + sync_indexed_write: indexed, + max_wal_buffer_size: max_wal_buffer_size + .unwrap_or(default_config.max_wal_buffer_size), + max_flush_interval: max_flush_interval + .unwrap_or(default_config.max_flush_interval), + max_memtable_size: max_memtable_size + .unwrap_or(default_config.max_memtable_size), + manifest_scan_batch_size: default_config + .manifest_scan_batch_size, + max_unflushed_bytes: default_config.max_unflushed_bytes, + max_immutable_memtables: default_config + .max_immutable_memtables, + backpressure_timeout: default_config.backpressure_timeout, + }; + + if iter == 0 { + println!( + " Iter {}: Region {} | WAL buffer: {} | Flush interval: {:?} | MemTable size: {} | Indexed writes: {}", + iter, + region_id, + config.max_wal_buffer_size, + config.max_flush_interval, + config.max_memtable_size, + if indexed { "sync" } else { "async" } + ); + } + + // Get writer through Dataset API (index configs loaded automatically) + let writer = + dataset.mem_wal_writer(region_id, config).await.unwrap(); + + // Time writes (excluding close to measure pure put throughput) + let start = Instant::now(); + for batch in batches.iter() { + writer.put(batch.clone()).await.unwrap(); + } + let put_duration = start.elapsed(); + + // Close writer (includes final WAL flush) - measured separately + let close_start = Instant::now(); + let stats = writer.stats(); + writer.close().await.unwrap(); + let close_duration = close_start.elapsed(); + + total_duration += put_duration; + + // Report stats for first iteration + if iter == 0 { + println!( + " Stats: puts={} ({:.0}/s, avg {:?}) | WAL flushes={} ({}) | close={:?}", + stats.put_count, + stats.put_throughput(), + stats.avg_put_latency().unwrap_or_default(), + stats.wal_flush_count, + format_bytes(stats.wal_flush_bytes), + close_duration + ); + } + } + + total_duration + } + }) + }, + ); + } + } + + group.finish(); +} + +#[cfg(target_os = "linux")] +criterion_group!( + name = benches; + config = Criterion::default() + .significance_level(0.05) + .with_profiler(PProfProfiler::new(100, Output::Flamegraph(None))); + targets = bench_lance_memwal_write +); + +#[cfg(not(target_os = "linux"))] +criterion_group!( + name = benches; + config = Criterion::default().significance_level(0.05); + targets = bench_lance_memwal_write +); + +criterion_main!(benches); diff --git a/rust/lance/src/dataset.rs b/rust/lance/src/dataset.rs index e5e71887147..f94255ae617 100644 --- a/rust/lance/src/dataset.rs +++ b/rust/lance/src/dataset.rs @@ -71,6 +71,7 @@ pub mod delta; pub mod fragment; mod hash_joiner; pub mod index; +pub mod mem_wal; mod metadata; pub mod optimize; pub mod progress; diff --git a/rust/lance/src/dataset/mem_wal.rs b/rust/lance/src/dataset/mem_wal.rs new file mode 100644 index 00000000000..342bd4ddf2c --- /dev/null +++ b/rust/lance/src/dataset/mem_wal.rs @@ -0,0 +1,49 @@ +// SPDX-License-Identifier: Apache-2.0 +// SPDX-FileCopyrightText: Copyright The Lance Authors + +//! MemWAL - Log-Structured Merge (LSM) tree for Lance tables +//! +//! This module implements an LSM tree architecture for high-performance +//! streaming writes with durability guarantees via Write-Ahead Log (WAL). +//! +//! ## Architecture +//! +//! Each region has: +//! - A **MemTable** for in-memory data (immediately queryable) +//! - A **WAL Buffer** for durability (persisted to object storage) +//! - **In-memory indexes** (BTree, IVF-PQ, FTS) for indexed queries +//! +//! ## Write Path +//! +//! ```text +//! put(batch) → MemTable.insert() → WalBuffer.append() → [async flush to storage] +//! ↓ +//! IndexRegistry.update() +//! ``` +//! +//! ## Durability +//! +//! Writers can be configured for: +//! - **Durable writes**: Wait for WAL flush before returning +//! - **Non-durable writes**: Buffer in memory, accept potential loss on crash +//! +//! ## Epoch-Based Fencing +//! +//! Each region has exactly one active writer at any time, enforced via +//! monotonically increasing writer epochs in the region manifest. + +mod api; +mod config; +mod dispatcher; +mod epoch; +mod manifest; +pub mod read; +mod util; +pub mod write; + +pub use api::{DatasetMemWalExt, MemWalConfig}; +pub use config::RegionWriterConfig; +pub use epoch::EpochGuard; +pub use manifest::RegionManifestStore; +pub use read::MemTableScanner; +pub use write::RegionWriter; diff --git a/rust/lance/src/dataset/mem_wal/api.rs b/rust/lance/src/dataset/mem_wal/api.rs new file mode 100644 index 00000000000..7f4de19ba87 --- /dev/null +++ b/rust/lance/src/dataset/mem_wal/api.rs @@ -0,0 +1,321 @@ +// SPDX-License-Identifier: Apache-2.0 +// SPDX-FileCopyrightText: Copyright The Lance Authors + +//! Dataset API extensions for MemWAL. +//! +//! This module provides the user-facing API for initializing and using MemWAL +//! on a Dataset. + +use std::sync::Arc; + +use async_trait::async_trait; +use lance_core::{Error, Result}; +use lance_index::mem_wal::{MemWalIndexDetails, RegionSpec, MEM_WAL_INDEX_NAME}; +use lance_index::vector::ivf::storage::IvfModel; +use lance_index::vector::pq::ProductQuantizer; +use lance_index::DatasetIndexExt; +use lance_io::object_store::ObjectStore; +use lance_linalg::distance::DistanceType; +use snafu::location; +use uuid::Uuid; + +use crate::dataset::transaction::{Operation, Transaction}; +use crate::dataset::CommitBuilder; +use crate::index::mem_wal::new_mem_wal_index_meta; +use crate::index::DatasetIndexInternalExt; +use crate::Dataset; + +use super::write::MemIndexConfig; +use super::write::RegionWriter; +use super::RegionWriterConfig; + +/// Configuration for initializing MemWAL on a Dataset. +#[derive(Debug, Clone, Default)] +pub struct MemWalConfig { + /// Optional region specification for partitioning writes. + /// + /// If None, MemWAL is initialized without any region spec (manual region management). + /// + /// TODO: Add `add_region_spec()` API to add region specs after initialization. + pub region_spec: Option, + /// Index names to maintain in MemTables. + /// These must reference indexes already defined on the base table. + pub maintained_indexes: Vec, +} + +/// Extension trait for Dataset to support MemWAL operations. +#[async_trait] +pub trait DatasetMemWalExt { + /// Initialize MemWAL on this dataset. + /// + /// Creates the MemWalIndex system index with the given configuration. + /// All indexes in `maintained_indexes` must already exist on the dataset. + /// + /// # Example + /// + /// ```ignore + /// let mut dataset = Dataset::open("s3://bucket/dataset").await?; + /// dataset.initialize_mem_wal(MemWalConfig { + /// region_specs: vec![], + /// maintained_indexes: vec!["id_btree".to_string()], + /// }).await?; + /// ``` + async fn initialize_mem_wal(&mut self, config: MemWalConfig) -> Result<()>; + + /// Get a RegionWriter for the specified region. + /// + /// Automatically loads index configurations from the MemWalIndex + /// and creates the appropriate in-memory indexes. + /// + /// # Arguments + /// + /// * `region_id` - UUID identifying this region + /// * `config` - Writer configuration (durability, buffer sizes, etc.) + /// + /// # Example + /// + /// ```ignore + /// let writer = dataset.mem_wal_writer( + /// Uuid::new_v4(), + /// RegionWriterConfig::default(), + /// ).await?; + /// writer.put(batch).await?; + /// ``` + async fn mem_wal_writer( + &self, + region_id: Uuid, + config: RegionWriterConfig, + ) -> Result; +} + +#[async_trait] +impl DatasetMemWalExt for Dataset { + async fn initialize_mem_wal(&mut self, config: MemWalConfig) -> Result<()> { + // Validate that the dataset has a primary key (required for MemWAL) + let pk_fields = self.schema().unenforced_primary_key(); + if pk_fields.is_empty() { + return Err(Error::invalid_input( + "MemWAL requires a primary key on the dataset. \ + Define a primary key using the 'lance-schema:unenforced-primary-key' Arrow field metadata.", + location!(), + )); + } + + // Validate that all maintained_indexes exist on the dataset + let indices = self.load_indices().await?; + for index_name in &config.maintained_indexes { + if !indices.iter().any(|idx| &idx.name == index_name) { + return Err(Error::invalid_input( + format!( + "Index '{}' not found on dataset. maintained_indexes must reference existing indexes.", + index_name + ), + location!(), + )); + } + } + + // Check if MemWAL index already exists + if indices.iter().any(|idx| idx.name == MEM_WAL_INDEX_NAME) { + return Err(Error::invalid_input( + "MemWAL is already initialized on this dataset. Use update methods instead.", + location!(), + )); + } + + // Create MemWalIndexDetails + let details = MemWalIndexDetails { + region_specs: config.region_spec.into_iter().collect(), + maintained_indexes: config.maintained_indexes, + ..Default::default() + }; + + // Create the index metadata + let index_meta = new_mem_wal_index_meta(self.manifest.version, details)?; + + // Commit as CreateIndex transaction + let transaction = Transaction::new( + self.manifest.version, + Operation::CreateIndex { + new_indices: vec![index_meta], + removed_indices: vec![], + }, + None, + ); + + let new_dataset = CommitBuilder::new(Arc::new(self.clone())) + .execute(transaction) + .await?; + + // Update self to point to new version + *self = new_dataset; + + Ok(()) + } + + async fn mem_wal_writer( + &self, + region_id: Uuid, + mut config: RegionWriterConfig, + ) -> Result { + use lance_index::metrics::NoOpMetricsCollector; + + // Load MemWalIndex to get maintained_indexes + let mem_wal_index = self + .open_mem_wal_index(&NoOpMetricsCollector) + .await? + .ok_or_else(|| { + Error::invalid_input( + "MemWAL is not initialized on this dataset. Call initialize_mem_wal() first.", + location!(), + ) + })?; + + // Get maintained_indexes from the MemWalIndex details + let maintained_indexes = &mem_wal_index.details.maintained_indexes; + + // Load index configs for each maintained index + let mut index_configs = Vec::new(); + for index_name in maintained_indexes { + let index_meta = self.load_index_by_name(index_name).await?.ok_or_else(|| { + Error::invalid_input( + format!( + "Index '{}' from maintained_indexes not found on dataset", + index_name + ), + location!(), + ) + })?; + + // Detect index type and create appropriate config + let type_url = index_meta + .index_details + .as_ref() + .map(|d| d.type_url.as_str()) + .unwrap_or(""); + + let index_type = MemIndexConfig::detect_index_type(type_url)?; + + let mem_index_config = match index_type { + "btree" => MemIndexConfig::btree_from_metadata(&index_meta, self.schema())?, + "fts" => MemIndexConfig::fts_from_metadata(&index_meta, self.schema())?, + "vector" => load_vector_index_config(self, index_name, &index_meta).await?, + _ => { + return Err(Error::invalid_input( + format!("Unknown index type: {}", index_type), + location!(), + )) + } + }; + + index_configs.push(mem_index_config); + } + + // Set region_id in config + config.region_id = region_id; + + // Get object store and base path + let base_uri = self.uri(); + let (store, base_path) = ObjectStore::from_uri(base_uri).await?; + + // Create RegionWriter + RegionWriter::open( + store, + base_path, + base_uri, + config, + Arc::new(self.schema().into()), + index_configs, + ) + .await + } +} + +/// Load vector index configuration with IVF centroids and PQ codebook. +/// +/// Opens the vector index and extracts the IVF model and product +/// quantizer needed for in-memory index maintenance. +async fn load_vector_index_config( + dataset: &Dataset, + index_name: &str, + index_meta: &lance_table::format::IndexMetadata, +) -> Result { + use lance_index::metrics::NoOpMetricsCollector; + + // Get the column name for this index + let field_id = index_meta.fields.first().ok_or_else(|| { + Error::invalid_input( + format!("Vector index '{}' has no fields", index_name), + location!(), + ) + })?; + + let column = dataset + .schema() + .field_by_id(*field_id) + .map(|f| f.name.clone()) + .ok_or_else(|| { + Error::invalid_input( + format!("Field not found for vector index '{}'", index_name), + location!(), + ) + })?; + + // Try to load as IVF-PQ index (use UUID from index metadata) + let index_uuid = index_meta.uuid.to_string(); + let (ivf_model, pq, distance_type) = load_ivf_pq_components( + dataset, + index_name, + &index_uuid, + &column, + &NoOpMetricsCollector, + ) + .await?; + + Ok(MemIndexConfig::ivf_pq( + index_name.to_string(), + column, + ivf_model, + pq, + distance_type, + )) +} + +/// Load IVF model and ProductQuantizer from an IVF-PQ index. +async fn load_ivf_pq_components( + dataset: &Dataset, + index_name: &str, + index_uuid: &str, + column_name: &str, + metrics: &dyn lance_index::metrics::MetricsCollector, +) -> Result<(IvfModel, ProductQuantizer, DistanceType)> { + use crate::index::vector::ivf::v2::IvfPq; + use lance_index::vector::VectorIndex; + + // Open the vector index using UUID + let index = dataset + .open_vector_index(column_name, index_uuid, metrics) + .await?; + + // Try to downcast to IvfPq (IVFIndex) + // This covers IVF-PQ indexes which are the most common + let ivf_index = index.as_any().downcast_ref::().ok_or_else(|| { + Error::invalid_input( + format!( + "Vector index '{}' is not an IVF-PQ index. Only IVF-PQ indexes are supported for MemWAL.", + index_name + ), + location!(), + ) + })?; + + // Extract IVF model and distance type from the index + let ivf_model = ivf_index.ivf_model().clone(); + let distance_type = ivf_index.metric_type(); + + // Get the quantizer and convert to ProductQuantizer + let quantizer = ivf_index.quantizer(); + let pq = ProductQuantizer::try_from(quantizer)?; + + Ok((ivf_model, pq, distance_type)) +} diff --git a/rust/lance/src/dataset/mem_wal/config.rs b/rust/lance/src/dataset/mem_wal/config.rs new file mode 100644 index 00000000000..2eb9eda455d --- /dev/null +++ b/rust/lance/src/dataset/mem_wal/config.rs @@ -0,0 +1,182 @@ +// SPDX-License-Identifier: Apache-2.0 +// SPDX-FileCopyrightText: Copyright The Lance Authors + +//! Configuration types for MemWAL writers. + +use std::time::Duration; + +use uuid::Uuid; + +/// Configuration for a region writer. +#[derive(Debug, Clone)] +pub struct RegionWriterConfig { + /// Unique identifier for this region (UUID v4). + pub region_id: Uuid, + + /// Region spec ID this region was created with. + /// A value of 0 indicates a manually-created region not governed by any spec. + pub region_spec_id: u32, + + /// Whether to wait for WAL flush before returning from writes. + /// + /// When true (durable writes): + /// - Each write waits for WAL persistence before returning + /// - Guarantees no data loss on crash + /// - Higher latency due to object storage writes + /// + /// When false (non-durable writes): + /// - Writes return immediately after buffering in memory + /// - Potential data loss if process crashes before flush + /// - Lower latency, batched S3 operations + pub durable_writes: bool, + + /// Whether to update indexes synchronously on each write. + /// + /// When true: + /// - Newly written data is immediately searchable via indexes + /// - Higher latency due to index update overhead + /// + /// When false: + /// - Index updates are deferred + /// - New data may not appear in index-accelerated queries immediately + pub sync_indexed_write: bool, + + /// Maximum WAL buffer size in bytes before triggering a flush. + /// + /// This is a soft threshold - write batches are atomic and won't be split. + /// WAL flushes when buffer exceeds this size OR when `max_flush_interval` elapses. + /// Default: 1MB + pub max_wal_buffer_size: usize, + + /// Time-based WAL flush interval. + /// + /// WAL buffer will be flushed after this duration even if size threshold + /// hasn't been reached. This ensures bounded data loss window in non-durable mode. + /// Default: 1 second + pub max_flush_interval: Option, + + /// Maximum MemTable size in bytes before triggering a flush to storage. + /// + /// MemTable size is checked every `max_flush_interval` (during WAL flush ticks). + /// Default: 64MB + pub max_memtable_size: usize, + + /// Batch size for parallel HEAD requests when scanning for manifest versions. + /// + /// Higher values scan faster but use more parallel requests. + /// Default: 2 + pub manifest_scan_batch_size: usize, + + /// Maximum unflushed bytes before applying backpressure. + /// + /// When total unflushed data (WAL buffer + immutable memtables) exceeds this, + /// new writes will block until some data is flushed to storage. + /// This prevents unbounded memory growth during write spikes. + /// + /// Default: 1GB + pub max_unflushed_bytes: usize, + + /// Maximum number of immutable memtables waiting to be flushed. + /// + /// When this limit is reached, new writes will block until some memtables + /// are flushed to storage. This creates backpressure from the flush pipeline. + /// + /// Default: 4 + pub max_immutable_memtables: usize, + + /// Backpressure timeout for waiting on flushes. + /// + /// If a write is blocked waiting for flush and this timeout is exceeded, + /// a warning is logged but the write continues waiting. + /// + /// Default: 30 seconds + pub backpressure_timeout: Duration, +} + +impl Default for RegionWriterConfig { + fn default() -> Self { + Self { + region_id: Uuid::new_v4(), + region_spec_id: 0, + durable_writes: true, + sync_indexed_write: true, + max_wal_buffer_size: 1024 * 1024, // 1MB + max_flush_interval: Some(Duration::from_secs(1)), // 1 second + max_memtable_size: 64 * 1024 * 1024, // 64MB + manifest_scan_batch_size: 2, + max_unflushed_bytes: 1024 * 1024 * 1024, // 1GB + max_immutable_memtables: 4, + backpressure_timeout: Duration::from_secs(30), + } + } +} + +impl RegionWriterConfig { + /// Create a new configuration with the given region ID. + pub fn new(region_id: Uuid) -> Self { + Self { + region_id, + ..Default::default() + } + } + + /// Set the region spec ID. + pub fn with_region_spec_id(mut self, spec_id: u32) -> Self { + self.region_spec_id = spec_id; + self + } + + /// Set durable writes mode. + pub fn with_durable_writes(mut self, durable: bool) -> Self { + self.durable_writes = durable; + self + } + + /// Set indexed writes mode. + pub fn with_sync_indexed_write(mut self, indexed: bool) -> Self { + self.sync_indexed_write = indexed; + self + } + + /// Set maximum WAL buffer size. + pub fn with_max_wal_buffer_size(mut self, size: usize) -> Self { + self.max_wal_buffer_size = size; + self + } + + /// Set maximum flush interval. + pub fn with_max_flush_interval(mut self, interval: Duration) -> Self { + self.max_flush_interval = Some(interval); + self + } + + /// Set maximum MemTable size. + pub fn with_max_memtable_size(mut self, size: usize) -> Self { + self.max_memtable_size = size; + self + } + + /// Set manifest scan batch size. + pub fn with_manifest_scan_batch_size(mut self, size: usize) -> Self { + self.manifest_scan_batch_size = size; + self + } + + /// Set maximum unflushed bytes for backpressure. + pub fn with_max_unflushed_bytes(mut self, size: usize) -> Self { + self.max_unflushed_bytes = size; + self + } + + /// Set maximum immutable memtables for backpressure. + pub fn with_max_immutable_memtables(mut self, count: usize) -> Self { + self.max_immutable_memtables = count; + self + } + + /// Set backpressure timeout. + pub fn with_backpressure_timeout(mut self, timeout: Duration) -> Self { + self.backpressure_timeout = timeout; + self + } +} diff --git a/rust/lance/src/dataset/mem_wal/dispatcher.rs b/rust/lance/src/dataset/mem_wal/dispatcher.rs new file mode 100644 index 00000000000..16d5164e5fd --- /dev/null +++ b/rust/lance/src/dataset/mem_wal/dispatcher.rs @@ -0,0 +1,415 @@ +// SPDX-License-Identifier: Apache-2.0 +// SPDX-FileCopyrightText: Copyright The Lance Authors + +//! Background task dispatcher with message-driven event handling. +//! +//! ## Example +//! +//! ```ignore +//! enum MyMessage { +//! DoWork(String), +//! Shutdown, +//! } +//! +//! struct MyHandler; +//! +//! #[async_trait] +//! impl MessageHandler for MyHandler { +//! async fn handle(&mut self, message: MyMessage) -> Result<()> { +//! match message { +//! MyMessage::DoWork(data) => { /* work */ Ok(()) } +//! MyMessage::Shutdown => Ok(()), +//! } +//! } +//! } +//! ``` + +use std::fmt::Debug; +use std::sync::Arc; +use std::time::Duration; + +use async_trait::async_trait; +use lance_core::Result; +use std::sync::RwLock; +use tokio::select; +use tokio::sync::mpsc; +use tokio::task::JoinHandle; +use tokio::time::{interval_at, Instant, Interval}; +use tokio_util::sync::CancellationToken; +use tracing::{debug, error, info, warn}; + +/// Factory function for creating ticker messages. +pub type MessageFactory = Box T + Send + Sync>; + +/// Handler trait for processing messages in a background task. +/// +/// Implementations define: +/// - How to process incoming messages +/// - Optional periodic tickers for scheduled work +/// - Cleanup logic on shutdown +#[async_trait] +pub trait MessageHandler: Send { + /// Define periodic tickers that generate messages. + /// + /// Each ticker is a tuple of (interval, factory function). + /// The factory is called each time the interval elapses. + fn tickers(&mut self) -> Vec<(Duration, MessageFactory)> { + vec![] + } + + /// Handle a single message. + /// + /// Called for both external messages and ticker-generated messages. + async fn handle(&mut self, message: T) -> Result<()>; + + /// Cleanup on shutdown. + /// + /// Called when the handler is shutting down. Override to perform + /// custom cleanup logic (e.g., flushing buffers, closing connections). + /// + /// # Arguments + /// + /// * `_shutdown_ok` - Whether the shutdown was clean (true) or due to error (false) + async fn cleanup(&mut self, _shutdown_ok: bool) -> Result<()> { + Ok(()) + } +} + +/// Dispatcher that runs the event loop for a single message handler. +struct TaskDispatcher { + handler: Box>, + rx: mpsc::UnboundedReceiver, + cancellation_token: CancellationToken, + name: String, +} + +impl TaskDispatcher { + /// Run the message processing loop until cancellation or error. + async fn run(mut self) -> Result<()> { + let tickers = self.handler.tickers(); + let mut ticker_intervals: Vec<(Interval, MessageFactory)> = tickers + .into_iter() + .map(|(duration, factory)| { + let interval = interval_at(Instant::now() + duration, duration); + (interval, factory) + }) + .collect(); + + debug!("Task dispatcher '{}' started", self.name); + + let result = loop { + // Handle tickers based on whether we have any + if ticker_intervals.is_empty() { + // No tickers, just handle messages and cancellation + select! { + biased; + + // Priority 1: Cancellation + _ = self.cancellation_token.cancelled() => { + debug!("Task '{}' received cancellation", self.name); + break Ok(()); + } + + // Priority 2: Messages from channel + msg = self.rx.recv() => { + match msg { + Some(message) => { + if let Err(e) = self.handler.handle(message).await { + error!("Task '{}' error handling message: {}", self.name, e); + break Err(e); + } + } + None => { + debug!("Task '{}' channel closed", self.name); + break Ok(()); + } + } + } + } + } else { + // With tickers, we first wait for any ticker to fire, then handle it + // We use a simple approach: wait for the first ticker using a tokio::time::timeout-like pattern + let first_ticker = ticker_intervals.first_mut().unwrap(); + let first_interval = &mut first_ticker.0; + + select! { + biased; + + // Priority 1: Cancellation + _ = self.cancellation_token.cancelled() => { + debug!("Task '{}' received cancellation", self.name); + break Ok(()); + } + + // Priority 2: Messages from channel + msg = self.rx.recv() => { + match msg { + Some(message) => { + if let Err(e) = self.handler.handle(message).await { + error!("Task '{}' error handling message: {}", self.name, e); + break Err(e); + } + } + None => { + debug!("Task '{}' channel closed", self.name); + break Ok(()); + } + } + } + + // Priority 3: Ticker event (just use first ticker for simplicity) + _ = first_interval.tick() => { + // Generate message from the first ticker + let message = (ticker_intervals[0].1)(); + if let Err(e) = self.handler.handle(message).await { + error!("Task '{}' error handling ticker message: {}", self.name, e); + break Err(e); + } + } + } + } + }; + + // Cleanup + let cleanup_ok = result.is_ok(); + self.handler.cleanup(cleanup_ok).await?; + + info!("Task dispatcher '{}' stopped", self.name); + result + } +} + +/// Executor that manages multiple background tasks. +pub struct TaskExecutor { + tasks: RwLock>)>>, + cancellation_token: CancellationToken, +} + +impl TaskExecutor { + /// Create a new task executor. + pub fn new() -> Self { + Self { + tasks: RwLock::new(Vec::new()), + cancellation_token: CancellationToken::new(), + } + } + + /// Add a new handler task. + /// + /// The handler will be spawned as a tokio task and run until shutdown. + /// + /// # Arguments + /// + /// * `name` - Unique name for the task (for logging) + /// * `handler` - The message handler implementation + /// * `rx` - Receiver for messages to this handler + pub fn add_handler( + &self, + name: String, + handler: Box>, + rx: mpsc::UnboundedReceiver, + ) -> Result<()> { + let dispatcher = TaskDispatcher { + handler, + rx, + cancellation_token: self.cancellation_token.clone(), + name: name.clone(), + }; + + let handle = tokio::spawn(async move { dispatcher.run().await }); + + self.tasks.write().unwrap().push((name, handle)); + Ok(()) + } + + /// Shutdown a specific task by name. + #[allow(dead_code)] + pub async fn shutdown_task(&self, name: &str) -> Result<()> { + // Find and remove the task + let handle = { + let mut tasks = self.tasks.write().unwrap(); + let pos = tasks.iter().position(|(n, _)| n == name); + pos.map(|i| tasks.remove(i).1) + }; + + if let Some(handle) = handle { + // Cancel and wait + self.cancellation_token.cancel(); + match handle.await { + Ok(result) => result, + Err(e) => { + error!("Task '{}' panicked: {}", name, e); + Ok(()) + } + } + } else { + warn!("Task '{}' not found", name); + Ok(()) + } + } + + /// Shutdown all tasks and wait for completion. + pub async fn shutdown_all(&self) -> Result<()> { + info!("Shutting down all tasks"); + + // Signal cancellation + self.cancellation_token.cancel(); + + // Wait for all tasks + let tasks = std::mem::take(&mut *self.tasks.write().unwrap()); + for (name, handle) in tasks { + match handle.await { + Ok(Ok(())) => debug!("Task '{}' completed successfully", name), + Ok(Err(e)) => warn!("Task '{}' completed with error: {}", name, e), + Err(e) => error!("Task '{}' panicked: {}", name, e), + } + } + + Ok(()) + } + + /// Check if cancellation has been requested. + #[allow(dead_code)] + pub fn is_cancelled(&self) -> bool { + self.cancellation_token.is_cancelled() + } + + /// Get a clone of the cancellation token. + #[allow(dead_code)] + pub fn cancellation_token(&self) -> CancellationToken { + self.cancellation_token.clone() + } +} + +impl Default for TaskExecutor { + fn default() -> Self { + Self::new() + } +} + +/// Watcher for async durability notifications. +/// +/// Allows callers to wait for a write to become durable (flushed to storage). +#[derive(Clone, Debug)] +pub struct DurableWatcher { + rx: Arc>, +} + +impl DurableWatcher { + /// Create a new durable watcher with a sender for signaling. + pub fn new() -> (Self, DurableSender) { + let (tx, rx) = tokio::sync::watch::channel(false); + (Self { rx: Arc::new(rx) }, DurableSender { tx }) + } + + /// Wait until the write is durable. + pub async fn wait(&self) -> Result<()> { + let mut rx = (*self.rx).clone(); + while !*rx.borrow() { + rx.changed().await.map_err(|_| { + lance_core::Error::io("Durable watcher channel closed", snafu::location!()) + })?; + } + Ok(()) + } +} + +/// Sender for signaling durability. +pub struct DurableSender { + tx: tokio::sync::watch::Sender, +} + +impl std::fmt::Debug for DurableSender { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + f.debug_struct("DurableSender").finish_non_exhaustive() + } +} + +impl DurableSender { + /// Signal that the write is now durable. + pub fn notify_durable(self) { + let _ = self.tx.send(true); + } +} + +#[cfg(test)] +mod tests { + use super::*; + use std::sync::atomic::{AtomicUsize, Ordering}; + + #[derive(Debug)] + enum TestMessage { + Increment, + GetCount(tokio::sync::oneshot::Sender), + } + + struct CountingHandler { + count: Arc, + } + + #[async_trait] + impl MessageHandler for CountingHandler { + async fn handle(&mut self, message: TestMessage) -> Result<()> { + match message { + TestMessage::Increment => { + self.count.fetch_add(1, Ordering::SeqCst); + } + TestMessage::GetCount(tx) => { + let _ = tx.send(self.count.load(Ordering::SeqCst)); + } + } + Ok(()) + } + } + + #[tokio::test] + async fn test_basic_message_handling() { + let count = Arc::new(AtomicUsize::new(0)); + let handler = CountingHandler { + count: count.clone(), + }; + + let (tx, rx) = mpsc::unbounded_channel(); + let executor = TaskExecutor::new(); + + executor + .add_handler("counter".to_string(), Box::new(handler), rx) + .unwrap(); + + // Send some messages + tx.send(TestMessage::Increment).unwrap(); + tx.send(TestMessage::Increment).unwrap(); + tx.send(TestMessage::Increment).unwrap(); + + // Give time to process + tokio::time::sleep(Duration::from_millis(50)).await; + + let (resp_tx, resp_rx) = tokio::sync::oneshot::channel(); + tx.send(TestMessage::GetCount(resp_tx)).unwrap(); + + let result = resp_rx.await.unwrap(); + assert_eq!(result, 3); + + // Cleanup + drop(tx); + executor.shutdown_all().await.unwrap(); + } + + #[tokio::test] + async fn test_durable_watcher() { + let (watcher, sender) = DurableWatcher::new(); + + // Spawn a task that waits for durability + let watcher_clone = watcher.clone(); + let wait_task = tokio::spawn(async move { watcher_clone.wait().await }); + + // Brief delay + tokio::time::sleep(Duration::from_millis(10)).await; + + // Signal durability + sender.notify_durable(); + + // Wait should complete + wait_task.await.unwrap().unwrap(); + } +} diff --git a/rust/lance/src/dataset/mem_wal/epoch.rs b/rust/lance/src/dataset/mem_wal/epoch.rs new file mode 100644 index 00000000000..f73c591ac07 --- /dev/null +++ b/rust/lance/src/dataset/mem_wal/epoch.rs @@ -0,0 +1,372 @@ +// SPDX-License-Identifier: Apache-2.0 +// SPDX-FileCopyrightText: Copyright The Lance Authors + +//! Epoch-based writer fencing for single-writer semantics. +//! +//! Each region has exactly one active writer at any time. Writers use +//! monotonically increasing epochs to claim ownership and detect when +//! they've been fenced by a newer writer. +//! +//! ## Protocol +//! +//! ### Writer Initialization +//! +//! 1. Load the latest region manifest +//! 2. Increment `writer_epoch` by one +//! 3. Atomically write a new manifest with the incremented epoch +//! 4. If write fails (another writer claimed first), retry with higher epoch +//! +//! ### Fencing Check +//! +//! Before any manifest update, verify: +//! - `local_epoch == stored_epoch`: Writer is still active, proceed +//! - `local_epoch < stored_epoch`: Writer has been fenced, abort +//! +//! ## Fencing Guarantees +//! +//! - Fenced writers stop all operations immediately +//! - WAL entries from fenced writers are still valid (epoch <= current) +//! - No data loss occurs - fenced entries are replayed by the new writer + +use std::sync::Arc; + +use lance_core::{Error, Result}; +use lance_index::mem_wal::RegionManifest; +use snafu::location; +use tracing::{debug, info, warn}; +use uuid::Uuid; + +use super::manifest::RegionManifestStore; + +/// Error indicating a writer has been fenced by a newer writer. +#[derive(Debug, Clone)] +pub struct FencedError { + pub local_epoch: u64, + pub stored_epoch: u64, + pub region_id: Uuid, +} + +impl std::fmt::Display for FencedError { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!( + f, + "Writer fenced: local epoch {} < stored epoch {} for region {}", + self.local_epoch, self.stored_epoch, self.region_id + ) + } +} + +impl std::error::Error for FencedError {} + +/// Guard that tracks a writer's claimed epoch and provides fencing checks. +/// +/// An `EpochGuard` is obtained by successfully claiming a region via +/// [`EpochGuard::claim`]. It must be checked before any manifest update +/// to ensure the writer hasn't been fenced. +#[derive(Debug)] +pub struct EpochGuard { + local_epoch: u64, + region_id: Uuid, + manifest_store: Arc, +} + +impl EpochGuard { + /// Claim a region by incrementing its writer epoch. + /// + /// This establishes single-writer semantics by: + /// 1. Loading the current manifest (or creating initial state) + /// 2. Incrementing the writer epoch + /// 3. Atomically writing the new manifest + /// + /// If another writer has already claimed the region (race condition), + /// this will retry with an even higher epoch. + /// + /// # Arguments + /// + /// * `manifest_store` - Store for reading/writing region manifests + /// * `region_spec_id` - Region spec ID (used when creating new regions) + /// + /// # Returns + /// + /// A tuple of `(EpochGuard, RegionManifest)` where the manifest is the + /// claimed state (may be freshly created or loaded and epoch-bumped). + pub async fn claim( + manifest_store: Arc, + region_spec_id: u32, + ) -> Result<(Self, RegionManifest)> { + let region_id = manifest_store.region_id(); + let max_retries = 10; + + for attempt in 0..max_retries { + // Load current manifest or create initial state + let current = manifest_store.read_latest().await?; + + let (next_version, next_epoch, base_manifest) = match current { + Some(m) => (m.version + 1, m.writer_epoch + 1, Some(m)), + None => (1, 1, None), + }; + + // Create new manifest with bumped epoch + let new_manifest = if let Some(base) = base_manifest { + RegionManifest { + version: next_version, + writer_epoch: next_epoch, + ..base + } + } else { + RegionManifest { + region_id, + version: next_version, + region_spec_id, + writer_epoch: next_epoch, + replay_after_wal_id: 0, + wal_id_last_seen: 0, + current_generation: 1, + flushed_generations: vec![], + } + }; + + // Attempt atomic write + match manifest_store.write(&new_manifest).await { + Ok(_) => { + info!( + "Claimed region {} with epoch {} (version {})", + region_id, next_epoch, next_version + ); + + let guard = Self { + local_epoch: next_epoch, + region_id, + manifest_store, + }; + + return Ok((guard, new_manifest)); + } + Err(e) => { + // Another writer beat us - retry with fresh state + warn!( + "Epoch claim attempt {} failed for region {}: {}", + attempt + 1, + region_id, + e + ); + + if attempt == max_retries - 1 { + return Err(Error::io( + format!( + "Failed to claim region {} after {} attempts", + region_id, max_retries + ), + location!(), + )); + } + + // Brief delay before retry to avoid tight spin + tokio::time::sleep(std::time::Duration::from_millis(10 * (attempt as u64 + 1))) + .await; + } + } + } + + unreachable!() + } + + /// Check if this writer has been fenced. + /// + /// Loads the current manifest and compares epochs. If the stored epoch + /// is higher than our local epoch, we've been fenced by another writer. + /// + /// # Errors + /// + /// Returns `FencedError` if this writer has been fenced. + pub async fn check_fenced(&self) -> Result<()> { + let current = self.manifest_store.read_latest().await?; + + match current { + Some(m) if m.writer_epoch > self.local_epoch => { + let err = FencedError { + local_epoch: self.local_epoch, + stored_epoch: m.writer_epoch, + region_id: self.region_id, + }; + Err(Error::io(err.to_string(), location!())) + } + _ => Ok(()), + } + } + + /// Get the local epoch for this writer. + pub fn epoch(&self) -> u64 { + self.local_epoch + } + + /// Get the region ID. + pub fn region_id(&self) -> Uuid { + self.region_id + } + + /// Get a reference to the manifest store. + pub fn manifest_store(&self) -> &Arc { + &self.manifest_store + } + + /// Write a new manifest version, checking for fencing first. + /// + /// This combines fencing check with manifest write atomically. + /// If another writer has fenced us, the write fails immediately. + /// If the write fails due to version conflict, it may indicate + /// concurrent access that should be handled by the caller. + /// + /// # Arguments + /// + /// * `manifest` - The manifest to write (version should be correctly set) + pub async fn write_manifest(&self, manifest: &RegionManifest) -> Result<()> { + // First check if we've been fenced + self.check_fenced().await?; + + // Verify manifest has our epoch + if manifest.writer_epoch != self.local_epoch { + return Err(Error::invalid_input( + format!( + "Manifest epoch {} doesn't match local epoch {}", + manifest.writer_epoch, self.local_epoch + ), + location!(), + )); + } + + // Write the manifest + self.manifest_store.write(manifest).await?; + + debug!( + "Wrote manifest version {} for region {}", + manifest.version, self.region_id + ); + + Ok(()) + } +} + +#[cfg(test)] +mod tests { + use super::*; + use lance_io::object_store::ObjectStore; + use object_store::path::Path; + use tempfile::TempDir; + + async fn create_local_store() -> (Arc, Path, TempDir) { + let temp_dir = tempfile::tempdir().unwrap(); + let uri = format!("file://{}", temp_dir.path().display()); + let (store, path) = ObjectStore::from_uri(&uri).await.unwrap(); + (store, path, temp_dir) + } + + #[tokio::test] + async fn test_initial_claim() { + let (store, base_path, _temp_dir) = create_local_store().await; + let region_id = Uuid::new_v4(); + let manifest_store = Arc::new(RegionManifestStore::new(store, &base_path, region_id, 2)); + + let (guard, manifest) = EpochGuard::claim(manifest_store, 0).await.unwrap(); + + assert_eq!(guard.epoch(), 1); + assert_eq!(manifest.version, 1); + assert_eq!(manifest.writer_epoch, 1); + } + + #[tokio::test] + async fn test_subsequent_claim_bumps_epoch() { + let (store, base_path, _temp_dir) = create_local_store().await; + let region_id = Uuid::new_v4(); + let manifest_store = Arc::new(RegionManifestStore::new( + store.clone(), + &base_path, + region_id, + 2, + )); + + // First claim + let (guard1, manifest1) = EpochGuard::claim(manifest_store.clone(), 0).await.unwrap(); + assert_eq!(guard1.epoch(), 1); + assert_eq!(manifest1.version, 1); + + // Second claim (simulating new writer taking over) + let (guard2, manifest2) = EpochGuard::claim(manifest_store, 0).await.unwrap(); + assert_eq!(guard2.epoch(), 2); + assert_eq!(manifest2.version, 2); + } + + #[tokio::test] + async fn test_fencing_detection() { + let (store, base_path, _temp_dir) = create_local_store().await; + let region_id = Uuid::new_v4(); + let manifest_store = Arc::new(RegionManifestStore::new( + store.clone(), + &base_path, + region_id, + 2, + )); + + // First writer claims + let (guard1, _) = EpochGuard::claim(manifest_store.clone(), 0).await.unwrap(); + assert!(guard1.check_fenced().await.is_ok()); + + // Second writer claims (fences first) + let (guard2, _) = EpochGuard::claim(manifest_store.clone(), 0).await.unwrap(); + assert!(guard2.check_fenced().await.is_ok()); + + // First writer should now detect fencing + assert!(guard1.check_fenced().await.is_err()); + } + + #[tokio::test] + async fn test_write_manifest_checks_fencing() { + let (store, base_path, _temp_dir) = create_local_store().await; + let region_id = Uuid::new_v4(); + let manifest_store = Arc::new(RegionManifestStore::new( + store.clone(), + &base_path, + region_id, + 2, + )); + + // First writer claims + let (guard1, manifest1) = EpochGuard::claim(manifest_store.clone(), 0).await.unwrap(); + + // Second writer claims (fences first) + let (_guard2, _) = EpochGuard::claim(manifest_store.clone(), 0).await.unwrap(); + + // First writer tries to write - should fail due to fencing + let updated = RegionManifest { + version: manifest1.version + 1, + ..manifest1 + }; + assert!(guard1.write_manifest(&updated).await.is_err()); + } + + #[tokio::test] + async fn test_preserves_manifest_state() { + let (store, base_path, _temp_dir) = create_local_store().await; + let region_id = Uuid::new_v4(); + let manifest_store = Arc::new(RegionManifestStore::new( + store.clone(), + &base_path, + region_id, + 2, + )); + + // First writer sets some state + let (guard1, mut manifest1) = EpochGuard::claim(manifest_store.clone(), 0).await.unwrap(); + manifest1.version = 2; + manifest1.replay_after_wal_id = 100; + manifest1.current_generation = 5; + guard1.write_manifest(&manifest1).await.unwrap(); + + // Second writer should inherit state + let (_guard2, manifest2) = EpochGuard::claim(manifest_store, 0).await.unwrap(); + assert_eq!(manifest2.replay_after_wal_id, 100); + assert_eq!(manifest2.current_generation, 5); + assert_eq!(manifest2.writer_epoch, 2); // epoch bumped + assert_eq!(manifest2.version, 3); // version bumped + } +} diff --git a/rust/lance/src/dataset/mem_wal/manifest.rs b/rust/lance/src/dataset/mem_wal/manifest.rs new file mode 100644 index 00000000000..35e87ad4832 --- /dev/null +++ b/rust/lance/src/dataset/mem_wal/manifest.rs @@ -0,0 +1,480 @@ +// SPDX-License-Identifier: Apache-2.0 +// SPDX-FileCopyrightText: Copyright The Lance Authors + +//! Region manifest storage with bit-reversed versioned naming. +//! +//! Region manifests are stored as versioned protobuf files using bit-reversed +//! naming scheme to distribute files across object store keyspace. +//! +//! ## File Layout +//! +//! ```text +//! _mem_wal/{region_id}/manifest/ +//! ├── {bit_reversed_version}.binpb # Versioned manifest files +//! └── version_hint.json # Best-effort version hint +//! ``` +//! +//! ## Write Protocol +//! +//! 1. Compute next version number +//! 2. Write manifest to `{bit_reversed_version}.binpb` using PUT-IF-NOT-EXISTS +//! 3. Best-effort update `version_hint.json` (failure is acceptable) +//! +//! ## Read Protocol +//! +//! 1. Read `version_hint.json` for starting version (default: 1 if not found) +//! 2. Use HEAD requests to check existence of subsequent versions +//! 3. Continue until a version is not found +//! 4. Return the last found version + +use std::sync::Arc; + +use bytes::Bytes; +use futures::stream::FuturesUnordered; +use futures::StreamExt; +use lance_core::{Error, Result}; +use lance_index::mem_wal::RegionManifest; +use lance_io::object_store::ObjectStore; +use lance_table::format::pb; +use object_store::path::Path; +use object_store::PutMode; +use object_store::PutOptions; +use prost::Message; +use serde::{Deserialize, Serialize}; +use snafu::location; +use tracing::{debug, warn}; +use uuid::Uuid; + +use super::util::{manifest_filename, parse_bit_reversed_filename, region_manifest_path}; + +/// Version hint file structure. +#[derive(Debug, Serialize, Deserialize)] +struct VersionHint { + version: u64, +} + +/// Store for reading and writing region manifests. +/// +/// Handles versioned manifest files with bit-reversed naming scheme +/// and PUT-IF-NOT-EXISTS atomicity. +#[derive(Debug)] +pub struct RegionManifestStore { + object_store: Arc, + region_id: Uuid, + manifest_dir: Path, + manifest_scan_batch_size: usize, +} + +impl RegionManifestStore { + /// Create a new manifest store for the given region. + /// + /// # Arguments + /// + /// * `object_store` - Object store for reading/writing manifests + /// * `base_path` - Base path within the object store (from ObjectStore::from_uri) + /// * `region_id` - Region UUID + /// * `manifest_scan_batch_size` - Batch size for parallel HEAD requests when scanning versions + pub fn new( + object_store: Arc, + base_path: &Path, + region_id: Uuid, + manifest_scan_batch_size: usize, + ) -> Self { + let manifest_dir = region_manifest_path(base_path, ®ion_id); + Self { + object_store, + region_id, + manifest_dir, + manifest_scan_batch_size, + } + } + + /// Read the latest manifest version. + /// + /// Returns `None` if no manifest exists (new region). + pub async fn read_latest(&self) -> Result> { + let version = self.find_latest_version().await?; + if version == 0 { + return Ok(None); + } + + self.read_version(version).await.map(Some) + } + + /// Read a specific manifest version. + pub async fn read_version(&self, version: u64) -> Result { + let filename = manifest_filename(version); + let path = self.manifest_dir.child(filename.as_str()); + + let data = self.object_store.inner.get(&path).await.map_err(|e| { + Error::io( + format!( + "Failed to read manifest version {} for region {}: {}", + version, self.region_id, e + ), + location!(), + ) + })?; + + let bytes = data + .bytes() + .await + .map_err(|e| Error::io(format!("Failed to read manifest bytes: {}", e), location!()))?; + + let pb_manifest = pb::RegionManifest::decode(bytes).map_err(|e| { + Error::io( + format!("Failed to decode manifest protobuf: {}", e), + location!(), + ) + })?; + + RegionManifest::try_from(pb_manifest) + } + + /// Write a new manifest version atomically. + /// + /// Uses storage-appropriate strategy: + /// - Local: Write to temp file + atomic rename for fencing + /// - Cloud: PUT-IF-NOT-EXISTS (S3 conditional write) + /// + /// Returns the version that was written. + /// + /// # Errors + /// + /// Returns `Error::AlreadyExists` if another writer already wrote this version. + pub async fn write(&self, manifest: &RegionManifest) -> Result { + let version = manifest.version; + let filename = manifest_filename(version); + let path = self.manifest_dir.child(filename.as_str()); + + let pb_manifest = pb::RegionManifest::from(manifest); + let bytes = pb_manifest.encode_to_vec(); + + if self.object_store.is_local() { + // Local storage: Use temp file + atomic rename for fencing + let temp_filename = format!("{}.tmp.{}", filename, uuid::Uuid::new_v4()); + let temp_path = self.manifest_dir.child(temp_filename.as_str()); + + // Write to temp file + self.object_store + .inner + .put(&temp_path, Bytes::from(bytes).into()) + .await + .map_err(|e| { + Error::io(format!("Failed to write temp manifest: {}", e), location!()) + })?; + + // Atomically rename to final path + match self + .object_store + .inner + .rename_if_not_exists(&temp_path, &path) + .await + { + Ok(()) => {} + Err(object_store::Error::AlreadyExists { .. }) => { + // Clean up temp file + let _ = self.object_store.delete(&temp_path).await; + return Err(Error::io( + format!( + "Manifest version {} already exists for region {}", + version, self.region_id + ), + location!(), + )); + } + Err(e) => { + // Clean up temp file + let _ = self.object_store.delete(&temp_path).await; + return Err(Error::io( + format!( + "Failed to write manifest version {} for region {}: {}", + version, self.region_id, e + ), + location!(), + )); + } + } + } else { + // Cloud storage: Use PUT-IF-NOT-EXISTS + let put_opts = PutOptions { + mode: PutMode::Create, + ..Default::default() + }; + + self.object_store + .inner + .put_opts(&path, Bytes::from(bytes).into(), put_opts) + .await + .map_err(|e| { + if matches!(e, object_store::Error::AlreadyExists { .. }) { + Error::io( + format!( + "Manifest version {} already exists for region {}", + version, self.region_id + ), + location!(), + ) + } else { + Error::io( + format!( + "Failed to write manifest version {} for region {}: {}", + version, self.region_id, e + ), + location!(), + ) + } + })?; + } + + // Best-effort update version hint (failures are logged as warnings) + self.write_version_hint(version).await; + + debug!( + "Wrote manifest version {} for region {}", + version, self.region_id + ); + + Ok(version) + } + + /// Find the latest manifest version. + /// + /// Uses HEAD requests starting from version hint, scanning forward + /// until a version is not found. + async fn find_latest_version(&self) -> Result { + // Start from version hint or 1 + let hint = self.read_version_hint().await.unwrap_or(1); + + // Scan forward from hint using HEAD requests + let mut latest_found = 0u64; + + // First, check if hint version exists + if hint > 0 && self.version_exists(hint).await? { + latest_found = hint; + } else if hint > 1 { + // Hint might be stale, scan from beginning + if self.version_exists(1).await? { + latest_found = 1; + } + } + + // Parallel scan forward with batches of HEAD requests + let batch_size = self.manifest_scan_batch_size; + loop { + let mut futures = FuturesUnordered::new(); + for offset in 0..batch_size { + let version = latest_found + 1 + offset as u64; + futures.push(async move { (version, self.version_exists(version).await) }); + } + + let mut found_any = false; + while let Some((version, result)) = futures.next().await { + if let Ok(true) = result { + if version > latest_found { + latest_found = version; + found_any = true; + } + } + } + + if !found_any { + break; + } + } + + Ok(latest_found) + } + + /// Check if a manifest version exists using HEAD request. + async fn version_exists(&self, version: u64) -> Result { + let filename = manifest_filename(version); + let path = self.manifest_dir.child(filename.as_str()); + + match self.object_store.inner.head(&path).await { + Ok(_) => Ok(true), + Err(object_store::Error::NotFound { .. }) => Ok(false), + Err(e) => Err(Error::io( + format!("HEAD request failed for version {}: {}", version, e), + location!(), + )), + } + } + + /// Read the version hint file. + async fn read_version_hint(&self) -> Option { + let path = self.manifest_dir.child("version_hint.json"); + + let data = self.object_store.inner.get(&path).await.ok()?; + let bytes = data.bytes().await.ok()?; + let hint: VersionHint = serde_json::from_slice(&bytes).ok()?; + + Some(hint.version) + } + + /// Write the version hint file (best-effort, failures logged but ignored). + async fn write_version_hint(&self, version: u64) { + let path = self.manifest_dir.child("version_hint.json"); + let hint = VersionHint { version }; + + match serde_json::to_vec(&hint) { + Ok(bytes) => { + if let Err(e) = self + .object_store + .inner + .put(&path, Bytes::from(bytes).into()) + .await + { + warn!( + "Failed to write version hint for region {}: {}", + self.region_id, e + ); + } + } + Err(e) => { + warn!("Failed to serialize version hint: {}", e); + } + } + } + + /// List all manifest versions (for garbage collection or debugging). + pub async fn list_versions(&self) -> Result> { + let mut versions = Vec::new(); + + let list_result = self + .object_store + .inner + .list(Some(&self.manifest_dir)) + .collect::>() + .await; + + for item in list_result { + match item { + Ok(meta) => { + if let Some(filename) = meta.location.filename() { + if filename.ends_with(".binpb") { + if let Some(version) = parse_bit_reversed_filename(filename) { + versions.push(version); + } + } + } + } + Err(e) => { + warn!("Error listing manifest directory: {}", e); + } + } + } + + versions.sort_unstable(); + Ok(versions) + } + + /// Get the region ID. + pub fn region_id(&self) -> Uuid { + self.region_id + } +} + +#[cfg(test)] +mod tests { + use super::*; + use tempfile::TempDir; + + async fn create_local_store() -> (Arc, Path, TempDir) { + let temp_dir = tempfile::tempdir().unwrap(); + let uri = format!("file://{}", temp_dir.path().display()); + let (store, path) = ObjectStore::from_uri(&uri).await.unwrap(); + (store, path, temp_dir) + } + + fn create_test_manifest(region_id: Uuid, version: u64, epoch: u64) -> RegionManifest { + RegionManifest { + region_id, + version, + region_spec_id: 0, + writer_epoch: epoch, + replay_after_wal_id: 0, + wal_id_last_seen: 0, + current_generation: 1, + flushed_generations: vec![], + } + } + + #[tokio::test] + async fn test_read_latest_empty() { + let (store, base_path, _temp_dir) = create_local_store().await; + let region_id = Uuid::new_v4(); + let manifest_store = RegionManifestStore::new(store, &base_path, region_id, 2); + + let result = manifest_store.read_latest().await.unwrap(); + assert!(result.is_none()); + } + + #[tokio::test] + async fn test_write_and_read_manifest() { + let (store, base_path, _temp_dir) = create_local_store().await; + let region_id = Uuid::new_v4(); + let manifest_store = RegionManifestStore::new(store, &base_path, region_id, 2); + + let manifest = create_test_manifest(region_id, 1, 1); + manifest_store.write(&manifest).await.unwrap(); + + let loaded = manifest_store.read_latest().await.unwrap().unwrap(); + assert_eq!(loaded.version, 1); + assert_eq!(loaded.writer_epoch, 1); + assert_eq!(loaded.region_id, region_id); + } + + #[tokio::test] + async fn test_multiple_versions() { + let (store, base_path, _temp_dir) = create_local_store().await; + let region_id = Uuid::new_v4(); + let manifest_store = RegionManifestStore::new(store, &base_path, region_id, 2); + + // Write multiple versions + for version in 1..=5 { + let manifest = create_test_manifest(region_id, version, version); + manifest_store.write(&manifest).await.unwrap(); + } + + // Should find latest + let loaded = manifest_store.read_latest().await.unwrap().unwrap(); + assert_eq!(loaded.version, 5); + assert_eq!(loaded.writer_epoch, 5); + + // List should return all versions + let versions = manifest_store.list_versions().await.unwrap(); + assert_eq!(versions, vec![1, 2, 3, 4, 5]); + } + + #[tokio::test] + async fn test_read_specific_version() { + let (store, base_path, _temp_dir) = create_local_store().await; + let region_id = Uuid::new_v4(); + let manifest_store = RegionManifestStore::new(store, &base_path, region_id, 2); + + for version in 1..=3 { + let manifest = create_test_manifest(region_id, version, version * 10); + manifest_store.write(&manifest).await.unwrap(); + } + + let v2 = manifest_store.read_version(2).await.unwrap(); + assert_eq!(v2.version, 2); + assert_eq!(v2.writer_epoch, 20); + } + + #[tokio::test] + async fn test_put_if_not_exists() { + let (store, base_path, _temp_dir) = create_local_store().await; + let region_id = Uuid::new_v4(); + let manifest_store = RegionManifestStore::new(store, &base_path, region_id, 2); + + let manifest1 = create_test_manifest(region_id, 1, 1); + manifest_store.write(&manifest1).await.unwrap(); + + // Second write to same version should fail + let manifest2 = create_test_manifest(region_id, 1, 2); + let result = manifest_store.write(&manifest2).await; + assert!(result.is_err()); + } +} diff --git a/rust/lance/src/dataset/mem_wal/read.rs b/rust/lance/src/dataset/mem_wal/read.rs new file mode 100644 index 00000000000..e34898632ed --- /dev/null +++ b/rust/lance/src/dataset/mem_wal/read.rs @@ -0,0 +1,18 @@ +// SPDX-License-Identifier: Apache-2.0 +// SPDX-FileCopyrightText: Copyright The Lance Authors + +//! Read path for MemWAL. +//! +//! This module provides query execution over MemWAL data using DataFusion. +//! +//! ## Submodules +//! +//! - [`memtable`]: Read path for in-memory MemTable data + +pub mod memtable; + +// Re-export commonly used types from memtable +pub use memtable::{ + BTreeIndexExec, FtsIndexExec, MemTableRangeScanExec, MemTableScanExec, MemTableScanner, + SplitPlanExec, VectorIndexExec, +}; diff --git a/rust/lance/src/dataset/mem_wal/read/memtable.rs b/rust/lance/src/dataset/mem_wal/read/memtable.rs new file mode 100644 index 00000000000..207fd81de47 --- /dev/null +++ b/rust/lance/src/dataset/mem_wal/read/memtable.rs @@ -0,0 +1,44 @@ +// SPDX-License-Identifier: Apache-2.0 +// SPDX-FileCopyrightText: Copyright The Lance Authors + +//! Read path for MemTable. +//! +//! This module provides query execution over MemTable data using DataFusion. +//! +//! ## Architecture +//! +//! ```text +//! MemTableScanner (Builder) +//! | +//! create_plan() +//! | +//! +------------+------------+ +//! | | | +//! Full Scan Index Query Split Plan +//! | | | +//! v v v +//! MemTableScanExec IndexExec SplitPlanExec +//! | | / \ +//! +------------+--------- \ +//! | IndexExec + RangeScanExec +//! DataFusion Execution | +//! | UnionExec +//! v +//! SendableRecordBatchStream +//! ``` +//! +//! ## Key Features +//! +//! - **MVCC Visibility**: All scans respect visibility sequence numbers +//! - **Index Support**: BTree, IVF-PQ vector, and FTS indexes +//! - **Split Plans**: Handle partial index coverage gracefully +//! - **DataFusion Integration**: Full ExecutionPlan compatibility + +mod exec; +mod scanner; + +pub use exec::{ + BTreeIndexExec, FtsIndexExec, MemTableRangeScanExec, MemTableScanExec, SplitPlanExec, + VectorIndexExec, +}; +pub use scanner::MemTableScanner; diff --git a/rust/lance/src/dataset/mem_wal/read/memtable/exec.rs b/rust/lance/src/dataset/mem_wal/read/memtable/exec.rs new file mode 100644 index 00000000000..3419fb12ca2 --- /dev/null +++ b/rust/lance/src/dataset/mem_wal/read/memtable/exec.rs @@ -0,0 +1,26 @@ +// SPDX-License-Identifier: Apache-2.0 +// SPDX-FileCopyrightText: Copyright The Lance Authors + +//! DataFusion ExecutionPlan implementations for MemWAL read path. +//! +//! This module contains execution nodes for: +//! - `MemTableScanExec` - Full table scan with MVCC visibility +//! - `MemTableRangeScanExec` - Scan specific sequence range +//! - `BTreeIndexExec` - BTree index queries +//! - `VectorIndexExec` - IVF-PQ vector search +//! - `FtsIndexExec` - Full-text search +//! - `SplitPlanExec` - Combine indexed and unindexed portions + +mod btree; +mod fts; +mod range_scan; +mod scan; +mod split; +mod vector; + +pub use btree::BTreeIndexExec; +pub use fts::FtsIndexExec; +pub use range_scan::MemTableRangeScanExec; +pub use scan::MemTableScanExec; +pub use split::SplitPlanExec; +pub use vector::VectorIndexExec; diff --git a/rust/lance/src/dataset/mem_wal/read/memtable/exec/btree.rs b/rust/lance/src/dataset/mem_wal/read/memtable/exec/btree.rs new file mode 100644 index 00000000000..c038a1d8c21 --- /dev/null +++ b/rust/lance/src/dataset/mem_wal/read/memtable/exec/btree.rs @@ -0,0 +1,482 @@ +// SPDX-License-Identifier: Apache-2.0 +// SPDX-FileCopyrightText: Copyright The Lance Authors + +//! BTreeIndexExec - BTree index queries with MVCC visibility. + +use std::any::Any; +use std::fmt::{Debug, Formatter}; +use std::sync::Arc; + +use arrow_array::RecordBatch; +use arrow_schema::SchemaRef; +use datafusion::common::stats::Precision; +use datafusion::error::Result as DataFusionResult; +use datafusion::execution::TaskContext; +use datafusion::physical_plan::execution_plan::{Boundedness, EmissionType}; +use datafusion::physical_plan::metrics::{ExecutionPlanMetricsSet, MetricsSet}; +use datafusion::physical_plan::stream::RecordBatchStreamAdapter; +use datafusion::physical_plan::{ + DisplayAs, DisplayFormatType, ExecutionPlan, Partitioning, PlanProperties, + SendableRecordBatchStream, Statistics, +}; +use datafusion_physical_expr::EquivalenceProperties; +use futures::stream::{self, StreamExt}; +use lance_core::{Error, Result}; +use snafu::location; + +use super::super::scanner::ScalarPredicate; +use crate::dataset::mem_wal::write::{IndexRegistry, LockFreeBatchStore}; + +/// ExecutionPlan node that queries BTree index with MVCC visibility. +pub struct BTreeIndexExec { + batch_store: Arc, + indexes: Arc, + predicate: ScalarPredicate, + visibility_seq: u64, + projection: Option>, + output_schema: SchemaRef, + properties: PlanProperties, + metrics: ExecutionPlanMetricsSet, + /// Name of the index to use (determined during construction). + index_name: String, +} + +impl Debug for BTreeIndexExec { + fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { + f.debug_struct("BTreeIndexExec") + .field("predicate", &self.predicate) + .field("visibility_seq", &self.visibility_seq) + .field("index_name", &self.index_name) + .finish() + } +} + +impl BTreeIndexExec { + /// Create a new BTreeIndexExec. + /// + /// # Arguments + /// + /// * `batch_store` - Lock-free batch store containing data + /// * `indexes` - Index registry with BTree indexes + /// * `predicate` - Scalar predicate to apply + /// * `visibility_seq` - MVCC visibility sequence number + /// * `projection` - Optional column indices to project + /// * `output_schema` - Schema after projection + pub fn new( + batch_store: Arc, + indexes: Arc, + predicate: ScalarPredicate, + visibility_seq: u64, + projection: Option>, + output_schema: SchemaRef, + ) -> Result { + // Find the index for this column + let column = predicate.column(); + let coverage = indexes.get_coverage(); + let index_name = coverage + .btree_coverage + .iter() + .find_map(|(name, _)| { + indexes + .get_btree(name) + .filter(|idx| idx.column_name() == column) + .map(|_| name.clone()) + }) + .ok_or_else(|| { + Error::invalid_input( + format!("No BTree index found for column '{}'", column), + location!(), + ) + })?; + + let properties = PlanProperties::new( + EquivalenceProperties::new(output_schema.clone()), + Partitioning::UnknownPartitioning(1), + EmissionType::Incremental, + Boundedness::Bounded, + ); + + Ok(Self { + batch_store, + indexes, + predicate, + visibility_seq, + projection, + output_schema, + properties, + metrics: ExecutionPlanMetricsSet::new(), + index_name, + }) + } + + /// Query the index and return matching row positions. + fn query_index(&self) -> Vec { + let Some(index) = self.indexes.get_btree(&self.index_name) else { + return vec![]; + }; + + match &self.predicate { + ScalarPredicate::Eq { value, .. } => index.get(value), + ScalarPredicate::Range { lower, upper, .. } => { + // For range queries, use a range scan approach + // This is simplified - in production we'd need proper range iteration + let mut results = Vec::new(); + let snapshot = index.snapshot(); + + for (key, positions) in snapshot { + let in_range = match (lower, upper) { + (Some(l), Some(u)) => &key.0 >= l && &key.0 < u, + (Some(l), None) => &key.0 >= l, + (None, Some(u)) => &key.0 < u, + (None, None) => true, + }; + + if in_range { + results.extend(positions); + } + } + results + } + ScalarPredicate::In { values, .. } => { + let mut results = Vec::new(); + for value in values { + results.extend(index.get(value)); + } + results + } + } + } + + /// Convert row positions to batch_id and row_within_batch pairs. + fn positions_to_batch_rows(&self, positions: &[u64]) -> Vec<(usize, usize)> { + // Build a map of batch_id -> (start_row, end_row) + let mut batch_ranges = Vec::new(); + let mut current_row = 0usize; + + for stored_batch in self.batch_store.iter() { + let batch_start = current_row; + let batch_end = current_row + stored_batch.num_rows; + batch_ranges.push((batch_start, batch_end, stored_batch.seq)); + current_row = batch_end; + } + + // Convert positions to (batch_id, row_in_batch) pairs + let mut result = Vec::new(); + for &pos in positions { + let pos = pos as usize; + for (batch_id, &(start, end, seq)) in batch_ranges.iter().enumerate() { + if pos >= start && pos < end { + // Check visibility + if seq == 0 || seq <= self.visibility_seq { + result.push((batch_id, pos - start)); + } + break; + } + } + } + result + } + + /// Materialize rows from batch store. + fn materialize_rows( + &self, + batch_rows: &[(usize, usize)], + ) -> DataFusionResult> { + if batch_rows.is_empty() { + return Ok(vec![]); + } + + // Group rows by batch + let mut batches_to_rows: std::collections::HashMap> = + std::collections::HashMap::new(); + for &(batch_id, row_in_batch) in batch_rows { + batches_to_rows + .entry(batch_id) + .or_default() + .push(row_in_batch); + } + + let mut results = Vec::new(); + for (batch_id, rows) in batches_to_rows { + if let Some(stored) = self.batch_store.get(batch_id) { + // Use take to select specific rows + let indices = arrow_array::UInt32Array::from( + rows.iter().map(|&r| r as u32).collect::>(), + ); + + let columns: std::result::Result, datafusion::error::DataFusionError> = + stored + .data + .columns() + .iter() + .map(|col| { + arrow_select::take::take(col.as_ref(), &indices, None).map_err(|e| { + datafusion::error::DataFusionError::ArrowError(Box::new(e), None) + }) + }) + .collect(); + + let columns = columns?; + + // Apply projection + let final_columns = if let Some(ref proj_indices) = self.projection { + proj_indices.iter().map(|&i| columns[i].clone()).collect() + } else { + columns + }; + + let batch = RecordBatch::try_new(self.output_schema.clone(), final_columns)?; + results.push(batch); + } + } + + Ok(results) + } +} + +impl DisplayAs for BTreeIndexExec { + fn fmt_as(&self, t: DisplayFormatType, f: &mut Formatter<'_>) -> std::fmt::Result { + match t { + DisplayFormatType::Default | DisplayFormatType::Verbose => { + write!( + f, + "BTreeIndexExec: index={}, predicate={:?}, visibility_seq={}", + self.index_name, self.predicate, self.visibility_seq + ) + } + DisplayFormatType::TreeRender => { + write!( + f, + "BTreeIndexExec\nindex={}\npredicate={:?}\nvisibility_seq={}", + self.index_name, self.predicate, self.visibility_seq + ) + } + } + } +} + +impl ExecutionPlan for BTreeIndexExec { + fn name(&self) -> &str { + "BTreeIndexExec" + } + + fn as_any(&self) -> &dyn Any { + self + } + + fn schema(&self) -> SchemaRef { + self.output_schema.clone() + } + + fn children(&self) -> Vec<&Arc> { + vec![] + } + + fn with_new_children( + self: Arc, + children: Vec>, + ) -> DataFusionResult> { + if !children.is_empty() { + return Err(datafusion::error::DataFusionError::Internal( + "BTreeIndexExec does not have children".to_string(), + )); + } + Ok(self) + } + + fn execute( + &self, + _partition: usize, + _context: Arc, + ) -> DataFusionResult { + // Query the index + let positions = self.query_index(); + + // Convert positions to batch/row pairs with visibility filtering + let batch_rows = self.positions_to_batch_rows(&positions); + + // Materialize the rows + let batches = self.materialize_rows(&batch_rows)?; + + let stream = stream::iter(batches.into_iter().map(Ok)).boxed(); + + Ok(Box::pin(RecordBatchStreamAdapter::new( + self.output_schema.clone(), + stream, + ))) + } + + fn partition_statistics(&self, _partition: Option) -> DataFusionResult { + // We can't know the exact count without querying the index + Ok(Statistics { + num_rows: Precision::Absent, + total_byte_size: Precision::Absent, + column_statistics: vec![], + }) + } + + fn metrics(&self) -> Option { + Some(self.metrics.clone_inner()) + } + + fn properties(&self) -> &PlanProperties { + &self.properties + } + + fn supports_limit_pushdown(&self) -> bool { + false + } +} + +#[cfg(test)] +mod tests { + use super::*; + use arrow_array::{Int32Array, StringArray}; + use arrow_schema::{DataType, Field, Schema}; + use datafusion::common::ScalarValue; + use futures::TryStreamExt; + + fn create_test_schema() -> Arc { + Arc::new(Schema::new(vec![ + Field::new("id", DataType::Int32, false), + Field::new("name", DataType::Utf8, true), + ])) + } + + fn create_test_batch(schema: &Schema, start_id: i32, count: usize) -> RecordBatch { + let ids: Vec = (start_id..start_id + count as i32).collect(); + let names: Vec = ids.iter().map(|id| format!("name_{}", id)).collect(); + + RecordBatch::try_new( + Arc::new(schema.clone()), + vec![ + Arc::new(Int32Array::from(ids)), + Arc::new(StringArray::from(names)), + ], + ) + .unwrap() + } + + #[tokio::test] + async fn test_btree_index_eq_query() { + let schema = create_test_schema(); + let batch_store = Arc::new(LockFreeBatchStore::with_capacity(100)); + + // Create index registry with btree index on "id" + let mut registry = IndexRegistry::new(); + registry.add_btree("id_idx".to_string(), "id".to_string()); + + // Insert test data and update index + let batch = create_test_batch(&schema, 0, 10); + registry.insert(&batch, 0).unwrap(); + batch_store.append(batch, 1).unwrap(); + + let indexes = Arc::new(registry); + + let predicate = ScalarPredicate::Eq { + column: "id".to_string(), + value: ScalarValue::Int32(Some(5)), + }; + + let exec = BTreeIndexExec::new( + batch_store, + indexes, + predicate, + 1, // visibility_seq + None, + schema, + ) + .unwrap(); + + let ctx = Arc::new(TaskContext::default()); + let stream = exec.execute(0, ctx).unwrap(); + let batches: Vec = stream.try_collect().await.unwrap(); + + // Should find one row with id=5 + let total_rows: usize = batches.iter().map(|b| b.num_rows()).sum(); + assert_eq!(total_rows, 1); + } + + #[tokio::test] + async fn test_btree_index_in_query() { + let schema = create_test_schema(); + let batch_store = Arc::new(LockFreeBatchStore::with_capacity(100)); + + let mut registry = IndexRegistry::new(); + registry.add_btree("id_idx".to_string(), "id".to_string()); + + let batch = create_test_batch(&schema, 0, 10); + registry.insert(&batch, 0).unwrap(); + batch_store.append(batch, 1).unwrap(); + + let indexes = Arc::new(registry); + + let predicate = ScalarPredicate::In { + column: "id".to_string(), + values: vec![ + ScalarValue::Int32(Some(2)), + ScalarValue::Int32(Some(5)), + ScalarValue::Int32(Some(8)), + ], + }; + + let exec = BTreeIndexExec::new(batch_store, indexes, predicate, 1, None, schema).unwrap(); + + let ctx = Arc::new(TaskContext::default()); + let stream = exec.execute(0, ctx).unwrap(); + let batches: Vec = stream.try_collect().await.unwrap(); + + // Should find 3 rows + let total_rows: usize = batches.iter().map(|b| b.num_rows()).sum(); + assert_eq!(total_rows, 3); + } + + #[tokio::test] + async fn test_btree_index_visibility() { + let schema = create_test_schema(); + let batch_store = Arc::new(LockFreeBatchStore::with_capacity(100)); + + let mut registry = IndexRegistry::new(); + registry.add_btree("id_idx".to_string(), "id".to_string()); + + // Insert batch with seq=2 + let batch = create_test_batch(&schema, 0, 10); + registry.insert(&batch, 0).unwrap(); + batch_store.append(batch, 2).unwrap(); + + let indexes = Arc::new(registry); + + let predicate = ScalarPredicate::Eq { + column: "id".to_string(), + value: ScalarValue::Int32(Some(5)), + }; + + // Query at seq=1 should not see the batch + let exec = BTreeIndexExec::new( + batch_store.clone(), + indexes.clone(), + predicate.clone(), + 1, + None, + schema.clone(), + ) + .unwrap(); + + let ctx = Arc::new(TaskContext::default()); + let stream = exec.execute(0, ctx).unwrap(); + let batches: Vec = stream.try_collect().await.unwrap(); + + let total_rows: usize = batches.iter().map(|b| b.num_rows()).sum(); + assert_eq!(total_rows, 0); + + // Query at seq=2 should see the batch + let exec = BTreeIndexExec::new(batch_store, indexes, predicate, 2, None, schema).unwrap(); + + let ctx = Arc::new(TaskContext::default()); + let stream = exec.execute(0, ctx).unwrap(); + let batches: Vec = stream.try_collect().await.unwrap(); + + let total_rows: usize = batches.iter().map(|b| b.num_rows()).sum(); + assert_eq!(total_rows, 1); + } +} diff --git a/rust/lance/src/dataset/mem_wal/read/memtable/exec/fts.rs b/rust/lance/src/dataset/mem_wal/read/memtable/exec/fts.rs new file mode 100644 index 00000000000..6777a79182b --- /dev/null +++ b/rust/lance/src/dataset/mem_wal/read/memtable/exec/fts.rs @@ -0,0 +1,453 @@ +// SPDX-License-Identifier: Apache-2.0 +// SPDX-FileCopyrightText: Copyright The Lance Authors + +//! FtsIndexExec - Full-text search with MVCC visibility. + +use std::any::Any; +use std::fmt::{Debug, Formatter}; +use std::sync::Arc; + +use arrow_array::{Float32Array, RecordBatch, UInt32Array}; +use arrow_schema::{DataType, Field, Schema, SchemaRef}; +use datafusion::common::stats::Precision; +use datafusion::error::Result as DataFusionResult; +use datafusion::execution::TaskContext; +use datafusion::physical_plan::execution_plan::{Boundedness, EmissionType}; +use datafusion::physical_plan::metrics::{ExecutionPlanMetricsSet, MetricsSet}; +use datafusion::physical_plan::stream::RecordBatchStreamAdapter; +use datafusion::physical_plan::{ + DisplayAs, DisplayFormatType, ExecutionPlan, Partitioning, PlanProperties, + SendableRecordBatchStream, Statistics, +}; +use datafusion_physical_expr::EquivalenceProperties; +use futures::stream::{self, StreamExt}; +use lance_core::{Error, Result}; +use snafu::location; + +use super::super::scanner::FtsQuery; +use crate::dataset::mem_wal::write::{IndexRegistry, LockFreeBatchStore}; + +/// Score column name in output. +pub const SCORE_COLUMN: &str = "_score"; + +/// ExecutionPlan node that queries FTS index with MVCC visibility. +pub struct FtsIndexExec { + batch_store: Arc, + indexes: Arc, + query: FtsQuery, + visibility_seq: u64, + projection: Option>, + output_schema: SchemaRef, + properties: PlanProperties, + metrics: ExecutionPlanMetricsSet, + index_name: String, +} + +impl Debug for FtsIndexExec { + fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { + f.debug_struct("FtsIndexExec") + .field("column", &self.query.column) + .field("query", &self.query.query) + .field("visibility_seq", &self.visibility_seq) + .field("index_name", &self.index_name) + .finish() + } +} + +impl FtsIndexExec { + /// Create a new FtsIndexExec. + /// + /// # Arguments + /// + /// * `batch_store` - Lock-free batch store containing data + /// * `indexes` - Index registry with FTS indexes + /// * `query` - FTS query parameters + /// * `visibility_seq` - MVCC visibility sequence number + /// * `projection` - Optional column indices to project + /// * `base_schema` - Schema before adding score column + pub fn new( + batch_store: Arc, + indexes: Arc, + query: FtsQuery, + visibility_seq: u64, + projection: Option>, + base_schema: SchemaRef, + ) -> Result { + // Find the index for this column + let column = &query.column; + let coverage = indexes.get_coverage(); + let index_name = coverage + .fts_coverage + .iter() + .find_map(|(name, _)| { + indexes + .get_fts(name) + .filter(|idx| idx.column_name() == column) + .map(|_| name.clone()) + }) + .ok_or_else(|| { + Error::invalid_input( + format!("No FTS index found for column '{}'", column), + location!(), + ) + })?; + + // Add _score column to output schema + let mut fields: Vec = base_schema + .fields() + .iter() + .map(|f| f.as_ref().clone()) + .collect(); + fields.push(Field::new(SCORE_COLUMN, DataType::Float32, false)); + let output_schema = Arc::new(Schema::new(fields)); + + let properties = PlanProperties::new( + EquivalenceProperties::new(output_schema.clone()), + Partitioning::UnknownPartitioning(1), + EmissionType::Incremental, + Boundedness::Bounded, + ); + + Ok(Self { + batch_store, + indexes, + query, + visibility_seq, + projection, + output_schema, + properties, + metrics: ExecutionPlanMetricsSet::new(), + index_name, + }) + } + + /// Query the index and return matching rows with scores. + fn query_index(&self) -> Vec<(u64, f32)> { + let Some(index) = self.indexes.get_fts(&self.index_name) else { + return vec![]; + }; + + // Search the index + let entries = index.search(&self.query.query); + + // Convert to (row_position, score) pairs + // Score is based on term frequency (simple TF scoring) + entries + .into_iter() + .map(|entry| (entry.row_position, entry.frequency as f32)) + .collect() + } + + /// Filter results by MVCC visibility. + fn filter_by_visibility(&self, results: Vec<(u64, f32)>) -> Vec<(u64, f32)> { + // Build batch ranges + let mut batch_ranges = Vec::new(); + let mut current_row = 0usize; + + for stored_batch in self.batch_store.iter() { + let batch_start = current_row; + let batch_end = current_row + stored_batch.num_rows; + batch_ranges.push((batch_start, batch_end, stored_batch.seq)); + current_row = batch_end; + } + + // Filter by visibility + results + .into_iter() + .filter(|&(pos, _)| { + let pos = pos as usize; + for &(start, end, seq) in &batch_ranges { + if pos >= start && pos < end { + return seq == 0 || seq <= self.visibility_seq; + } + } + false + }) + .collect() + } + + /// Materialize rows from batch store with score column. + fn materialize_rows(&self, results: &[(u64, f32)]) -> DataFusionResult> { + if results.is_empty() { + return Ok(vec![]); + } + + // Build batch ranges + let mut batch_ranges = Vec::new(); + let mut current_row = 0usize; + + for stored_batch in self.batch_store.iter() { + let batch_start = current_row; + let batch_end = current_row + stored_batch.num_rows; + batch_ranges.push((batch_start, batch_end)); + current_row = batch_end; + } + + // Group rows by batch + let mut batches_data: std::collections::HashMap> = + std::collections::HashMap::new(); + + for &(pos, score) in results { + let pos = pos as usize; + for (batch_id, &(start, end)) in batch_ranges.iter().enumerate() { + if pos >= start && pos < end { + batches_data + .entry(batch_id) + .or_default() + .push((pos - start, score)); + break; + } + } + } + + let mut all_batches = Vec::new(); + + for (batch_id, rows_with_score) in batches_data { + if let Some(stored) = self.batch_store.get(batch_id) { + let rows: Vec = rows_with_score.iter().map(|&(r, _)| r as u32).collect(); + let scores: Vec = rows_with_score.iter().map(|&(_, s)| s).collect(); + + let indices = UInt32Array::from(rows); + + let mut columns: Vec> = stored + .data + .columns() + .iter() + .map(|col| arrow_select::take::take(col.as_ref(), &indices, None).unwrap()) + .collect(); + + // Add score column + columns.push(Arc::new(Float32Array::from(scores))); + + // Apply projection if needed (excluding score column which is always included) + let final_columns = if let Some(ref proj_indices) = self.projection { + let mut projected: Vec<_> = + proj_indices.iter().map(|&i| columns[i].clone()).collect(); + // Always include score as last column + projected.push(columns.last().unwrap().clone()); + projected + } else { + columns + }; + + let batch = RecordBatch::try_new(self.output_schema.clone(), final_columns)?; + all_batches.push(batch); + } + } + + Ok(all_batches) + } +} + +impl DisplayAs for FtsIndexExec { + fn fmt_as(&self, t: DisplayFormatType, f: &mut Formatter<'_>) -> std::fmt::Result { + match t { + DisplayFormatType::Default | DisplayFormatType::Verbose => { + write!( + f, + "FtsIndexExec: index={}, column={}, query={:?}, visibility_seq={}", + self.index_name, self.query.column, self.query.query, self.visibility_seq + ) + } + DisplayFormatType::TreeRender => { + write!( + f, + "FtsIndexExec\nindex={}\ncolumn={}\nquery={:?}\nvisibility_seq={}", + self.index_name, self.query.column, self.query.query, self.visibility_seq + ) + } + } + } +} + +impl ExecutionPlan for FtsIndexExec { + fn name(&self) -> &str { + "FtsIndexExec" + } + + fn as_any(&self) -> &dyn Any { + self + } + + fn schema(&self) -> SchemaRef { + self.output_schema.clone() + } + + fn children(&self) -> Vec<&Arc> { + vec![] + } + + fn with_new_children( + self: Arc, + children: Vec>, + ) -> DataFusionResult> { + if !children.is_empty() { + return Err(datafusion::error::DataFusionError::Internal( + "FtsIndexExec does not have children".to_string(), + )); + } + Ok(self) + } + + fn execute( + &self, + _partition: usize, + _context: Arc, + ) -> DataFusionResult { + // Query the index + let results = self.query_index(); + + // Filter by visibility + let visible_results = self.filter_by_visibility(results); + + // Materialize the rows + let batches = self.materialize_rows(&visible_results)?; + + let stream = stream::iter(batches.into_iter().map(Ok)).boxed(); + + Ok(Box::pin(RecordBatchStreamAdapter::new( + self.output_schema.clone(), + stream, + ))) + } + + fn partition_statistics(&self, _partition: Option) -> DataFusionResult { + Ok(Statistics { + num_rows: Precision::Absent, + total_byte_size: Precision::Absent, + column_statistics: vec![], + }) + } + + fn metrics(&self) -> Option { + Some(self.metrics.clone_inner()) + } + + fn properties(&self) -> &PlanProperties { + &self.properties + } + + fn supports_limit_pushdown(&self) -> bool { + false + } +} + +#[cfg(test)] +mod tests { + use super::*; + use arrow_array::{Int32Array, StringArray}; + use arrow_schema::{DataType, Field, Schema}; + use futures::TryStreamExt; + + fn create_test_schema() -> Arc { + Arc::new(Schema::new(vec![ + Field::new("id", DataType::Int32, false), + Field::new("text", DataType::Utf8, true), + ])) + } + + fn create_test_batch(schema: &Schema, start_id: i32) -> RecordBatch { + RecordBatch::try_new( + Arc::new(schema.clone()), + vec![ + Arc::new(Int32Array::from(vec![start_id, start_id + 1, start_id + 2])), + Arc::new(StringArray::from(vec![ + "hello world", + "goodbye world", + "hello again", + ])), + ], + ) + .unwrap() + } + + #[tokio::test] + async fn test_fts_index_search() { + let schema = create_test_schema(); + let batch_store = Arc::new(LockFreeBatchStore::with_capacity(100)); + + // Create index registry with FTS index on "text" + let mut registry = IndexRegistry::new(); + registry.add_fts("text_idx".to_string(), "text".to_string()); + + // Insert test data and update index + let batch = create_test_batch(&schema, 0); + registry.insert(&batch, 0).unwrap(); + batch_store.append(batch, 1).unwrap(); + + let indexes = Arc::new(registry); + + let query = FtsQuery { + column: "text".to_string(), + query: "hello".to_string(), + }; + + let exec = FtsIndexExec::new(batch_store, indexes, query, 1, None, schema).unwrap(); + + let ctx = Arc::new(TaskContext::default()); + let stream = exec.execute(0, ctx).unwrap(); + let batches: Vec = stream.try_collect().await.unwrap(); + + // "hello" appears in docs 0 and 2 + let total_rows: usize = batches.iter().map(|b| b.num_rows()).sum(); + assert_eq!(total_rows, 2); + + // Check that _score column exists + let result_schema = batches[0].schema(); + assert!(result_schema.field_with_name(SCORE_COLUMN).is_ok()); + } + + #[tokio::test] + async fn test_fts_index_visibility() { + let schema = create_test_schema(); + let batch_store = Arc::new(LockFreeBatchStore::with_capacity(100)); + + let mut registry = IndexRegistry::new(); + registry.add_fts("text_idx".to_string(), "text".to_string()); + + // Insert batch with seq=2 + let batch = create_test_batch(&schema, 0); + registry.insert(&batch, 0).unwrap(); + batch_store.append(batch, 2).unwrap(); + + let indexes = Arc::new(registry); + + let query = FtsQuery { + column: "text".to_string(), + query: "hello".to_string(), + }; + + // Query at seq=1 should not see the batch + let exec = FtsIndexExec::new( + batch_store.clone(), + indexes.clone(), + query.clone(), + 1, + None, + schema.clone(), + ) + .unwrap(); + + let ctx = Arc::new(TaskContext::default()); + let stream = exec.execute(0, ctx).unwrap(); + let batches: Vec = stream.try_collect().await.unwrap(); + + let total_rows: usize = batches.iter().map(|b| b.num_rows()).sum(); + assert_eq!(total_rows, 0); + + // Query at seq=2 should see the batch + let exec = FtsIndexExec::new(batch_store, indexes, query, 2, None, schema).unwrap(); + + let ctx = Arc::new(TaskContext::default()); + let stream = exec.execute(0, ctx).unwrap(); + let batches: Vec = stream.try_collect().await.unwrap(); + + let total_rows: usize = batches.iter().map(|b| b.num_rows()).sum(); + assert_eq!(total_rows, 2); + } + + #[test] + fn test_score_column_name() { + assert_eq!(SCORE_COLUMN, "_score"); + } +} diff --git a/rust/lance/src/dataset/mem_wal/read/memtable/exec/range_scan.rs b/rust/lance/src/dataset/mem_wal/read/memtable/exec/range_scan.rs new file mode 100644 index 00000000000..4f6b5461a6e --- /dev/null +++ b/rust/lance/src/dataset/mem_wal/read/memtable/exec/range_scan.rs @@ -0,0 +1,366 @@ +// SPDX-License-Identifier: Apache-2.0 +// SPDX-FileCopyrightText: Copyright The Lance Authors + +//! MemTableRangeScanExec - Scan batches within a specific sequence range. + +use std::any::Any; +use std::fmt::{Debug, Formatter}; +use std::sync::Arc; + +use arrow_array::RecordBatch; +use arrow_schema::SchemaRef; +use datafusion::common::stats::Precision; +use datafusion::error::Result as DataFusionResult; +use datafusion::execution::TaskContext; +use datafusion::physical_plan::execution_plan::{Boundedness, EmissionType}; +use datafusion::physical_plan::metrics::{ExecutionPlanMetricsSet, MetricsSet}; +use datafusion::physical_plan::stream::RecordBatchStreamAdapter; +use datafusion::physical_plan::{ + DisplayAs, DisplayFormatType, ExecutionPlan, Partitioning, PlanProperties, + SendableRecordBatchStream, Statistics, +}; +use datafusion::prelude::Expr; +use datafusion_physical_expr::EquivalenceProperties; +use futures::stream::{self, StreamExt}; + +use crate::dataset::mem_wal::write::LockFreeBatchStore; + +/// ExecutionPlan node that scans batches within a sequence range. +/// +/// This is used in split plans to scan the unindexed portion of data, +/// where `min_seq_exclusive < batch.seq <= max_seq_inclusive`. +pub struct MemTableRangeScanExec { + batch_store: Arc, + min_seq_exclusive: u64, + max_seq_inclusive: u64, + projection: Option>, + output_schema: SchemaRef, + filter: Option, + properties: PlanProperties, + metrics: ExecutionPlanMetricsSet, +} + +impl Debug for MemTableRangeScanExec { + fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { + f.debug_struct("MemTableRangeScanExec") + .field("min_seq_exclusive", &self.min_seq_exclusive) + .field("max_seq_inclusive", &self.max_seq_inclusive) + .field("projection", &self.projection) + .field("has_filter", &self.filter.is_some()) + .finish() + } +} + +impl MemTableRangeScanExec { + /// Create a new MemTableRangeScanExec. + /// + /// # Arguments + /// + /// * `batch_store` - Lock-free batch store containing data + /// * `min_seq_exclusive` - Minimum sequence (exclusive): batches with seq > this + /// * `max_seq_inclusive` - Maximum sequence (inclusive): batches with seq <= this + /// * `projection` - Optional column indices to project + /// * `output_schema` - Schema after projection + /// * `filter` - Optional filter expression to apply + pub fn new( + batch_store: Arc, + min_seq_exclusive: u64, + max_seq_inclusive: u64, + projection: Option>, + output_schema: SchemaRef, + filter: Option, + ) -> Self { + let properties = PlanProperties::new( + EquivalenceProperties::new(output_schema.clone()), + Partitioning::UnknownPartitioning(1), + EmissionType::Incremental, + Boundedness::Bounded, + ); + + Self { + batch_store, + min_seq_exclusive, + max_seq_inclusive, + projection, + output_schema, + filter, + properties, + metrics: ExecutionPlanMetricsSet::new(), + } + } + + /// Check if a batch is in the sequence range. + fn is_in_range(&self, seq: u64) -> bool { + // Batches with seq = 0 are always visible (legacy), but for range scans + // in split plans, we want to be precise about sequence ranges. + // seq = 0 batches are considered "always indexed" so they won't appear + // in the unindexed range scan. + if seq == 0 { + return false; + } + seq > self.min_seq_exclusive && seq <= self.max_seq_inclusive + } +} + +impl DisplayAs for MemTableRangeScanExec { + fn fmt_as(&self, t: DisplayFormatType, f: &mut Formatter<'_>) -> std::fmt::Result { + match t { + DisplayFormatType::Default | DisplayFormatType::Verbose => { + write!( + f, + "MemTableRangeScanExec: seq_range=({}, {}], projection={:?}", + self.min_seq_exclusive, self.max_seq_inclusive, self.projection + ) + } + DisplayFormatType::TreeRender => { + write!( + f, + "MemTableRangeScanExec\nseq_range=({}, {}]\nprojection={:?}", + self.min_seq_exclusive, self.max_seq_inclusive, self.projection + ) + } + } + } +} + +impl ExecutionPlan for MemTableRangeScanExec { + fn name(&self) -> &str { + "MemTableRangeScanExec" + } + + fn as_any(&self) -> &dyn Any { + self + } + + fn schema(&self) -> SchemaRef { + self.output_schema.clone() + } + + fn children(&self) -> Vec<&Arc> { + vec![] + } + + fn with_new_children( + self: Arc, + children: Vec>, + ) -> DataFusionResult> { + if !children.is_empty() { + return Err(datafusion::error::DataFusionError::Internal( + "MemTableRangeScanExec does not have children".to_string(), + )); + } + Ok(self) + } + + fn execute( + &self, + _partition: usize, + _context: Arc, + ) -> DataFusionResult { + // Filter batches by sequence range + let batches: Vec = self + .batch_store + .iter() + .filter(|stored| self.is_in_range(stored.seq)) + .map(|stored| stored.data.clone()) + .collect(); + + // Apply projection to each batch + let projection = self.projection.clone(); + let schema = self.output_schema.clone(); + + let projected_batches: Vec> = batches + .into_iter() + .map(|batch| { + if let Some(ref indices) = projection { + let columns: Vec<_> = + indices.iter().map(|&i| batch.column(i).clone()).collect(); + RecordBatch::try_new(schema.clone(), columns).map_err(|e| e.into()) + } else { + Ok(batch) + } + }) + .collect(); + + let stream = stream::iter(projected_batches).boxed(); + + Ok(Box::pin(RecordBatchStreamAdapter::new( + self.output_schema.clone(), + stream, + ))) + } + + fn partition_statistics(&self, _partition: Option) -> DataFusionResult { + // Count batches in range + let count: usize = self + .batch_store + .iter() + .filter(|stored| self.is_in_range(stored.seq)) + .map(|stored| stored.num_rows) + .sum(); + + Ok(Statistics { + num_rows: Precision::Exact(count), + total_byte_size: Precision::Absent, + column_statistics: vec![], + }) + } + + fn metrics(&self) -> Option { + Some(self.metrics.clone_inner()) + } + + fn properties(&self) -> &PlanProperties { + &self.properties + } + + fn supports_limit_pushdown(&self) -> bool { + false + } +} + +#[cfg(test)] +mod tests { + use super::*; + use arrow_array::{Int32Array, StringArray}; + use arrow_schema::{DataType, Field, Schema}; + use futures::TryStreamExt; + + fn create_test_schema() -> Arc { + Arc::new(Schema::new(vec![ + Field::new("id", DataType::Int32, false), + Field::new("name", DataType::Utf8, true), + ])) + } + + fn create_test_batch(schema: &Schema, start_id: i32, count: usize) -> RecordBatch { + let ids: Vec = (start_id..start_id + count as i32).collect(); + let names: Vec = ids.iter().map(|id| format!("name_{}", id)).collect(); + + RecordBatch::try_new( + Arc::new(schema.clone()), + vec![ + Arc::new(Int32Array::from(ids)), + Arc::new(StringArray::from(names)), + ], + ) + .unwrap() + } + + #[tokio::test] + async fn test_range_scan_basic() { + let schema = create_test_schema(); + let batch_store = Arc::new(LockFreeBatchStore::with_capacity(100)); + + // Insert batches with sequences 1, 2, 3, 4, 5 + for seq in 1..=5 { + let batch = create_test_batch(&schema, (seq as i32) * 10, 10); + batch_store.append(batch, seq).unwrap(); + } + + // Scan range (2, 4] - should get batches with seq 3 and 4 + let exec = MemTableRangeScanExec::new(batch_store, 2, 4, None, schema, None); + + let ctx = Arc::new(TaskContext::default()); + let stream = exec.execute(0, ctx).unwrap(); + let batches: Vec = stream.try_collect().await.unwrap(); + + assert_eq!(batches.len(), 2); + let total_rows: usize = batches.iter().map(|b| b.num_rows()).sum(); + assert_eq!(total_rows, 20); + } + + #[tokio::test] + async fn test_range_scan_excludes_seq_zero() { + let schema = create_test_schema(); + let batch_store = Arc::new(LockFreeBatchStore::with_capacity(100)); + + // Insert batch with seq 0 (always visible) + batch_store + .append(create_test_batch(&schema, 0, 10), 0) + .unwrap(); + // Insert batch with seq 1 + batch_store + .append(create_test_batch(&schema, 10, 10), 1) + .unwrap(); + + // Range scan (0, 1] should only get seq=1 batch + let exec = MemTableRangeScanExec::new(batch_store, 0, 1, None, schema, None); + + let ctx = Arc::new(TaskContext::default()); + let stream = exec.execute(0, ctx).unwrap(); + let batches: Vec = stream.try_collect().await.unwrap(); + + assert_eq!(batches.len(), 1); + assert_eq!(batches[0].num_rows(), 10); + } + + #[tokio::test] + async fn test_range_scan_empty_range() { + let schema = create_test_schema(); + let batch_store = Arc::new(LockFreeBatchStore::with_capacity(100)); + + // Insert batches with seq 1, 2 + batch_store + .append(create_test_batch(&schema, 0, 10), 1) + .unwrap(); + batch_store + .append(create_test_batch(&schema, 10, 10), 2) + .unwrap(); + + // Range (5, 10] should be empty + let exec = MemTableRangeScanExec::new(batch_store, 5, 10, None, schema, None); + + let ctx = Arc::new(TaskContext::default()); + let stream = exec.execute(0, ctx).unwrap(); + let batches: Vec = stream.try_collect().await.unwrap(); + + assert!(batches.is_empty()); + } + + #[tokio::test] + async fn test_range_scan_with_projection() { + let schema = create_test_schema(); + let batch_store = Arc::new(LockFreeBatchStore::with_capacity(100)); + + batch_store + .append(create_test_batch(&schema, 0, 10), 1) + .unwrap(); + + // Project only "id" column + let projected_schema = + Arc::new(Schema::new(vec![Field::new("id", DataType::Int32, false)])); + let exec = + MemTableRangeScanExec::new(batch_store, 0, 1, Some(vec![0]), projected_schema, None); + + let ctx = Arc::new(TaskContext::default()); + let stream = exec.execute(0, ctx).unwrap(); + let batches: Vec = stream.try_collect().await.unwrap(); + + assert_eq!(batches.len(), 1); + assert_eq!(batches[0].num_columns(), 1); + assert_eq!(batches[0].schema().field(0).name(), "id"); + } + + #[tokio::test] + async fn test_range_scan_statistics() { + let schema = create_test_schema(); + let batch_store = Arc::new(LockFreeBatchStore::with_capacity(100)); + + batch_store + .append(create_test_batch(&schema, 0, 10), 1) + .unwrap(); + batch_store + .append(create_test_batch(&schema, 10, 20), 2) + .unwrap(); + batch_store + .append(create_test_batch(&schema, 30, 15), 3) + .unwrap(); + + // Range (1, 3] should include seq 2 and 3 + let exec = MemTableRangeScanExec::new(batch_store, 1, 3, None, schema, None); + + let stats = exec.partition_statistics(None).unwrap(); + assert_eq!(stats.num_rows, Precision::Exact(35)); // 20 + 15 + } +} diff --git a/rust/lance/src/dataset/mem_wal/read/memtable/exec/scan.rs b/rust/lance/src/dataset/mem_wal/read/memtable/exec/scan.rs new file mode 100644 index 00000000000..dc955ec5943 --- /dev/null +++ b/rust/lance/src/dataset/mem_wal/read/memtable/exec/scan.rs @@ -0,0 +1,315 @@ +// SPDX-License-Identifier: Apache-2.0 +// SPDX-FileCopyrightText: Copyright The Lance Authors + +//! MemTableScanExec - Full table scan with MVCC visibility filtering. + +use std::any::Any; +use std::fmt::{Debug, Formatter}; +use std::sync::Arc; + +use arrow_array::RecordBatch; +use arrow_schema::SchemaRef; +use datafusion::common::stats::Precision; +use datafusion::error::Result as DataFusionResult; +use datafusion::execution::TaskContext; +use datafusion::physical_plan::execution_plan::{Boundedness, EmissionType}; +use datafusion::physical_plan::metrics::{ExecutionPlanMetricsSet, MetricsSet}; +use datafusion::physical_plan::stream::RecordBatchStreamAdapter; +use datafusion::physical_plan::{ + DisplayAs, DisplayFormatType, ExecutionPlan, Partitioning, PlanProperties, + SendableRecordBatchStream, Statistics, +}; +use datafusion_physical_expr::EquivalenceProperties; +use futures::stream::{self, StreamExt}; + +use crate::dataset::mem_wal::write::LockFreeBatchStore; + +/// ExecutionPlan node that scans all visible batches from a MemTable. +/// +/// This node implements MVCC visibility filtering, returning only batches +/// where `seq == 0 || seq <= visibility_seq`. +pub struct MemTableScanExec { + batch_store: Arc, + visibility_seq: u64, + projection: Option>, + output_schema: SchemaRef, + properties: PlanProperties, + metrics: ExecutionPlanMetricsSet, +} + +impl Debug for MemTableScanExec { + fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { + f.debug_struct("MemTableScanExec") + .field("visibility_seq", &self.visibility_seq) + .field("projection", &self.projection) + .finish() + } +} + +impl MemTableScanExec { + /// Create a new MemTableScanExec. + /// + /// # Arguments + /// + /// * `batch_store` - Lock-free batch store containing data + /// * `visibility_seq` - MVCC visibility sequence number + /// * `projection` - Optional column indices to project + /// * `output_schema` - Schema after projection + pub fn new( + batch_store: Arc, + visibility_seq: u64, + projection: Option>, + output_schema: SchemaRef, + ) -> Self { + let properties = PlanProperties::new( + EquivalenceProperties::new(output_schema.clone()), + Partitioning::UnknownPartitioning(1), + EmissionType::Incremental, + Boundedness::Bounded, + ); + + Self { + batch_store, + visibility_seq, + projection, + output_schema, + properties, + metrics: ExecutionPlanMetricsSet::new(), + } + } +} + +impl DisplayAs for MemTableScanExec { + fn fmt_as(&self, t: DisplayFormatType, f: &mut Formatter<'_>) -> std::fmt::Result { + match t { + DisplayFormatType::Default | DisplayFormatType::Verbose => { + write!( + f, + "MemTableScanExec: visibility_seq={}, projection={:?}", + self.visibility_seq, self.projection + ) + } + DisplayFormatType::TreeRender => { + write!( + f, + "MemTableScanExec\nvisibility_seq={}\nprojection={:?}", + self.visibility_seq, self.projection + ) + } + } + } +} + +impl ExecutionPlan for MemTableScanExec { + fn name(&self) -> &str { + "MemTableScanExec" + } + + fn as_any(&self) -> &dyn Any { + self + } + + fn schema(&self) -> SchemaRef { + self.output_schema.clone() + } + + fn children(&self) -> Vec<&Arc> { + vec![] + } + + fn with_new_children( + self: Arc, + children: Vec>, + ) -> DataFusionResult> { + if !children.is_empty() { + return Err(datafusion::error::DataFusionError::Internal( + "MemTableScanExec does not have children".to_string(), + )); + } + Ok(self) + } + + fn execute( + &self, + _partition: usize, + _context: Arc, + ) -> DataFusionResult { + // Get all visible batches + let batches = self.batch_store.visible_record_batches(self.visibility_seq); + + // Apply projection to each batch + let projection = self.projection.clone(); + let schema = self.output_schema.clone(); + + let projected_batches: Vec> = batches + .into_iter() + .map(|batch| { + if let Some(ref indices) = projection { + let columns: Vec<_> = + indices.iter().map(|&i| batch.column(i).clone()).collect(); + RecordBatch::try_new(schema.clone(), columns).map_err(|e| e.into()) + } else { + Ok(batch) + } + }) + .collect(); + + let stream = stream::iter(projected_batches).boxed(); + + Ok(Box::pin(RecordBatchStreamAdapter::new( + self.output_schema.clone(), + stream, + ))) + } + + fn partition_statistics(&self, _partition: Option) -> DataFusionResult { + // Report statistics as Absent to avoid DataFusion analysis bugs + // with selectivity calculation on in-memory tables. + Ok(Statistics { + num_rows: Precision::Absent, + total_byte_size: Precision::Absent, + column_statistics: vec![], + }) + } + + fn metrics(&self) -> Option { + Some(self.metrics.clone_inner()) + } + + fn properties(&self) -> &PlanProperties { + &self.properties + } + + fn supports_limit_pushdown(&self) -> bool { + false + } +} + +#[cfg(test)] +mod tests { + use super::*; + use arrow_array::{Int32Array, StringArray}; + use arrow_schema::{DataType, Field, Schema}; + use futures::TryStreamExt; + + fn create_test_schema() -> Arc { + Arc::new(Schema::new(vec![ + Field::new("id", DataType::Int32, false), + Field::new("name", DataType::Utf8, true), + ])) + } + + fn create_test_batch(schema: &Schema, start_id: i32, count: usize) -> RecordBatch { + let ids: Vec = (start_id..start_id + count as i32).collect(); + let names: Vec = ids.iter().map(|id| format!("name_{}", id)).collect(); + + RecordBatch::try_new( + Arc::new(schema.clone()), + vec![ + Arc::new(Int32Array::from(ids)), + Arc::new(StringArray::from(names)), + ], + ) + .unwrap() + } + + #[tokio::test] + async fn test_scan_exec_basic() { + let schema = create_test_schema(); + let batch_store = Arc::new(LockFreeBatchStore::with_capacity(100)); + + let batch = create_test_batch(&schema, 0, 10); + batch_store.append(batch, 1).unwrap(); + + let exec = MemTableScanExec::new(batch_store, 1, None, schema); + + let ctx = Arc::new(TaskContext::default()); + let stream = exec.execute(0, ctx).unwrap(); + let batches: Vec = stream.try_collect().await.unwrap(); + + assert_eq!(batches.len(), 1); + assert_eq!(batches[0].num_rows(), 10); + } + + #[tokio::test] + async fn test_scan_exec_visibility() { + let schema = create_test_schema(); + let batch_store = Arc::new(LockFreeBatchStore::with_capacity(100)); + + // Insert batches with different sequences + batch_store + .append(create_test_batch(&schema, 0, 10), 1) + .unwrap(); + batch_store + .append(create_test_batch(&schema, 10, 10), 2) + .unwrap(); + batch_store + .append(create_test_batch(&schema, 20, 10), 3) + .unwrap(); + + // Scan at seq 2 should see 2 batches + let exec = MemTableScanExec::new(batch_store.clone(), 2, None, schema.clone()); + let ctx = Arc::new(TaskContext::default()); + let stream = exec.execute(0, ctx).unwrap(); + let batches: Vec = stream.try_collect().await.unwrap(); + + assert_eq!(batches.len(), 2); + let total_rows: usize = batches.iter().map(|b| b.num_rows()).sum(); + assert_eq!(total_rows, 20); + } + + #[tokio::test] + async fn test_scan_exec_projection() { + let schema = create_test_schema(); + let batch_store = Arc::new(LockFreeBatchStore::with_capacity(100)); + + let batch = create_test_batch(&schema, 0, 10); + batch_store.append(batch, 1).unwrap(); + + // Project only "id" column (index 0) + let projected_schema = + Arc::new(Schema::new(vec![Field::new("id", DataType::Int32, false)])); + let exec = MemTableScanExec::new(batch_store, 1, Some(vec![0]), projected_schema); + + let ctx = Arc::new(TaskContext::default()); + let stream = exec.execute(0, ctx).unwrap(); + let batches: Vec = stream.try_collect().await.unwrap(); + + assert_eq!(batches.len(), 1); + assert_eq!(batches[0].num_columns(), 1); + assert_eq!(batches[0].schema().field(0).name(), "id"); + } + + #[tokio::test] + async fn test_scan_exec_empty() { + let schema = create_test_schema(); + let batch_store = Arc::new(LockFreeBatchStore::with_capacity(100)); + + let exec = MemTableScanExec::new(batch_store, 1, None, schema); + + let ctx = Arc::new(TaskContext::default()); + let stream = exec.execute(0, ctx).unwrap(); + let batches: Vec = stream.try_collect().await.unwrap(); + + assert!(batches.is_empty()); + } + + #[tokio::test] + async fn test_scan_exec_statistics() { + let schema = create_test_schema(); + let batch_store = Arc::new(LockFreeBatchStore::with_capacity(100)); + + batch_store + .append(create_test_batch(&schema, 0, 10), 1) + .unwrap(); + batch_store + .append(create_test_batch(&schema, 10, 20), 2) + .unwrap(); + + let exec = MemTableScanExec::new(batch_store, 2, None, schema); + + let stats = exec.partition_statistics(None).unwrap(); + // Statistics are Absent to avoid DataFusion analysis bugs + assert_eq!(stats.num_rows, Precision::Absent); + } +} diff --git a/rust/lance/src/dataset/mem_wal/read/memtable/exec/split.rs b/rust/lance/src/dataset/mem_wal/read/memtable/exec/split.rs new file mode 100644 index 00000000000..27da286989b --- /dev/null +++ b/rust/lance/src/dataset/mem_wal/read/memtable/exec/split.rs @@ -0,0 +1,314 @@ +// SPDX-License-Identifier: Apache-2.0 +// SPDX-FileCopyrightText: Copyright The Lance Authors + +//! SplitPlanExec - Combine indexed and unindexed portions for partial coverage. + +use std::any::Any; +use std::fmt::{Debug, Formatter}; +use std::sync::Arc; + +use arrow_schema::SchemaRef; +use datafusion::common::stats::Precision; +use datafusion::error::Result as DataFusionResult; +use datafusion::execution::TaskContext; +use datafusion::physical_plan::execution_plan::{Boundedness, EmissionType}; +use datafusion::physical_plan::metrics::{ExecutionPlanMetricsSet, MetricsSet}; +use datafusion::physical_plan::stream::RecordBatchStreamAdapter; +use datafusion::physical_plan::{ + DisplayAs, DisplayFormatType, ExecutionPlan, Partitioning, PlanProperties, + SendableRecordBatchStream, Statistics, +}; +use datafusion_physical_expr::EquivalenceProperties; +use futures::stream::StreamExt; + +/// ExecutionPlan node that combines indexed and unindexed portions. +/// +/// This is used when an index only covers part of the visible data. +/// It executes both child plans and chains/unions the result streams. +pub struct SplitPlanExec { + indexed_plan: Arc, + unindexed_plan: Arc, + output_schema: SchemaRef, + properties: PlanProperties, + metrics: ExecutionPlanMetricsSet, +} + +impl Debug for SplitPlanExec { + fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { + f.debug_struct("SplitPlanExec") + .field("indexed_plan", &self.indexed_plan.name()) + .field("unindexed_plan", &self.unindexed_plan.name()) + .finish() + } +} + +impl SplitPlanExec { + /// Create a new SplitPlanExec. + /// + /// # Arguments + /// + /// * `indexed_plan` - Plan for the indexed portion of data + /// * `unindexed_plan` - Plan for the unindexed portion of data + pub fn new( + indexed_plan: Arc, + unindexed_plan: Arc, + ) -> Self { + let output_schema = indexed_plan.schema(); + + let properties = PlanProperties::new( + EquivalenceProperties::new(output_schema.clone()), + Partitioning::UnknownPartitioning(1), + EmissionType::Incremental, + Boundedness::Bounded, + ); + + Self { + indexed_plan, + unindexed_plan, + output_schema, + properties, + metrics: ExecutionPlanMetricsSet::new(), + } + } +} + +impl DisplayAs for SplitPlanExec { + fn fmt_as(&self, t: DisplayFormatType, f: &mut Formatter<'_>) -> std::fmt::Result { + match t { + DisplayFormatType::Default | DisplayFormatType::Verbose => { + write!( + f, + "SplitPlanExec: indexed={}, unindexed={}", + self.indexed_plan.name(), + self.unindexed_plan.name() + ) + } + DisplayFormatType::TreeRender => { + write!( + f, + "SplitPlanExec\nindexed={}\nunindexed={}", + self.indexed_plan.name(), + self.unindexed_plan.name() + ) + } + } + } +} + +impl ExecutionPlan for SplitPlanExec { + fn name(&self) -> &str { + "SplitPlanExec" + } + + fn as_any(&self) -> &dyn Any { + self + } + + fn schema(&self) -> SchemaRef { + self.output_schema.clone() + } + + fn children(&self) -> Vec<&Arc> { + vec![&self.indexed_plan, &self.unindexed_plan] + } + + fn with_new_children( + self: Arc, + children: Vec>, + ) -> DataFusionResult> { + if children.len() != 2 { + return Err(datafusion::error::DataFusionError::Internal( + "SplitPlanExec requires exactly two children".to_string(), + )); + } + + Ok(Arc::new(Self::new( + children[0].clone(), + children[1].clone(), + ))) + } + + fn execute( + &self, + partition: usize, + context: Arc, + ) -> DataFusionResult { + // Execute both child plans + let indexed_stream = self.indexed_plan.execute(partition, context.clone())?; + let unindexed_stream = self.unindexed_plan.execute(partition, context)?; + + // Chain the streams: first indexed results, then unindexed results + let combined_stream = indexed_stream.chain(unindexed_stream).boxed(); + + Ok(Box::pin(RecordBatchStreamAdapter::new( + self.output_schema.clone(), + combined_stream, + ))) + } + + fn partition_statistics(&self, _partition: Option) -> DataFusionResult { + // Statistics are unknown since we're combining two sources + Ok(Statistics { + num_rows: Precision::Absent, + total_byte_size: Precision::Absent, + column_statistics: vec![], + }) + } + + fn metrics(&self) -> Option { + Some(self.metrics.clone_inner()) + } + + fn properties(&self) -> &PlanProperties { + &self.properties + } + + fn supports_limit_pushdown(&self) -> bool { + false // Can't push limit into split plan easily + } +} + +#[cfg(test)] +mod tests { + use super::*; + use arrow_array::{Int32Array, RecordBatch}; + use arrow_schema::{DataType, Field, Schema}; + use futures::TryStreamExt; + + use crate::dataset::mem_wal::write::LockFreeBatchStore; + + use super::super::scan::MemTableScanExec; + + fn create_test_schema() -> Arc { + Arc::new(Schema::new(vec![Field::new("id", DataType::Int32, false)])) + } + + fn create_test_batch(start: i32, count: usize) -> RecordBatch { + let schema = create_test_schema(); + let ids: Vec = (start..start + count as i32).collect(); + + RecordBatch::try_new(schema, vec![Arc::new(Int32Array::from(ids))]).unwrap() + } + + fn create_memory_plan(batches: Vec) -> Arc { + let schema = create_test_schema(); + let batch_store = Arc::new(LockFreeBatchStore::with_capacity(100)); + for batch in batches { + batch_store.append(batch, 1).unwrap(); + } + Arc::new(MemTableScanExec::new(batch_store, 1, None, schema)) + } + + #[tokio::test] + async fn test_split_plan_combines_results() { + // Create indexed plan with 10 rows + let indexed_batches = vec![create_test_batch(0, 10)]; + let indexed_plan = create_memory_plan(indexed_batches); + + // Create unindexed plan with 5 rows + let unindexed_batches = vec![create_test_batch(10, 5)]; + let unindexed_plan = create_memory_plan(unindexed_batches); + + let split = SplitPlanExec::new(indexed_plan, unindexed_plan); + + let ctx = Arc::new(TaskContext::default()); + let stream = split.execute(0, ctx).unwrap(); + let batches: Vec = stream.try_collect().await.unwrap(); + + // Should have results from both plans + let total_rows: usize = batches.iter().map(|b| b.num_rows()).sum(); + assert_eq!(total_rows, 15); + } + + #[tokio::test] + async fn test_split_plan_statistics() { + let indexed_batches = vec![create_test_batch(0, 10)]; + let indexed_plan = create_memory_plan(indexed_batches); + + let unindexed_batches = vec![create_test_batch(10, 5)]; + let unindexed_plan = create_memory_plan(unindexed_batches); + + let split = SplitPlanExec::new(indexed_plan, unindexed_plan); + + // Statistics are unknown since we're combining two sources + let stats = split.partition_statistics(None).unwrap(); + assert_eq!(stats.num_rows, Precision::Absent); + } + + #[tokio::test] + async fn test_split_plan_empty_indexed() { + // Create empty indexed plan + let indexed_plan = create_memory_plan(vec![]); + + // Create unindexed plan with 5 rows + let unindexed_batches = vec![create_test_batch(0, 5)]; + let unindexed_plan = create_memory_plan(unindexed_batches); + + let split = SplitPlanExec::new(indexed_plan, unindexed_plan); + + let ctx = Arc::new(TaskContext::default()); + let stream = split.execute(0, ctx).unwrap(); + let batches: Vec = stream.try_collect().await.unwrap(); + + // Should have results from unindexed plan only + let total_rows: usize = batches.iter().map(|b| b.num_rows()).sum(); + assert_eq!(total_rows, 5); + } + + #[tokio::test] + async fn test_split_plan_empty_unindexed() { + // Create indexed plan with 10 rows + let indexed_batches = vec![create_test_batch(0, 10)]; + let indexed_plan = create_memory_plan(indexed_batches); + + // Create empty unindexed plan + let unindexed_plan = create_memory_plan(vec![]); + + let split = SplitPlanExec::new(indexed_plan, unindexed_plan); + + let ctx = Arc::new(TaskContext::default()); + let stream = split.execute(0, ctx).unwrap(); + let batches: Vec = stream.try_collect().await.unwrap(); + + // Should have results from indexed plan only + let total_rows: usize = batches.iter().map(|b| b.num_rows()).sum(); + assert_eq!(total_rows, 10); + } + + #[test] + fn test_split_plan_children() { + let indexed_batches = vec![create_test_batch(0, 10)]; + let indexed_plan = create_memory_plan(indexed_batches); + + let unindexed_batches = vec![create_test_batch(10, 5)]; + let unindexed_plan = create_memory_plan(unindexed_batches); + + let split = SplitPlanExec::new(indexed_plan, unindexed_plan); + + // Should have two children + assert_eq!(split.children().len(), 2); + } + + #[test] + fn test_split_plan_with_new_children() { + let indexed_batches = vec![create_test_batch(0, 10)]; + let indexed_plan = create_memory_plan(indexed_batches); + + let unindexed_batches = vec![create_test_batch(10, 5)]; + let unindexed_plan = create_memory_plan(unindexed_batches); + + let split = Arc::new(SplitPlanExec::new( + indexed_plan.clone(), + unindexed_plan.clone(), + )); + + // Clone with new children should work + let new_children = vec![indexed_plan, unindexed_plan]; + let new_split = split.clone().with_new_children(new_children).unwrap(); + assert_eq!(new_split.children().len(), 2); + + // Wrong number of children should fail + let invalid_children = vec![create_memory_plan(vec![])]; + assert!(split.with_new_children(invalid_children).is_err()); + } +} diff --git a/rust/lance/src/dataset/mem_wal/read/memtable/exec/vector.rs b/rust/lance/src/dataset/mem_wal/read/memtable/exec/vector.rs new file mode 100644 index 00000000000..2fb5a69418f --- /dev/null +++ b/rust/lance/src/dataset/mem_wal/read/memtable/exec/vector.rs @@ -0,0 +1,368 @@ +// SPDX-License-Identifier: Apache-2.0 +// SPDX-FileCopyrightText: Copyright The Lance Authors + +//! VectorIndexExec - IVF-PQ vector search with MVCC visibility. + +use std::any::Any; +use std::fmt::{Debug, Formatter}; +use std::sync::Arc; + +use arrow_array::{cast::AsArray, FixedSizeListArray, Float32Array, RecordBatch}; +use arrow_schema::{DataType, Field, Schema, SchemaRef}; +use datafusion::common::stats::Precision; +use datafusion::error::Result as DataFusionResult; +use datafusion::execution::TaskContext; +use datafusion::physical_plan::execution_plan::{Boundedness, EmissionType}; +use datafusion::physical_plan::metrics::{ExecutionPlanMetricsSet, MetricsSet}; +use datafusion::physical_plan::stream::RecordBatchStreamAdapter; +use datafusion::physical_plan::{ + DisplayAs, DisplayFormatType, ExecutionPlan, Partitioning, PlanProperties, + SendableRecordBatchStream, Statistics, +}; +use datafusion_physical_expr::EquivalenceProperties; +use futures::stream::{self, StreamExt}; +use lance_core::{Error, Result}; +use snafu::location; + +use super::super::scanner::VectorQuery; +use crate::dataset::mem_wal::write::{IndexRegistry, LockFreeBatchStore}; + +/// Distance column name in output. +pub const DISTANCE_COLUMN: &str = "_distance"; + +/// ExecutionPlan node that queries IVF-PQ vector index with MVCC visibility. +pub struct VectorIndexExec { + batch_store: Arc, + indexes: Arc, + query: VectorQuery, + visibility_seq: u64, + projection: Option>, + output_schema: SchemaRef, + properties: PlanProperties, + metrics: ExecutionPlanMetricsSet, + index_name: String, +} + +impl Debug for VectorIndexExec { + fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { + f.debug_struct("VectorIndexExec") + .field("column", &self.query.column) + .field("k", &self.query.k) + .field("nprobes", &self.query.nprobes) + .field("visibility_seq", &self.visibility_seq) + .field("index_name", &self.index_name) + .finish() + } +} + +impl VectorIndexExec { + /// Create a new VectorIndexExec. + /// + /// # Arguments + /// + /// * `batch_store` - Lock-free batch store containing data + /// * `indexes` - Index registry with IVF-PQ indexes + /// * `query` - Vector query parameters + /// * `visibility_seq` - MVCC visibility sequence number + /// * `projection` - Optional column indices to project + /// * `output_schema` - Schema after projection (will add _distance column) + pub fn new( + batch_store: Arc, + indexes: Arc, + query: VectorQuery, + visibility_seq: u64, + projection: Option>, + base_schema: SchemaRef, + ) -> Result { + // Find the index for this column + let column = &query.column; + let coverage = indexes.get_coverage(); + let index_name = coverage + .ivfpq_coverage + .iter() + .find_map(|(name, _)| { + indexes + .get_ivf_pq(name) + .filter(|idx| idx.column_name() == column) + .map(|_| name.clone()) + }) + .ok_or_else(|| { + Error::invalid_input( + format!("No IVF-PQ index found for column '{}'", column), + location!(), + ) + })?; + + // Add _distance column to output schema + let mut fields: Vec = base_schema + .fields() + .iter() + .map(|f| f.as_ref().clone()) + .collect(); + fields.push(Field::new(DISTANCE_COLUMN, DataType::Float32, false)); + let output_schema = Arc::new(Schema::new(fields)); + + let properties = PlanProperties::new( + EquivalenceProperties::new(output_schema.clone()), + Partitioning::UnknownPartitioning(1), + EmissionType::Incremental, + Boundedness::Bounded, + ); + + Ok(Self { + batch_store, + indexes, + query, + visibility_seq, + projection, + output_schema, + properties, + metrics: ExecutionPlanMetricsSet::new(), + index_name, + }) + } + + /// Query the index and return matching rows with distances. + fn query_index(&self) -> Vec<(f32, u64)> { + let Some(index) = self.indexes.get_ivf_pq(&self.index_name) else { + return vec![]; + }; + + // Convert query vector to FixedSizeListArray + let query_array = self.query.query_vector.as_ref(); + + // Try to interpret as FixedSizeList + let fsl = if let Some(fsl) = query_array.as_fixed_size_list_opt() { + fsl.clone() + } else { + // If it's a primitive array, wrap it in a FixedSizeList (single row) + let values = self.query.query_vector.clone(); + let dim = values.len() as i32; + let field = Arc::new(Field::new("item", values.data_type().clone(), true)); + match FixedSizeListArray::try_new(field, dim, values, None) { + Ok(arr) => arr, + Err(_) => return vec![], + } + }; + + // Search the index + index + .search(&fsl, self.query.k, self.query.nprobes) + .unwrap_or_default() + } + + /// Filter results by MVCC visibility. + fn filter_by_visibility(&self, results: Vec<(f32, u64)>) -> Vec<(f32, u64)> { + // Build a map of row_position -> batch_id + let mut batch_ranges = Vec::new(); + let mut current_row = 0usize; + + for stored_batch in self.batch_store.iter() { + let batch_start = current_row; + let batch_end = current_row + stored_batch.num_rows; + batch_ranges.push((batch_start, batch_end, stored_batch.seq)); + current_row = batch_end; + } + + // Filter by visibility + results + .into_iter() + .filter(|&(_, pos)| { + let pos = pos as usize; + for &(start, end, seq) in &batch_ranges { + if pos >= start && pos < end { + return seq == 0 || seq <= self.visibility_seq; + } + } + false + }) + .collect() + } + + /// Materialize rows from batch store with distance column. + fn materialize_rows(&self, results: &[(f32, u64)]) -> DataFusionResult> { + if results.is_empty() { + return Ok(vec![]); + } + + // Build batch ranges + let mut batch_ranges = Vec::new(); + let mut current_row = 0usize; + + for stored_batch in self.batch_store.iter() { + let batch_start = current_row; + let batch_end = current_row + stored_batch.num_rows; + batch_ranges.push((batch_start, batch_end)); + current_row = batch_end; + } + + // Group rows by batch + let mut batches_data: std::collections::HashMap> = + std::collections::HashMap::new(); + + for &(distance, pos) in results { + let pos = pos as usize; + for (batch_id, &(start, end)) in batch_ranges.iter().enumerate() { + if pos >= start && pos < end { + batches_data + .entry(batch_id) + .or_default() + .push((pos - start, distance)); + break; + } + } + } + + let mut all_batches = Vec::new(); + + for (batch_id, rows_with_dist) in batches_data { + if let Some(stored) = self.batch_store.get(batch_id) { + let rows: Vec = rows_with_dist.iter().map(|&(r, _)| r as u32).collect(); + let distances: Vec = rows_with_dist.iter().map(|&(_, d)| d).collect(); + + let indices = arrow_array::UInt32Array::from(rows); + + let mut columns: Vec> = stored + .data + .columns() + .iter() + .map(|col| arrow_select::take::take(col.as_ref(), &indices, None).unwrap()) + .collect(); + + // Add distance column + columns.push(Arc::new(Float32Array::from(distances))); + + // Apply projection if needed (excluding distance column which is always included) + let final_columns = if let Some(ref proj_indices) = self.projection { + let mut projected: Vec<_> = + proj_indices.iter().map(|&i| columns[i].clone()).collect(); + // Always include distance as last column + projected.push(columns.last().unwrap().clone()); + projected + } else { + columns + }; + + let batch = RecordBatch::try_new(self.output_schema.clone(), final_columns)?; + all_batches.push(batch); + } + } + + Ok(all_batches) + } +} + +impl DisplayAs for VectorIndexExec { + fn fmt_as(&self, t: DisplayFormatType, f: &mut Formatter<'_>) -> std::fmt::Result { + match t { + DisplayFormatType::Default | DisplayFormatType::Verbose => { + write!( + f, + "VectorIndexExec: index={}, column={}, k={}, nprobes={}, visibility_seq={}", + self.index_name, + self.query.column, + self.query.k, + self.query.nprobes, + self.visibility_seq + ) + } + DisplayFormatType::TreeRender => { + write!( + f, + "VectorIndexExec\nindex={}\ncolumn={}\nk={}\nnprobes={}\nvisibility_seq={}", + self.index_name, + self.query.column, + self.query.k, + self.query.nprobes, + self.visibility_seq + ) + } + } + } +} + +impl ExecutionPlan for VectorIndexExec { + fn name(&self) -> &str { + "VectorIndexExec" + } + + fn as_any(&self) -> &dyn Any { + self + } + + fn schema(&self) -> SchemaRef { + self.output_schema.clone() + } + + fn children(&self) -> Vec<&Arc> { + vec![] + } + + fn with_new_children( + self: Arc, + children: Vec>, + ) -> DataFusionResult> { + if !children.is_empty() { + return Err(datafusion::error::DataFusionError::Internal( + "VectorIndexExec does not have children".to_string(), + )); + } + Ok(self) + } + + fn execute( + &self, + _partition: usize, + _context: Arc, + ) -> DataFusionResult { + // Query the index + let results = self.query_index(); + + // Filter by visibility + let visible_results = self.filter_by_visibility(results); + + // Materialize the rows + let batches = self.materialize_rows(&visible_results)?; + + let stream = stream::iter(batches.into_iter().map(Ok)).boxed(); + + Ok(Box::pin(RecordBatchStreamAdapter::new( + self.output_schema.clone(), + stream, + ))) + } + + fn partition_statistics(&self, _partition: Option) -> DataFusionResult { + Ok(Statistics { + num_rows: Precision::Exact(self.query.k), + total_byte_size: Precision::Absent, + column_statistics: vec![], + }) + } + + fn metrics(&self) -> Option { + Some(self.metrics.clone_inner()) + } + + fn properties(&self) -> &PlanProperties { + &self.properties + } + + fn supports_limit_pushdown(&self) -> bool { + true // Vector search naturally supports limit + } +} + +#[cfg(test)] +mod tests { + use super::*; + + // Note: Full tests for VectorIndexExec require setting up IVF-PQ index + // with trained centroids and codebook, which is complex. + // Basic structure tests are included here. + + #[test] + fn test_distance_column_name() { + assert_eq!(DISTANCE_COLUMN, "_distance"); + } +} diff --git a/rust/lance/src/dataset/mem_wal/read/memtable/scanner.rs b/rust/lance/src/dataset/mem_wal/read/memtable/scanner.rs new file mode 100644 index 00000000000..37b25e920e4 --- /dev/null +++ b/rust/lance/src/dataset/mem_wal/read/memtable/scanner.rs @@ -0,0 +1,898 @@ +// SPDX-License-Identifier: Apache-2.0 +// SPDX-FileCopyrightText: Copyright The Lance Authors + +//! MemTableScanner builder for creating query execution plans. + +use std::sync::Arc; + +use arrow_array::{Array, RecordBatch}; +use arrow_schema::SchemaRef; +use datafusion::common::{ScalarValue, ToDFSchema}; +use datafusion::physical_plan::limit::GlobalLimitExec; +use datafusion::physical_plan::stream::RecordBatchStreamAdapter; +use datafusion::physical_plan::{ExecutionPlan, SendableRecordBatchStream}; +use datafusion::prelude::{Expr, SessionContext}; +use futures::stream::StreamExt; +use futures::TryStreamExt; +use lance_core::{Error, Result}; +use lance_datafusion::planner::Planner; +use lance_linalg::distance::DistanceType; +use snafu::location; + +use super::exec::{ + BTreeIndexExec, FtsIndexExec, MemTableRangeScanExec, MemTableScanExec, SplitPlanExec, + VectorIndexExec, +}; +use crate::dataset::mem_wal::write::{CoverageResult, IndexRegistry, LockFreeBatchStore}; + +/// A simple filter execution plan that applies Arrow filter kernels to avoid +/// DataFusion's FilterExec analysis bugs. +struct FilteredScanExec { + input: Arc, + predicate: datafusion_physical_expr::PhysicalExprRef, + filter_expr: Expr, + schema: SchemaRef, + properties: datafusion::physical_plan::PlanProperties, +} + +impl std::fmt::Debug for FilteredScanExec { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + f.debug_struct("FilteredScanExec") + .field("filter_expr", &self.filter_expr) + .finish() + } +} + +impl FilteredScanExec { + fn new(input: Arc, filter_expr: Expr, schema: SchemaRef) -> Result { + let planner = Planner::new(schema.clone()); + let predicate = planner.create_physical_expr(&filter_expr)?; + let properties = input.properties().clone(); + + Ok(Self { + input, + predicate, + filter_expr, + schema, + properties, + }) + } +} + +impl datafusion::physical_plan::DisplayAs for FilteredScanExec { + fn fmt_as( + &self, + _t: datafusion::physical_plan::DisplayFormatType, + f: &mut std::fmt::Formatter<'_>, + ) -> std::fmt::Result { + write!(f, "FilteredScanExec: expr={:?}", self.filter_expr) + } +} + +impl ExecutionPlan for FilteredScanExec { + fn name(&self) -> &str { + "FilteredScanExec" + } + + fn as_any(&self) -> &dyn std::any::Any { + self + } + + fn schema(&self) -> SchemaRef { + self.schema.clone() + } + + fn children(&self) -> Vec<&Arc> { + vec![&self.input] + } + + fn with_new_children( + self: Arc, + children: Vec>, + ) -> datafusion::error::Result> { + if children.len() != 1 { + return Err(datafusion::error::DataFusionError::Internal( + "FilteredScanExec requires exactly one child".to_string(), + )); + } + Ok(Arc::new(Self { + input: children[0].clone(), + predicate: self.predicate.clone(), + filter_expr: self.filter_expr.clone(), + schema: self.schema.clone(), + properties: self.properties.clone(), + })) + } + + fn properties(&self) -> &datafusion::physical_plan::PlanProperties { + &self.properties + } + + fn execute( + &self, + partition: usize, + context: Arc, + ) -> datafusion::error::Result { + let input_stream = self.input.execute(partition, context)?; + let predicate = self.predicate.clone(); + let schema = self.schema.clone(); + + let filtered_stream = input_stream.map(move |batch_result| { + let batch = batch_result?; + if batch.num_rows() == 0 { + return Ok(batch); + } + + // Evaluate the predicate to get a boolean array + let filter_array = predicate + .evaluate(&batch)? + .into_array(batch.num_rows())?; + + let filter_array = filter_array + .as_any() + .downcast_ref::() + .ok_or_else(|| { + datafusion::error::DataFusionError::Internal( + "Filter predicate did not evaluate to boolean".to_string(), + ) + })?; + + // Apply the filter + let filtered_batch = arrow_select::filter::filter_record_batch(&batch, filter_array)?; + + Ok(filtered_batch) + }); + + Ok(Box::pin(RecordBatchStreamAdapter::new( + schema, + filtered_stream.boxed(), + ))) + } + + fn partition_statistics( + &self, + _partition: Option, + ) -> datafusion::error::Result { + Ok(datafusion::common::stats::Statistics { + num_rows: datafusion::common::stats::Precision::Absent, + total_byte_size: datafusion::common::stats::Precision::Absent, + column_statistics: vec![], + }) + } +} + +/// Vector search query parameters. +#[derive(Debug, Clone)] +pub struct VectorQuery { + /// Column name containing vectors. + pub column: String, + /// Query vector. + pub query_vector: Arc, + /// Number of results to return. + pub k: usize, + /// Number of probes for IVF search. + pub nprobes: usize, + /// Distance type for search. + pub distance_type: DistanceType, +} + +/// Full-text search query parameters. +#[derive(Debug, Clone)] +pub struct FtsQuery { + /// Column name to search. + pub column: String, + /// Search term. + pub query: String, +} + +/// Scalar predicate for BTree index queries. +#[derive(Debug, Clone)] +pub enum ScalarPredicate { + /// Exact match: column = value. + Eq { column: String, value: ScalarValue }, + /// Range query: column in [lower, upper). + Range { + column: String, + lower: Option, + upper: Option, + }, + /// IN query: column in (values...). + In { + column: String, + values: Vec, + }, +} + +impl ScalarPredicate { + /// Get the column name for this predicate. + pub fn column(&self) -> &str { + match self { + Self::Eq { column, .. } => column, + Self::Range { column, .. } => column, + Self::In { column, .. } => column, + } + } +} + +/// Scanner builder for querying MemTable data. +/// +/// Provides a builder pattern similar to Lance's Scanner interface +/// for constructing DataFusion execution plans over in-memory data. +/// +/// # Example +/// +/// ```ignore +/// let scanner = MemTableScanner::new(batch_store, indexes, schema, visibility_seq) +/// .project(&["id", "name"])? +/// .filter("id > 10")? +/// .limit(100, None)?; +/// +/// let stream = scanner.try_into_stream().await?; +/// ``` +pub struct MemTableScanner { + batch_store: Arc, + indexes: Option>, + schema: SchemaRef, + visibility_seq: u64, + projection: Option>, + filter: Option, + limit: Option, + offset: Option, + nearest: Option, + full_text_query: Option, + use_index: bool, + batch_size: Option, +} + +impl MemTableScanner { + /// Create a new scanner. + /// + /// # Arguments + /// + /// * `batch_store` - Lock-free batch store containing the data + /// * `indexes` - Optional index registry for indexed queries + /// * `schema` - Schema of the data + /// * `visibility_seq` - MVCC visibility sequence number + pub fn new( + batch_store: Arc, + indexes: Option>, + schema: SchemaRef, + visibility_seq: u64, + ) -> Self { + Self { + batch_store, + indexes, + schema, + visibility_seq, + projection: None, + filter: None, + limit: None, + offset: None, + nearest: None, + full_text_query: None, + use_index: true, + batch_size: None, + } + } + + /// Project only the specified columns. + pub fn project(&mut self, columns: &[&str]) -> &mut Self { + self.projection = Some(columns.iter().map(|s| s.to_string()).collect()); + self + } + + /// Set a filter expression using SQL-like syntax. + pub fn filter(&mut self, filter_expr: &str) -> Result<&mut Self> { + let ctx = SessionContext::new(); + let df_schema = self.schema.clone().to_dfschema().map_err(|e| { + Error::invalid_input(format!("Failed to create DFSchema: {}", e), location!()) + })?; + let expr = ctx.parse_sql_expr(filter_expr, &df_schema).map_err(|e| { + Error::invalid_input( + format!("Failed to parse filter expression: {}", e), + location!(), + ) + })?; + self.filter = Some(expr); + Ok(self) + } + + /// Set a filter expression directly. + pub fn filter_expr(&mut self, expr: Expr) -> &mut Self { + self.filter = Some(expr); + self + } + + /// Limit the number of results. + pub fn limit(&mut self, limit: usize, offset: Option) -> &mut Self { + self.limit = Some(limit); + self.offset = offset; + self + } + + /// Set up a vector similarity search. + pub fn nearest( + &mut self, + column: &str, + query: Arc, + k: usize, + nprobes: Option, + distance_type: Option, + ) -> &mut Self { + self.nearest = Some(VectorQuery { + column: column.to_string(), + query_vector: query, + k, + nprobes: nprobes.unwrap_or(20), + distance_type: distance_type.unwrap_or(DistanceType::L2), + }); + self + } + + /// Set up a full-text search. + pub fn full_text_search(&mut self, column: &str, query: &str) -> &mut Self { + self.full_text_query = Some(FtsQuery { + column: column.to_string(), + query: query.to_string(), + }); + self + } + + /// Enable or disable index usage. + pub fn use_index(&mut self, use_index: bool) -> &mut Self { + self.use_index = use_index; + self + } + + /// Set the batch size for output. + pub fn batch_size(&mut self, size: usize) -> &mut Self { + self.batch_size = Some(size); + self + } + + /// Execute the scan and return a stream of record batches. + pub async fn try_into_stream(&self) -> Result { + let plan = self.create_plan().await?; + let ctx = SessionContext::new(); + let task_ctx = ctx.task_ctx(); + plan.execute(0, task_ctx) + .map_err(|e| Error::io(format!("Failed to execute plan: {}", e), location!())) + } + + /// Execute the scan and collect all results into a single RecordBatch. + pub async fn try_into_batch(&self) -> Result { + let stream = self.try_into_stream().await?; + let batches: Vec = stream + .try_collect() + .await + .map_err(|e| Error::io(format!("Failed to collect batches: {}", e), location!()))?; + + if batches.is_empty() { + return Ok(RecordBatch::new_empty(self.output_schema())); + } + + arrow_select::concat::concat_batches(&self.output_schema(), &batches) + .map_err(|e| Error::io(format!("Failed to concatenate batches: {}", e), location!())) + } + + /// Count the number of rows that match the query. + pub async fn count_rows(&self) -> Result { + let stream = self.try_into_stream().await?; + let batches: Vec = stream + .try_collect() + .await + .map_err(|e| Error::io(format!("Failed to count rows: {}", e), location!()))?; + + Ok(batches.iter().map(|b| b.num_rows() as u64).sum()) + } + + /// Get the output schema after projection. + pub fn output_schema(&self) -> SchemaRef { + if let Some(ref projection) = self.projection { + let fields: Vec<_> = projection + .iter() + .filter_map(|name| self.schema.field_with_name(name).ok().cloned()) + .collect(); + Arc::new(arrow_schema::Schema::new(fields)) + } else { + self.schema.clone() + } + } + + /// Create the execution plan based on the query configuration. + pub async fn create_plan(&self) -> Result> { + // Determine which type of plan to create + if let Some(ref vector_query) = self.nearest { + return self.plan_vector_search(vector_query).await; + } + + if let Some(ref fts_query) = self.full_text_query { + return self.plan_fts_search(fts_query).await; + } + + // Check if we can use a BTree index for the filter + if self.use_index { + if let Some(predicate) = self.extract_btree_predicate() { + if self.has_btree_index(predicate.column()) { + return self.plan_btree_query(&predicate).await; + } + } + } + + // Fall back to full scan + self.plan_full_scan().await + } + + /// Plan a full table scan. + async fn plan_full_scan(&self) -> Result> { + let projection_indices = self.compute_projection_indices()?; + + let scan = MemTableScanExec::new( + self.batch_store.clone(), + self.visibility_seq, + projection_indices.clone(), + self.output_schema(), + ); + + let mut plan: Arc = Arc::new(scan); + + // Apply filter if present - use inline filtering to avoid DataFusion bugs + if let Some(ref filter) = self.filter { + let filter_expr = filter.clone(); + let schema = plan.schema(); + plan = Arc::new(FilteredScanExec::new(plan, filter_expr, schema)?); + } + + // Apply limit if present + if let Some(limit) = self.limit { + plan = Arc::new(GlobalLimitExec::new( + plan, + self.offset.unwrap_or(0), + Some(limit), + )); + } + + Ok(plan) + } + + /// Plan a BTree index query with potential split plan for partial coverage. + async fn plan_btree_query( + &self, + predicate: &ScalarPredicate, + ) -> Result> { + let coverage = self.get_btree_coverage(predicate.column()); + let projection_indices = self.compute_projection_indices()?; + + match coverage { + CoverageResult::Full => { + // Index covers all visible data + let index_exec = BTreeIndexExec::new( + self.batch_store.clone(), + self.indexes.clone().unwrap(), + predicate.clone(), + self.visibility_seq, + projection_indices, + self.output_schema(), + )?; + self.apply_post_index_ops(Arc::new(index_exec)).await + } + CoverageResult::Partial { max_indexed_seq } => { + // Create split plan: index for covered portion, scan for uncovered + let indexed_plan = BTreeIndexExec::new( + self.batch_store.clone(), + self.indexes.clone().unwrap(), + predicate.clone(), + max_indexed_seq, // Only query up to indexed portion + projection_indices.clone(), + self.output_schema(), + )?; + + let unindexed_plan = MemTableRangeScanExec::new( + self.batch_store.clone(), + max_indexed_seq, // > this + self.visibility_seq, // <= this + projection_indices, + self.output_schema(), + self.filter.clone(), + ); + + let split = SplitPlanExec::new(Arc::new(indexed_plan), Arc::new(unindexed_plan)); + self.apply_post_index_ops(Arc::new(split)).await + } + CoverageResult::None => { + // Fall back to full scan with filter + self.plan_full_scan().await + } + } + } + + /// Plan a vector similarity search. + async fn plan_vector_search(&self, query: &VectorQuery) -> Result> { + let coverage = self.get_vector_coverage(&query.column); + let projection_indices = self.compute_projection_indices()?; + + match coverage { + CoverageResult::Full => { + // Index covers all visible data + let index_exec = VectorIndexExec::new( + self.batch_store.clone(), + self.indexes.clone().unwrap(), + query.clone(), + self.visibility_seq, + projection_indices, + self.output_schema(), + )?; + self.apply_post_index_ops(Arc::new(index_exec)).await + } + CoverageResult::Partial { max_indexed_seq } => { + // Create split plan: index for covered, flat scan for uncovered + let indexed_plan = VectorIndexExec::new( + self.batch_store.clone(), + self.indexes.clone().unwrap(), + VectorQuery { + k: query.k * 2, // Over-fetch from index + ..query.clone() + }, + max_indexed_seq, + projection_indices.clone(), + self.output_schema(), + )?; + + // For unindexed portion, we need a flat vector scan + // For now, fall back to range scan (flat search would be added later) + let unindexed_plan = MemTableRangeScanExec::new( + self.batch_store.clone(), + max_indexed_seq, + self.visibility_seq, + projection_indices, + self.output_schema(), + None, // No filter for vector search - handled by distance calculation + ); + + let split = SplitPlanExec::new(Arc::new(indexed_plan), Arc::new(unindexed_plan)); + self.apply_post_index_ops(Arc::new(split)).await + } + CoverageResult::None => { + // No index available - fall back to full scan + // Ideally would do flat vector search, but for now just scan + self.plan_full_scan().await + } + } + } + + /// Plan a full-text search. + async fn plan_fts_search(&self, query: &FtsQuery) -> Result> { + let coverage = self.get_fts_coverage(&query.column); + let projection_indices = self.compute_projection_indices()?; + + match coverage { + CoverageResult::Full => { + let index_exec = FtsIndexExec::new( + self.batch_store.clone(), + self.indexes.clone().unwrap(), + query.clone(), + self.visibility_seq, + projection_indices, + self.output_schema(), + )?; + self.apply_post_index_ops(Arc::new(index_exec)).await + } + CoverageResult::Partial { max_indexed_seq } => { + let indexed_plan = FtsIndexExec::new( + self.batch_store.clone(), + self.indexes.clone().unwrap(), + query.clone(), + max_indexed_seq, + projection_indices.clone(), + self.output_schema(), + )?; + + let unindexed_plan = MemTableRangeScanExec::new( + self.batch_store.clone(), + max_indexed_seq, + self.visibility_seq, + projection_indices, + self.output_schema(), + None, // FTS filter would need text search logic + ); + + let split = SplitPlanExec::new(Arc::new(indexed_plan), Arc::new(unindexed_plan)); + self.apply_post_index_ops(Arc::new(split)).await + } + CoverageResult::None => self.plan_full_scan().await, + } + } + + /// Apply limit and other post-processing operations. + async fn apply_post_index_ops( + &self, + plan: Arc, + ) -> Result> { + let mut result = plan; + + if let Some(limit) = self.limit { + result = Arc::new(GlobalLimitExec::new( + result, + self.offset.unwrap_or(0), + Some(limit), + )); + } + + Ok(result) + } + + /// Compute column indices for projection. + fn compute_projection_indices(&self) -> Result>> { + if let Some(ref columns) = self.projection { + let indices: Result> = columns + .iter() + .map(|name| { + self.schema + .column_with_name(name) + .map(|(idx, _)| idx) + .ok_or_else(|| { + Error::invalid_input( + format!("Column '{}' not found in schema", name), + location!(), + ) + }) + }) + .collect(); + Ok(Some(indices?)) + } else { + Ok(None) + } + } + + /// Extract a BTree-compatible predicate from the filter. + fn extract_btree_predicate(&self) -> Option { + let filter = self.filter.as_ref()?; + + // Simple pattern matching for common predicates + match filter { + Expr::BinaryExpr(binary) => { + if let (Expr::Column(col), Expr::Literal(lit, _)) = + (binary.left.as_ref(), binary.right.as_ref()) + { + match binary.op { + datafusion::logical_expr::Operator::Eq => { + return Some(ScalarPredicate::Eq { + column: col.name.clone(), + value: lit.clone(), + }); + } + datafusion::logical_expr::Operator::Lt + | datafusion::logical_expr::Operator::LtEq => { + return Some(ScalarPredicate::Range { + column: col.name.clone(), + lower: None, + upper: Some(lit.clone()), + }); + } + datafusion::logical_expr::Operator::Gt + | datafusion::logical_expr::Operator::GtEq => { + return Some(ScalarPredicate::Range { + column: col.name.clone(), + lower: Some(lit.clone()), + upper: None, + }); + } + _ => {} + } + } + } + Expr::InList(in_list) => { + if let Expr::Column(col) = in_list.expr.as_ref() { + let values: Vec = in_list + .list + .iter() + .filter_map(|e| { + if let Expr::Literal(lit, _) = e { + Some(lit.clone()) + } else { + None + } + }) + .collect(); + + if values.len() == in_list.list.len() { + return Some(ScalarPredicate::In { + column: col.name.clone(), + values, + }); + } + } + } + _ => {} + } + + None + } + + /// Check if a BTree index exists for a column. + fn has_btree_index(&self, column: &str) -> bool { + self.indexes + .as_ref() + .and_then(|idx| { + // Try to find an index that covers this column + // The index registry doesn't expose a direct lookup by column, + // but we can check coverage which indicates index existence + let coverage = idx.get_coverage(); + coverage + .btree_coverage + .iter() + .find(|(_, &seq)| seq > 0) + .and_then(|(name, _)| idx.get_btree(name)) + .filter(|btree| btree.column_name() == column) + }) + .is_some() + } + + /// Get BTree index coverage for a column. + fn get_btree_coverage(&self, column: &str) -> CoverageResult { + self.indexes + .as_ref() + .and_then(|idx| { + let coverage = idx.get_coverage(); + // Find an index that covers this column + for name in coverage.btree_coverage.keys() { + if let Some(btree) = idx.get_btree(name) { + if btree.column_name() == column { + return Some(coverage.check_btree_coverage(name, self.visibility_seq)); + } + } + } + None + }) + .unwrap_or(CoverageResult::None) + } + + /// Get vector index coverage for a column. + fn get_vector_coverage(&self, column: &str) -> CoverageResult { + self.indexes + .as_ref() + .and_then(|idx| { + let coverage = idx.get_coverage(); + for name in coverage.ivfpq_coverage.keys() { + if let Some(ivfpq) = idx.get_ivf_pq(name) { + if ivfpq.column_name() == column { + return Some(coverage.check_ivfpq_coverage(name, self.visibility_seq)); + } + } + } + None + }) + .unwrap_or(CoverageResult::None) + } + + /// Get FTS index coverage for a column. + fn get_fts_coverage(&self, column: &str) -> CoverageResult { + self.indexes + .as_ref() + .and_then(|idx| { + let coverage = idx.get_coverage(); + for name in coverage.fts_coverage.keys() { + if let Some(fts) = idx.get_fts(name) { + if fts.column_name() == column { + return Some(coverage.check_fts_coverage(name, self.visibility_seq)); + } + } + } + None + }) + .unwrap_or(CoverageResult::None) + } +} + +#[cfg(test)] +mod tests { + use super::*; + use arrow_array::{Int32Array, StringArray}; + use arrow_schema::{DataType, Field, Schema}; + + fn create_test_schema() -> SchemaRef { + Arc::new(Schema::new(vec![ + Field::new("id", DataType::Int32, false), + Field::new("name", DataType::Utf8, true), + ])) + } + + fn create_test_batch(schema: &Schema, start_id: i32, count: usize) -> RecordBatch { + let ids: Vec = (start_id..start_id + count as i32).collect(); + let names: Vec = ids.iter().map(|id| format!("name_{}", id)).collect(); + + RecordBatch::try_new( + Arc::new(schema.clone()), + vec![ + Arc::new(Int32Array::from(ids)), + Arc::new(StringArray::from(names)), + ], + ) + .unwrap() + } + + #[tokio::test] + async fn test_scanner_basic_scan() { + let schema = create_test_schema(); + let batch_store = Arc::new(LockFreeBatchStore::with_capacity(100)); + + // Insert test data + let batch = create_test_batch(&schema, 0, 10); + batch_store.append(batch, 1).unwrap(); + + let scanner = MemTableScanner::new(batch_store, None, schema.clone(), 1); + + let result = scanner.try_into_batch().await.unwrap(); + assert_eq!(result.num_rows(), 10); + } + + #[tokio::test] + async fn test_scanner_visibility_filtering() { + let schema = create_test_schema(); + let batch_store = Arc::new(LockFreeBatchStore::with_capacity(100)); + + // Insert batches with different sequences + let batch1 = create_test_batch(&schema, 0, 10); + batch_store.append(batch1, 1).unwrap(); + + let batch2 = create_test_batch(&schema, 10, 10); + batch_store.append(batch2, 2).unwrap(); + + let batch3 = create_test_batch(&schema, 20, 10); + batch_store.append(batch3, 3).unwrap(); + + // Scanner at seq 2 should see batches 1 and 2 + let scanner = MemTableScanner::new(batch_store.clone(), None, schema.clone(), 2); + let result = scanner.try_into_batch().await.unwrap(); + assert_eq!(result.num_rows(), 20); + + // Scanner at seq 1 should see only batch 1 + let scanner = MemTableScanner::new(batch_store, None, schema, 1); + let result = scanner.try_into_batch().await.unwrap(); + assert_eq!(result.num_rows(), 10); + } + + #[tokio::test] + async fn test_scanner_projection() { + let schema = create_test_schema(); + let batch_store = Arc::new(LockFreeBatchStore::with_capacity(100)); + + let batch = create_test_batch(&schema, 0, 10); + batch_store.append(batch, 1).unwrap(); + + let mut scanner = MemTableScanner::new(batch_store, None, schema, 1); + scanner.project(&["id"]); + + let result = scanner.try_into_batch().await.unwrap(); + assert_eq!(result.num_columns(), 1); + assert_eq!(result.schema().field(0).name(), "id"); + } + + #[tokio::test] + async fn test_scanner_limit() { + let schema = create_test_schema(); + let batch_store = Arc::new(LockFreeBatchStore::with_capacity(100)); + + let batch = create_test_batch(&schema, 0, 100); + batch_store.append(batch, 1).unwrap(); + + let mut scanner = MemTableScanner::new(batch_store, None, schema, 1); + scanner.limit(10, None); + + let result = scanner.try_into_batch().await.unwrap(); + assert_eq!(result.num_rows(), 10); + } + + #[tokio::test] + async fn test_scanner_count_rows() { + let schema = create_test_schema(); + let batch_store = Arc::new(LockFreeBatchStore::with_capacity(100)); + + let batch = create_test_batch(&schema, 0, 50); + batch_store.append(batch, 1).unwrap(); + + let scanner = MemTableScanner::new(batch_store, None, schema, 1); + let count = scanner.count_rows().await.unwrap(); + assert_eq!(count, 50); + } +} diff --git a/rust/lance/src/dataset/mem_wal/util.rs b/rust/lance/src/dataset/mem_wal/util.rs new file mode 100644 index 00000000000..0cd658c50c6 --- /dev/null +++ b/rust/lance/src/dataset/mem_wal/util.rs @@ -0,0 +1,210 @@ +// SPDX-License-Identifier: Apache-2.0 +// SPDX-FileCopyrightText: Copyright The Lance Authors + +//! Utility functions for MemWAL operations. + +use object_store::path::Path; +use uuid::Uuid; + +/// Bit-reverse a 64-bit integer. +/// +/// Used for file naming to distribute files evenly across object store keyspace, +/// optimizing S3 throughput by spreading sequential writes across internal partitions. +/// +/// # Example +/// ```ignore +/// // 5 in binary: 000...101 +/// // Reversed: 101...000 +/// assert_eq!(bit_reverse_u64(5), 0xa000000000000000); +/// ``` +pub fn bit_reverse_u64(n: u64) -> u64 { + n.reverse_bits() +} + +/// Generate a bit-reversed filename for a given ID. +/// +/// # Arguments +/// * `id` - The sequential ID to convert +/// * `ext` - File extension (e.g., "binpb", "lance") +/// +/// # Returns +/// A string like "1010000000000000000000000000000000000000000000000000000000000000.binpb" +/// for id=5, ext="binpb" +pub fn bit_reversed_filename(id: u64, ext: &str) -> String { + format!("{:064b}.{}", bit_reverse_u64(id), ext) +} + +/// Parse a bit-reversed filename back to the original ID. +/// +/// # Arguments +/// * `filename` - The filename without path (e.g., "1010...0000.binpb") +/// +/// # Returns +/// The original ID, or None if parsing fails +pub fn parse_bit_reversed_filename(filename: &str) -> Option { + let stem = filename.split('.').next()?; + if stem.len() != 64 || !stem.chars().all(|c| c == '0' || c == '1') { + return None; + } + let reversed = u64::from_str_radix(stem, 2).ok()?; + Some(bit_reverse_u64(reversed)) +} + +/// Base path for a region within the MemWAL directory. +/// +/// Returns: `{base_path}/_mem_wal/{region_id}/` +pub fn region_base_path(base_path: &Path, region_id: &Uuid) -> Path { + base_path + .child("_mem_wal") + .child(region_id.as_hyphenated().to_string()) +} + +/// Path to the WAL directory for a region. +/// +/// Returns: `{base_path}/_mem_wal/{region_id}/wal/` +pub fn region_wal_path(base_path: &Path, region_id: &Uuid) -> Path { + region_base_path(base_path, region_id).child("wal") +} + +/// Path to the manifest directory for a region. +/// +/// Returns: `{base_path}/_mem_wal/{region_id}/manifest/` +pub fn region_manifest_path(base_path: &Path, region_id: &Uuid) -> Path { + region_base_path(base_path, region_id).child("manifest") +} + +/// Path to a flushed MemTable directory. +/// +/// Returns: `{base_path}/_mem_wal/{region_id}/{random_hash}_gen_{generation}/` +pub fn flushed_memtable_path( + base_path: &Path, + region_id: &Uuid, + random_hash: &str, + generation: u64, +) -> Path { + region_base_path(base_path, region_id).child(format!("{}_gen_{}", random_hash, generation)) +} + +/// Generate an 8-character random hex string for flushed MemTable directories. +pub fn generate_random_hash() -> String { + let bytes: [u8; 4] = rand::random(); + format!( + "{:02x}{:02x}{:02x}{:02x}", + bytes[0], bytes[1], bytes[2], bytes[3] + ) +} + +/// WAL entry filename. +/// +/// Returns bit-reversed filename with .lance extension (Lance format). +pub fn wal_entry_filename(wal_id: u64) -> String { + bit_reversed_filename(wal_id, "lance") +} + +/// Region manifest filename. +/// +/// Returns bit-reversed filename with .binpb extension. +pub fn manifest_filename(version: u64) -> String { + bit_reversed_filename(version, "binpb") +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn test_bit_reverse_u64() { + // 0 should remain 0 + assert_eq!(bit_reverse_u64(0), 0); + + // 1 (least significant bit) becomes most significant + assert_eq!(bit_reverse_u64(1), 0x8000000000000000); + + // 5 = 101 in binary, reversed = 101 followed by 61 zeros + assert_eq!(bit_reverse_u64(5), 0xa000000000000000); + + // Double reversal should give original + for i in [0u64, 1, 2, 5, 100, 1000, u64::MAX / 2, u64::MAX] { + assert_eq!(bit_reverse_u64(bit_reverse_u64(i)), i); + } + } + + #[test] + fn test_bit_reversed_filename() { + let filename = bit_reversed_filename(1, "binpb"); + assert_eq!( + filename, + "1000000000000000000000000000000000000000000000000000000000000000.binpb" + ); + + let filename = bit_reversed_filename(5, "lance"); + assert_eq!( + filename, + "1010000000000000000000000000000000000000000000000000000000000000.lance" + ); + } + + #[test] + fn test_parse_bit_reversed_filename() { + // Round-trip test + for id in [1u64, 5, 100, 1000, u64::MAX / 2] { + let filename = bit_reversed_filename(id, "binpb"); + let parsed = parse_bit_reversed_filename(&filename); + assert_eq!(parsed, Some(id), "Failed round-trip for id={}", id); + } + + // Invalid inputs + assert_eq!(parse_bit_reversed_filename("invalid"), None); + assert_eq!(parse_bit_reversed_filename("123.binpb"), None); + assert_eq!( + parse_bit_reversed_filename( + "10100000000000000000000000000000000000000000000000000000000000002.binpb" + ), + None + ); + } + + #[test] + fn test_region_paths() { + let base_path = Path::from("my/dataset"); + let region_id = Uuid::parse_str("550e8400-e29b-41d4-a716-446655440000").unwrap(); + + assert_eq!( + region_base_path(&base_path, ®ion_id).as_ref(), + "my/dataset/_mem_wal/550e8400-e29b-41d4-a716-446655440000" + ); + + assert_eq!( + region_wal_path(&base_path, ®ion_id).as_ref(), + "my/dataset/_mem_wal/550e8400-e29b-41d4-a716-446655440000/wal" + ); + + assert_eq!( + region_manifest_path(&base_path, ®ion_id).as_ref(), + "my/dataset/_mem_wal/550e8400-e29b-41d4-a716-446655440000/manifest" + ); + + assert_eq!( + flushed_memtable_path(&base_path, ®ion_id, "a1b2c3d4", 5).as_ref(), + "my/dataset/_mem_wal/550e8400-e29b-41d4-a716-446655440000/a1b2c3d4_gen_5" + ); + + // Test with empty base path + let empty_base = Path::from(""); + assert_eq!( + region_wal_path(&empty_base, ®ion_id).as_ref(), + "_mem_wal/550e8400-e29b-41d4-a716-446655440000/wal" + ); + } + + #[test] + fn test_generate_random_hash() { + let hash = generate_random_hash(); + assert_eq!(hash.len(), 8); + assert!(hash.chars().all(|c| c.is_ascii_hexdigit())); + + // Should generate different values (with very high probability) + let hash2 = generate_random_hash(); + assert_ne!(hash, hash2); + } +} diff --git a/rust/lance/src/dataset/mem_wal/write.rs b/rust/lance/src/dataset/mem_wal/write.rs new file mode 100644 index 00000000000..216da59b2f6 --- /dev/null +++ b/rust/lance/src/dataset/mem_wal/write.rs @@ -0,0 +1,48 @@ +// SPDX-License-Identifier: Apache-2.0 +// SPDX-FileCopyrightText: Copyright The Lance Authors + +//! Write path for MemWAL. +//! +//! This module contains all components for the write path: +//! - [`RegionWriter`] - Main writer interface for a single region +//! - [`MemTable`] - In-memory table storing Arrow RecordBatches +//! - [`WalBuffer`] - Write-ahead log buffer for durability (Arrow IPC format) +//! - [`IndexRegistry`] - In-memory index management +//! - [`MemTableFlusher`] - Flush MemTable to storage as single Lance file + +mod batch_store; +mod batch_write; +mod flush; +mod immutable; +mod indexes; +mod memtable; +#[cfg(test)] +mod memtable_perf_test; +mod sequenced_batch; +mod stats; +mod wal; +mod watchable_cell; +mod writer; + +pub use batch_write::{ + write_batch_channel, BackpressureController, BackpressureProvider, BackpressureStats, + DurabilityCell, DurabilityResult, DurabilityWatcher, WriteBatchHandler, WriteBatchMessage, + WriteBatchReceiver, WriteBatchResult, WriteBatchSender, WriterStateOps, WRITE_BATCH_TASK_NAME, +}; +pub use flush::MemTableFlusher; +pub use immutable::{ImmutableMemTable, ImmutableMemTableQueue}; +pub use indexes::{ + BTreeIndexConfig, BTreeMemIndex, CoverageResult, FtsIndexConfig, IndexCoverageInfo, + IndexRegistry, IndexUpdateHandler, IndexUpdateMsg, IvfPqIndexConfig, MemIndexConfig, +}; +pub use memtable::CacheConfig; +pub use memtable::MemTable; +pub use sequenced_batch::{filter_visible, SequencedBatch, SequencedBatchBuilder}; +pub use stats::{new_shared_stats, SharedWriteStats, WriteStats, WriteStatsSnapshot}; +pub use wal::{WalBuffer, WalEntry, WalEntryData}; +pub use watchable_cell::{ + ClosedStatus, MonotonicSeq, SendSafely, WatchableOnceCell, WatchableOnceCellReader, +}; +pub use writer::RegionWriter; + +pub use batch_store::{LockFreeBatchStore, StoreFull, StoredBatch}; diff --git a/rust/lance/src/dataset/mem_wal/write/batch_store.rs b/rust/lance/src/dataset/mem_wal/write/batch_store.rs new file mode 100644 index 00000000000..a3a4c0724ad --- /dev/null +++ b/rust/lance/src/dataset/mem_wal/write/batch_store.rs @@ -0,0 +1,758 @@ +// SPDX-License-Identifier: Apache-2.0 +// SPDX-FileCopyrightText: Copyright The Lance Authors + +//! Lock-free append-only batch storage for MemTable. +//! +//! This module provides a high-performance, lock-free storage structure for +//! RecordBatches in the MemTable. It is designed for a single-writer, +//! multiple-reader scenario where: +//! +//! - A single writer task (WriteBatchHandler) appends batches +//! - Multiple reader tasks concurrently read batches +//! - No locks are needed for either reads or writes +//! +//! # Safety Model +//! +//! The lock-free design relies on these invariants: +//! +//! 1. **Single Writer**: Only one thread calls `append()` at a time. +//! Enforced by the WriteBatchHandler architecture. +//! +//! 2. **Append-Only**: Once written, slots are never modified or removed +//! until the entire store is dropped. +//! +//! 3. **Atomic Publishing**: Writer updates `committed_len` with Release +//! ordering AFTER fully writing the slot. Readers load with Acquire +//! ordering BEFORE reading slots. +//! +//! 4. **Fixed Capacity**: The store has a fixed capacity set at creation. +//! When full, the MemTable should be flushed. +//! +//! # Memory Ordering +//! +//! ```text +//! Writer: Reader: +//! 1. Write data to slot[n] +//! 2. committed_len.store(n+1, Release) +//! ─────────────────────────────────► synchronizes-with +//! 3. len = committed_len.load(Acquire) +//! 4. Read slot[i] where i < len +//! ``` + +use std::cell::UnsafeCell; +use std::mem::MaybeUninit; +use std::sync::atomic::{AtomicU64, AtomicUsize, Ordering}; + +use arrow_array::RecordBatch; + +/// A batch stored in the lock-free store. +#[derive(Clone)] +pub struct StoredBatch { + /// The Arrow RecordBatch data. + pub data: RecordBatch, + /// MVCC sequence number (0 = not tracked, always visible). + pub seq: u64, + /// Number of rows in this batch (cached for quick access). + pub num_rows: usize, +} + +impl StoredBatch { + /// Create a new StoredBatch. + pub fn new(data: RecordBatch, seq: u64) -> Self { + let num_rows = data.num_rows(); + Self { + data, + seq, + num_rows, + } + } +} + +/// Error returned when the store is full. +#[derive(Debug, Clone, Copy, PartialEq, Eq)] +pub struct StoreFull; + +impl std::fmt::Display for StoreFull { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "LockFreeBatchStore is full") + } +} + +impl std::error::Error for StoreFull {} + +/// Lock-free append-only storage for memtable batches. +/// +/// This structure provides O(1) lock-free appends and reads for a +/// single-writer, multiple-reader scenario. +/// +/// # Example +/// +/// ```ignore +/// let store = LockFreeBatchStore::with_capacity(100); +/// +/// // Writer (single thread) +/// store.append(batch1, 1)?; +/// store.append(batch2, 2)?; +/// +/// // Readers (multiple threads, concurrent) +/// let len = store.len(); +/// for i in 0..len { +/// let batch = store.get(i).unwrap(); +/// // process batch... +/// } +/// ``` +pub struct LockFreeBatchStore { + /// Pre-allocated storage slots. + /// Each slot is either uninitialized or contains a valid StoredBatch. + slots: Box<[UnsafeCell>]>, + + /// Number of committed (fully written) slots. + /// Invariant: all slots [0, committed_len) contain valid data. + committed_len: AtomicUsize, + + /// Total capacity (fixed at creation). + capacity: usize, + + /// Maximum sequence number seen. + max_seq: AtomicU64, + + /// Total row count across all committed batches. + total_rows: AtomicUsize, + + /// Estimated size in bytes (for flush threshold). + estimated_bytes: AtomicUsize, +} + +// SAFETY: Safe to share across threads because: +// - Single writer guarantee (architectural invariant) +// - Readers only access committed slots (index < committed_len) +// - Atomic operations provide proper synchronization +// - Slots are never modified after being written +unsafe impl Sync for LockFreeBatchStore {} +unsafe impl Send for LockFreeBatchStore {} + +impl LockFreeBatchStore { + /// Create a new store with the given capacity. + /// + /// # Arguments + /// + /// * `capacity` - Maximum number of batches. Should be sized based on + /// `max_memtable_size / expected_avg_batch_size`. + /// + /// # Panics + /// + /// Panics if capacity is 0. + pub fn with_capacity(capacity: usize) -> Self { + assert!(capacity > 0, "capacity must be > 0"); + + // Allocate uninitialized storage + let mut slots = Vec::with_capacity(capacity); + for _ in 0..capacity { + slots.push(UnsafeCell::new(MaybeUninit::uninit())); + } + + Self { + slots: slots.into_boxed_slice(), + committed_len: AtomicUsize::new(0), + capacity, + max_seq: AtomicU64::new(0), + total_rows: AtomicUsize::new(0), + estimated_bytes: AtomicUsize::new(0), + } + } + + /// Calculate recommended capacity from memtable size configuration. + /// + /// Uses an assumed average batch size of 64KB with 20% buffer. + pub fn recommended_capacity(max_memtable_bytes: usize) -> usize { + const AVG_BATCH_SIZE: usize = 64 * 1024; // 64KB + const BUFFER_FACTOR: f64 = 1.2; + + let estimated_batches = max_memtable_bytes / AVG_BATCH_SIZE; + let capacity = ((estimated_batches as f64) * BUFFER_FACTOR) as usize; + capacity.max(16) // Minimum 16 slots + } + + /// Returns the capacity. + #[inline] + pub fn capacity(&self) -> usize { + self.capacity + } + + /// Returns true if the store is full. + #[inline] + pub fn is_full(&self) -> bool { + self.committed_len.load(Ordering::Relaxed) >= self.capacity + } + + /// Returns the number of remaining slots. + #[inline] + pub fn remaining_capacity(&self) -> usize { + self.capacity + .saturating_sub(self.committed_len.load(Ordering::Relaxed)) + } + + // ========================================================================= + // Writer API (Single Writer Only) + // ========================================================================= + + /// Append a batch to the store. + /// + /// # Safety Requirements + /// + /// This method MUST only be called from the single writer task. + /// Concurrent calls from multiple threads cause undefined behavior. + /// + /// # Returns + /// + /// - `Ok(batch_id)` - The index of the appended batch + /// - `Err(StoreFull)` - The store is at capacity, needs flush + pub fn append(&self, batch: RecordBatch, seq: u64) -> Result { + // Load current length (Relaxed is fine - we're the only writer) + let idx = self.committed_len.load(Ordering::Relaxed); + + if idx >= self.capacity { + return Err(StoreFull); + } + + let num_rows = batch.num_rows(); + let estimated_size = Self::estimate_batch_size(&batch); + + let stored = StoredBatch::new(batch, seq); + + // SAFETY: + // 1. idx < capacity, so slot exists + // 2. Single writer guarantee - no concurrent writes to this slot + // 3. Slot at idx is uninitialized (never written before, append-only) + unsafe { + let slot_ptr = self.slots[idx].get(); + std::ptr::write(slot_ptr, MaybeUninit::new(stored)); + } + + // Update counters (Relaxed - just tracking, not synchronization) + self.max_seq.fetch_max(seq, Ordering::Relaxed); + self.total_rows.fetch_add(num_rows, Ordering::Relaxed); + self.estimated_bytes + .fetch_add(estimated_size, Ordering::Relaxed); + + // CRITICAL: Publish with Release ordering. + // This ensures all writes above are visible to readers + // who load committed_len with Acquire ordering. + self.committed_len.store(idx + 1, Ordering::Release); + + Ok(idx) + } + + /// Estimate the memory size of a RecordBatch. + fn estimate_batch_size(batch: &RecordBatch) -> usize { + batch + .columns() + .iter() + .map(|col| col.get_array_memory_size()) + .sum::() + + std::mem::size_of::() + } + + // ========================================================================= + // Reader API (Multiple Concurrent Readers) + // ========================================================================= + + /// Get the number of committed batches. + #[inline] + pub fn len(&self) -> usize { + self.committed_len.load(Ordering::Acquire) + } + + /// Check if empty. + #[inline] + pub fn is_empty(&self) -> bool { + self.len() == 0 + } + + /// Get the maximum sequence number. + #[inline] + pub fn max_sequence(&self) -> u64 { + self.max_seq.load(Ordering::Relaxed) + } + + /// Get total row count. + #[inline] + pub fn total_rows(&self) -> usize { + self.total_rows.load(Ordering::Relaxed) + } + + /// Get estimated size in bytes. + #[inline] + pub fn estimated_bytes(&self) -> usize { + self.estimated_bytes.load(Ordering::Relaxed) + } + + /// Get a reference to a batch by index. + /// + /// Returns `None` if index >= committed length. + /// + /// # Safety + /// + /// The returned reference is valid as long as `self` is not dropped. + /// This is safe because: + /// - We only access slots where index < committed_len (Acquire load) + /// - Slots are never modified after being written + /// - The store is append-only + #[inline] + pub fn get(&self, index: usize) -> Option<&StoredBatch> { + // Acquire ordering synchronizes with Release in append() + let len = self.committed_len.load(Ordering::Acquire); + + if index >= len { + return None; + } + + // SAFETY: + // 1. index < len, and len was loaded with Acquire ordering + // 2. The Release-Acquire pair ensures the write is visible + // 3. Slots are never modified after writing (append-only) + unsafe { + let slot_ptr = self.slots[index].get(); + Some((*slot_ptr).assume_init_ref()) + } + } + + /// Get the RecordBatch data at an index. + #[inline] + pub fn get_batch(&self, index: usize) -> Option<&RecordBatch> { + self.get(index).map(|s| &s.data) + } + + /// Get the sequence number at an index. + #[inline] + pub fn get_sequence(&self, index: usize) -> Option { + self.get(index).map(|s| s.seq) + } + + /// Iterate over all committed batches. + /// + /// The iterator captures a snapshot of the committed length at creation + /// time, so it will not see batches appended during iteration. + pub fn iter(&self) -> LockFreeBatchStoreIter<'_> { + let len = self.committed_len.load(Ordering::Acquire); + LockFreeBatchStoreIter { + store: self, + current: 0, + len, + } + } + + /// Get all batches as a Vec (clones the RecordBatch data). + pub fn to_vec(&self) -> Vec { + self.iter().map(|b| b.data.clone()).collect() + } + + /// Get all StoredBatches as a Vec (clones). + pub fn to_stored_vec(&self) -> Vec { + self.iter().cloned().collect() + } + + // ========================================================================= + // MVCC Visibility API + // ========================================================================= + + /// Get batches visible at a specific sequence number (MVCC read). + /// + /// A batch is visible if: + /// - Its sequence is 0 (legacy, always visible), OR + /// - Its sequence <= visibility_seq + pub fn visible_batches(&self, visibility_seq: u64) -> Vec<&StoredBatch> { + self.iter() + .filter(|b| b.seq == 0 || b.seq <= visibility_seq) + .collect() + } + + /// Get batch IDs (indices) visible at a specific sequence number. + pub fn visible_batch_ids(&self, visibility_seq: u64) -> Vec { + let len = self.committed_len.load(Ordering::Acquire); + (0..len) + .filter(|&i| { + // SAFETY: i < len, same as get() + let batch = unsafe { + let slot_ptr = self.slots[i].get(); + (*slot_ptr).assume_init_ref() + }; + batch.seq == 0 || batch.seq <= visibility_seq + }) + .collect() + } + + /// Check if a specific batch is visible at a sequence number. + #[inline] + pub fn is_batch_visible(&self, batch_id: usize, visibility_seq: u64) -> bool { + self.get(batch_id) + .map(|b| b.seq == 0 || b.seq <= visibility_seq) + .unwrap_or(false) + } + + /// Get visible RecordBatches (clones the data). + pub fn visible_record_batches(&self, visibility_seq: u64) -> Vec { + self.visible_batches(visibility_seq) + .into_iter() + .map(|b| b.data.clone()) + .collect() + } +} + +impl Drop for LockFreeBatchStore { + fn drop(&mut self) { + // Get the committed length directly (no atomic needed, we have &mut self) + let len = *self.committed_len.get_mut(); + + // Drop all initialized slots + for i in 0..len { + // SAFETY: slots [0, len) are initialized and we have exclusive access + unsafe { + let slot_ptr = self.slots[i].get(); + std::ptr::drop_in_place((*slot_ptr).as_mut_ptr()); + } + } + } +} + +/// Iterator over committed batches in a LockFreeBatchStore. +/// +/// This iterator captures a snapshot of the committed length at creation, +/// providing a consistent view even if new batches are appended during +/// iteration. +pub struct LockFreeBatchStoreIter<'a> { + store: &'a LockFreeBatchStore, + current: usize, + len: usize, +} + +impl<'a> Iterator for LockFreeBatchStoreIter<'a> { + type Item = &'a StoredBatch; + + fn next(&mut self) -> Option { + if self.current >= self.len { + return None; + } + + // SAFETY: current < len, which was captured with Acquire ordering + let batch = unsafe { + let slot_ptr = self.store.slots[self.current].get(); + (*slot_ptr).assume_init_ref() + }; + + self.current += 1; + Some(batch) + } + + fn size_hint(&self) -> (usize, Option) { + let remaining = self.len - self.current; + (remaining, Some(remaining)) + } +} + +impl ExactSizeIterator for LockFreeBatchStoreIter<'_> {} + +// ========================================================================= +// Tests +// ========================================================================= + +#[cfg(test)] +mod tests { + use super::*; + use arrow_array::Int32Array; + use arrow_schema::{DataType, Field, Schema as ArrowSchema}; + use std::sync::Arc; + + fn create_test_schema() -> Arc { + Arc::new(ArrowSchema::new(vec![ + Field::new("id", DataType::Int32, false), + Field::new("value", DataType::Int32, false), + ])) + } + + fn create_test_batch(num_rows: usize) -> RecordBatch { + let schema = create_test_schema(); + let ids: Vec = (0..num_rows as i32).collect(); + let values: Vec = ids.iter().map(|id| id * 10).collect(); + RecordBatch::try_new( + schema, + vec![ + Arc::new(Int32Array::from(ids)), + Arc::new(Int32Array::from(values)), + ], + ) + .unwrap() + } + + #[test] + fn test_create_store() { + let store = LockFreeBatchStore::with_capacity(10); + assert_eq!(store.capacity(), 10); + assert_eq!(store.len(), 0); + assert!(store.is_empty()); + assert!(!store.is_full()); + assert_eq!(store.remaining_capacity(), 10); + } + + #[test] + fn test_append_single() { + let store = LockFreeBatchStore::with_capacity(10); + let batch = create_test_batch(100); + + let id = store.append(batch, 1).unwrap(); + assert_eq!(id, 0); + assert_eq!(store.len(), 1); + assert!(!store.is_empty()); + assert_eq!(store.total_rows(), 100); + assert_eq!(store.max_sequence(), 1); + } + + #[test] + fn test_append_multiple() { + let store = LockFreeBatchStore::with_capacity(10); + + for i in 0..5 { + let batch = create_test_batch(10 * (i + 1)); + let id = store.append(batch, (i + 1) as u64).unwrap(); + assert_eq!(id, i); + } + + assert_eq!(store.len(), 5); + assert_eq!(store.total_rows(), 10 + 20 + 30 + 40 + 50); + assert_eq!(store.max_sequence(), 5); + } + + #[test] + fn test_capacity_limit() { + let store = LockFreeBatchStore::with_capacity(3); + + store.append(create_test_batch(10), 1).unwrap(); + store.append(create_test_batch(10), 2).unwrap(); + store.append(create_test_batch(10), 3).unwrap(); + + assert!(store.is_full()); + assert_eq!(store.remaining_capacity(), 0); + + let result = store.append(create_test_batch(10), 4); + assert!(result.is_err()); + assert_eq!(result.unwrap_err(), StoreFull); + } + + #[test] + fn test_get_batch() { + let store = LockFreeBatchStore::with_capacity(10); + + let batch1 = create_test_batch(10); + let batch2 = create_test_batch(20); + + store.append(batch1, 1).unwrap(); + store.append(batch2, 2).unwrap(); + + let retrieved1 = store.get(0).unwrap(); + assert_eq!(retrieved1.seq, 1); + assert_eq!(retrieved1.num_rows, 10); + + let retrieved2 = store.get(1).unwrap(); + assert_eq!(retrieved2.seq, 2); + assert_eq!(retrieved2.num_rows, 20); + + // Out of bounds + assert!(store.get(2).is_none()); + assert!(store.get(100).is_none()); + } + + #[test] + fn test_iter() { + let store = LockFreeBatchStore::with_capacity(10); + + for i in 0..5 { + store.append(create_test_batch(10), (i + 1) as u64).unwrap(); + } + + let batches: Vec<_> = store.iter().collect(); + assert_eq!(batches.len(), 5); + + for (i, batch) in batches.iter().enumerate() { + assert_eq!(batch.seq, (i + 1) as u64); + } + } + + #[test] + fn test_visibility_filtering() { + let store = LockFreeBatchStore::with_capacity(10); + + store.append(create_test_batch(10), 1).unwrap(); + store.append(create_test_batch(10), 2).unwrap(); + store.append(create_test_batch(10), 3).unwrap(); + store.append(create_test_batch(10), 4).unwrap(); + store.append(create_test_batch(10), 5).unwrap(); + + // At seq 3, should see batches with seq 1, 2, 3 + let visible = store.visible_batch_ids(3); + assert_eq!(visible, vec![0, 1, 2]); + + // At seq 5, should see all + let visible = store.visible_batch_ids(5); + assert_eq!(visible, vec![0, 1, 2, 3, 4]); + + // At seq 0, should see none (unless seq=0 which means always visible) + let visible = store.visible_batch_ids(0); + assert!(visible.is_empty()); + } + + #[test] + fn test_visibility_with_seq_zero() { + let store = LockFreeBatchStore::with_capacity(10); + + // seq=0 means always visible (legacy compatibility) + store.append(create_test_batch(10), 0).unwrap(); + store.append(create_test_batch(10), 2).unwrap(); + store.append(create_test_batch(10), 3).unwrap(); + + // At seq 1, should see batch 0 (seq=0, always visible) + let visible = store.visible_batch_ids(1); + assert_eq!(visible, vec![0]); + + // At seq 2, should see batch 0 and 1 + let visible = store.visible_batch_ids(2); + assert_eq!(visible, vec![0, 1]); + } + + #[test] + fn test_is_batch_visible() { + let store = LockFreeBatchStore::with_capacity(10); + + store.append(create_test_batch(10), 5).unwrap(); + + assert!(!store.is_batch_visible(0, 4)); // seq 5 > 4 + assert!(store.is_batch_visible(0, 5)); // seq 5 <= 5 + assert!(store.is_batch_visible(0, 6)); // seq 5 <= 6 + assert!(!store.is_batch_visible(1, 10)); // batch 1 doesn't exist + } + + #[test] + fn test_recommended_capacity() { + // 64MB memtable, 64KB avg batch = 1024 batches * 1.2 = ~1228 + let cap = LockFreeBatchStore::recommended_capacity(64 * 1024 * 1024); + assert!( + (1200..=1300).contains(&cap), + "capacity should be around 1200, got {}", + cap + ); + + // Very small memtable should get minimum capacity + let cap = LockFreeBatchStore::recommended_capacity(1024); + assert_eq!(cap, 16); // minimum + } + + #[test] + fn test_to_vec() { + let store = LockFreeBatchStore::with_capacity(10); + + let batch1 = create_test_batch(10); + let batch2 = create_test_batch(20); + + store.append(batch1, 1).unwrap(); + store.append(batch2, 2).unwrap(); + + let vec = store.to_vec(); + assert_eq!(vec.len(), 2); + assert_eq!(vec[0].num_rows(), 10); + assert_eq!(vec[1].num_rows(), 20); + } + + #[test] + fn test_concurrent_readers() { + use std::sync::Arc; + use std::thread; + + let store = Arc::new(LockFreeBatchStore::with_capacity(100)); + + // Pre-populate with some batches + for i in 0..50 { + store.append(create_test_batch(10), (i + 1) as u64).unwrap(); + } + + // Spawn multiple reader threads + let readers: Vec<_> = (0..4) + .map(|_| { + let reader_store = store.clone(); + thread::spawn(move || { + for _ in 0..100 { + let len = reader_store.len(); + assert_eq!(len, 50); + + // Verify we can read all batches + for i in 0..len { + let batch = reader_store.get(i); + assert!(batch.is_some()); + assert_eq!(batch.unwrap().num_rows, 10); + } + + // Verify iterator + let count = reader_store.iter().count(); + assert_eq!(count, 50); + + thread::yield_now(); + } + }) + }) + .collect(); + + for r in readers { + r.join().unwrap(); + } + } + + #[test] + fn test_concurrent_read_write() { + use std::sync::atomic::AtomicBool; + use std::sync::Arc; + use std::thread; + + let store = Arc::new(LockFreeBatchStore::with_capacity(200)); + let done = Arc::new(AtomicBool::new(false)); + + // Writer thread (single writer) + let writer_store = store.clone(); + let writer_done = done.clone(); + let writer = thread::spawn(move || { + for i in 0..100 { + writer_store + .append(create_test_batch(10), (i + 1) as u64) + .unwrap(); + thread::yield_now(); + } + writer_done.store(true, Ordering::Release); + }); + + // Reader threads (concurrent readers) + let readers: Vec<_> = (0..4) + .map(|_| { + let reader_store = store.clone(); + let reader_done = done.clone(); + thread::spawn(move || { + while !reader_done.load(Ordering::Acquire) { + let len = reader_store.len(); + + // Every batch we can see should be valid + for i in 0..len { + let batch = reader_store.get(i); + assert!(batch.is_some()); + } + + thread::yield_now(); + } + + // Final check - should see all 100 batches + assert_eq!(reader_store.len(), 100); + }) + }) + .collect(); + + writer.join().unwrap(); + for r in readers { + r.join().unwrap(); + } + } +} diff --git a/rust/lance/src/dataset/mem_wal/write/batch_write.rs b/rust/lance/src/dataset/mem_wal/write/batch_write.rs new file mode 100644 index 00000000000..8613462d540 --- /dev/null +++ b/rust/lance/src/dataset/mem_wal/write/batch_write.rs @@ -0,0 +1,606 @@ +// SPDX-License-Identifier: Apache-2.0 +// SPDX-FileCopyrightText: Copyright The Lance Authors + +//! Batch write handling with single writer task pattern. + +use std::sync::atomic::{AtomicU64, Ordering}; +use std::sync::Arc; +use std::time::Duration; + +use arrow_array::RecordBatch; +use lance_core::Result; +use tokio::sync::{mpsc, oneshot}; +use tracing::warn; + +use crate::dataset::mem_wal::config::RegionWriterConfig; + +/// Result of a durability notification. +/// +/// This is a simple enum that can be cloned, unlike `Result<(), Error>`. +#[derive(Clone, Debug, PartialEq, Eq)] +pub enum DurabilityResult { + /// Write is now durable. + Durable, + /// Write failed with an error message. + Failed(String), +} + +impl DurabilityResult { + /// Create a successful durability result. + pub fn ok() -> Self { + Self::Durable + } + + /// Create a failed durability result. + pub fn err(msg: impl Into) -> Self { + Self::Failed(msg.into()) + } + + /// Check if the result is durable. + pub fn is_ok(&self) -> bool { + matches!(self, Self::Durable) + } + + /// Convert to a Result. + pub fn into_result(self) -> Result<()> { + match self { + Self::Durable => Ok(()), + Self::Failed(msg) => Err(lance_core::Error::io(msg, snafu::location!())), + } + } +} + +/// Type alias for durability watchers. +pub type DurabilityWatcher = super::watchable_cell::WatchableOnceCellReader; + +/// Type alias for durability cells. +pub type DurabilityCell = super::watchable_cell::WatchableOnceCell; + +/// Name for the writer task (for logging). +pub const WRITE_BATCH_TASK_NAME: &str = "writer"; + +/// Message sent to the writer task for processing. +pub struct WriteBatchMessage { + /// The RecordBatch to write. + pub batch: RecordBatch, + /// Channel to send the result back to the caller. + pub done: oneshot::Sender>, +} + +impl std::fmt::Debug for WriteBatchMessage { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + f.debug_struct("WriteBatchMessage") + .field("batch_rows", &self.batch.num_rows()) + .field("batch_cols", &self.batch.num_columns()) + .finish() + } +} + +/// Result of a write batch operation. +#[derive(Debug)] +pub struct WriteBatchResult { + /// Batch ID in the MemTable. + pub batch_id: usize, + /// Sequence number assigned to this write. + pub seq: u64, + /// Watcher to await WAL durability. + pub durable_watcher: DurabilityWatcher, +} + +/// Statistics for backpressure monitoring. +#[derive(Debug, Default)] +pub struct BackpressureStats { + /// Number of times backpressure was applied. + pub backpressure_count: AtomicU64, + /// Total time spent waiting on backpressure (in milliseconds). + pub backpressure_wait_ms: AtomicU64, +} + +impl BackpressureStats { + /// Create new backpressure stats. + pub fn new() -> Self { + Self::default() + } + + /// Record a backpressure event. + pub fn record(&self, wait_ms: u64) { + self.backpressure_count.fetch_add(1, Ordering::Relaxed); + self.backpressure_wait_ms + .fetch_add(wait_ms, Ordering::Relaxed); + } + + /// Get the total backpressure count. + pub fn count(&self) -> u64 { + self.backpressure_count.load(Ordering::Relaxed) + } + + /// Get the total time spent waiting on backpressure. + pub fn total_wait_ms(&self) -> u64 { + self.backpressure_wait_ms.load(Ordering::Relaxed) + } +} + +/// Trait for providing backpressure state. +/// +/// Implemented by the writer to provide current memory usage for backpressure decisions. +pub trait BackpressureProvider: Send + Sync { + /// Get estimated WAL buffer size in bytes. + fn wal_buffer_bytes(&self) -> usize; + + /// Get estimated total immutable memtable size in bytes. + fn immutable_memtable_bytes(&self) -> usize; + + /// Get the number of immutable memtables waiting to flush. + fn immutable_memtable_count(&self) -> usize; + + /// Get a watcher for the oldest WAL durability. + fn oldest_wal_watcher(&self) -> Option; + + /// Get a watcher for the oldest immutable memtable flush. + fn oldest_memtable_watcher(&self) -> Option; +} + +/// Backpressure controller for managing write flow. +/// +/// Handles backpressure implementation in db.rs. +pub struct BackpressureController { + /// Configuration. + config: RegionWriterConfig, + /// Stats for monitoring. + stats: Arc, +} + +impl BackpressureController { + /// Create a new backpressure controller. + pub fn new(config: RegionWriterConfig) -> Self { + Self { + config, + stats: Arc::new(BackpressureStats::new()), + } + } + + /// Get backpressure stats. + pub fn stats(&self) -> &Arc { + &self.stats + } + + /// Check and apply backpressure if needed. + /// + /// This method blocks if the system is under memory pressure, waiting for + /// the oldest WAL or memtable to be flushed. + /// + /// Handles `maybe_apply_backpressure` in db.rs:292-385. + pub async fn maybe_apply_backpressure( + &self, + provider: &dyn BackpressureProvider, + ) -> Result<()> { + loop { + // Calculate total unflushed bytes + let wal_bytes = provider.wal_buffer_bytes(); + let imm_bytes = provider.immutable_memtable_bytes(); + let total_unflushed = wal_bytes + imm_bytes; + + // Check memory threshold + if total_unflushed < self.config.max_unflushed_bytes { + // Also check immutable memtable count + let imm_count = provider.immutable_memtable_count(); + if imm_count < self.config.max_immutable_memtables { + return Ok(()); + } + } + + // Need to apply backpressure - wait for oldest WAL or memtable to flush + let start = std::time::Instant::now(); + + let oldest_wal = provider.oldest_wal_watcher(); + let oldest_memtable = provider.oldest_memtable_watcher(); + + match (oldest_wal, oldest_memtable) { + (Some(mut wal_watcher), Some(mut mem_watcher)) => { + // Wait for either to complete or timeout + tokio::select! { + _ = wal_watcher.await_value() => {} + _ = mem_watcher.await_value() => {} + _ = tokio::time::sleep(self.config.backpressure_timeout) => { + warn!( + "Backpressure wait timeout after {:?}, \ + unflushed_bytes={}, imm_memtables={}", + self.config.backpressure_timeout, + total_unflushed, + provider.immutable_memtable_count() + ); + } + } + } + (Some(mut wal_watcher), None) => { + tokio::select! { + _ = wal_watcher.await_value() => {} + _ = tokio::time::sleep(self.config.backpressure_timeout) => { + warn!("Backpressure wait timeout (WAL only)"); + } + } + } + (None, Some(mut mem_watcher)) => { + tokio::select! { + _ = mem_watcher.await_value() => {} + _ = tokio::time::sleep(self.config.backpressure_timeout) => { + warn!("Backpressure wait timeout (memtable only)"); + } + } + } + (None, None) => { + // No watchers available, just wait a bit + tokio::time::sleep(Duration::from_millis(100)).await; + } + } + + let wait_ms = start.elapsed().as_millis() as u64; + self.stats.record(wait_ms); + } + } +} + +/// Sender for write batch messages. +pub type WriteBatchSender = mpsc::UnboundedSender; + +/// Receiver for write batch messages. +pub type WriteBatchReceiver = mpsc::UnboundedReceiver; + +/// Create a new write batch channel. +pub fn write_batch_channel() -> (WriteBatchSender, WriteBatchReceiver) { + mpsc::unbounded_channel() +} + +/// Handler for processing write batch messages. +/// +/// Runs in a dedicated background task and processes all writes sequentially. +pub struct WriteBatchHandler { + state: S, + /// Simple sequence counter for batch ordering. + next_seq: std::sync::atomic::AtomicU64, + stats: super::SharedWriteStats, +} + +impl WriteBatchHandler { + /// Create a new write batch handler. + pub fn new(state: S, stats: super::SharedWriteStats) -> Self { + Self { + state, + next_seq: std::sync::atomic::AtomicU64::new(1), + stats, + } + } +} + +/// Trait for writer state operations needed by WriteBatchHandler. +/// +/// This abstraction allows the handler to be tested without full RegionWriter. +#[async_trait::async_trait] +pub trait WriterStateOps: Send + Sync { + /// Insert a batch into the memtable (includes index updates). + async fn insert_batch(&self, batch: RecordBatch, seq: u64) -> Result; + + /// Append batch_id to WAL buffer and get durability watcher. + fn append_to_wal(&self, batch_id: usize) -> DurabilityWatcher; + + /// Maybe trigger WAL flush based on size threshold. + fn maybe_trigger_wal_flush(&self) -> Result<()>; + + /// Check if memtable flush is needed and trigger if so. + async fn maybe_trigger_memtable_flush(&self) -> Result<()>; +} + +#[async_trait::async_trait] +impl + crate::dataset::mem_wal::dispatcher::MessageHandler + for WriteBatchHandler +{ + async fn handle(&mut self, message: WriteBatchMessage) -> Result<()> { + let WriteBatchMessage { batch, done } = message; + let start = std::time::Instant::now(); + + let seq = self + .next_seq + .fetch_add(1, std::sync::atomic::Ordering::Relaxed); + + let batch_id = match self.state.insert_batch(batch, seq).await { + Ok(id) => id, + Err(e) => { + let _ = done.send(Err(e)); + return Ok(()); + } + }; + + let durable_watcher = self.state.append_to_wal(batch_id); + + if let Err(e) = self.state.maybe_trigger_wal_flush() { + tracing::warn!("Failed to trigger WAL flush: {}", e); + } + + if let Err(e) = self.state.maybe_trigger_memtable_flush().await { + tracing::warn!("Failed to trigger memtable flush: {}", e); + } + + self.stats.record_put(start.elapsed()); + + let result = WriteBatchResult { + batch_id, + seq, + durable_watcher, + }; + let _ = done.send(Ok(result)); + + Ok(()) + } +} + +#[cfg(test)] +mod tests { + use super::*; + use std::sync::atomic::AtomicUsize; + + struct MockBackpressureProvider { + wal_bytes: AtomicUsize, + imm_bytes: AtomicUsize, + imm_count: AtomicUsize, + } + + impl MockBackpressureProvider { + fn new(wal_bytes: usize, imm_bytes: usize, imm_count: usize) -> Self { + Self { + wal_bytes: AtomicUsize::new(wal_bytes), + imm_bytes: AtomicUsize::new(imm_bytes), + imm_count: AtomicUsize::new(imm_count), + } + } + } + + impl BackpressureProvider for MockBackpressureProvider { + fn wal_buffer_bytes(&self) -> usize { + self.wal_bytes.load(Ordering::Relaxed) + } + + fn immutable_memtable_bytes(&self) -> usize { + self.imm_bytes.load(Ordering::Relaxed) + } + + fn immutable_memtable_count(&self) -> usize { + self.imm_count.load(Ordering::Relaxed) + } + + fn oldest_wal_watcher(&self) -> Option { + None + } + + fn oldest_memtable_watcher(&self) -> Option { + None + } + } + + #[tokio::test] + async fn test_no_backpressure_when_under_threshold() { + let config = RegionWriterConfig::default().with_max_unflushed_bytes(1024 * 1024); // 1MB + + let controller = BackpressureController::new(config); + let provider = MockBackpressureProvider::new(100, 100, 0); + + // Should return immediately - well under threshold + controller + .maybe_apply_backpressure(&provider) + .await + .unwrap(); + + assert_eq!(controller.stats().count(), 0); + } + + #[tokio::test] + async fn test_backpressure_with_watcher() { + let config = RegionWriterConfig::default() + .with_max_unflushed_bytes(100) // Very low threshold + .with_backpressure_timeout(Duration::from_millis(50)); + + let controller = BackpressureController::new(config); + + // Provider that exceeds threshold but has no watchers + #[allow(dead_code)] + struct HighPressureProvider; + impl BackpressureProvider for HighPressureProvider { + fn wal_buffer_bytes(&self) -> usize { + 1000 + } + fn immutable_memtable_bytes(&self) -> usize { + 1000 + } + fn immutable_memtable_count(&self) -> usize { + 0 + } + fn oldest_wal_watcher(&self) -> Option { + None + } + fn oldest_memtable_watcher(&self) -> Option { + None + } + } + + // This will timeout since there are no watchers, but provider always reports high pressure + // To avoid infinite loop, we need a provider that eventually reports low pressure + struct EventuallyLowProvider { + call_count: AtomicUsize, + } + impl BackpressureProvider for EventuallyLowProvider { + fn wal_buffer_bytes(&self) -> usize { + if self.call_count.fetch_add(1, Ordering::Relaxed) > 0 { + 0 // After first check, report low + } else { + 1000 + } + } + fn immutable_memtable_bytes(&self) -> usize { + 0 + } + fn immutable_memtable_count(&self) -> usize { + 0 + } + fn oldest_wal_watcher(&self) -> Option { + None + } + fn oldest_memtable_watcher(&self) -> Option { + None + } + } + + let provider = EventuallyLowProvider { + call_count: AtomicUsize::new(0), + }; + + controller + .maybe_apply_backpressure(&provider) + .await + .unwrap(); + + // Should have recorded at least one backpressure event + assert!(controller.stats().count() >= 1); + } + + // Tests for WriteBatchHandler + mod handler_tests { + use super::*; + use crate::dataset::mem_wal::dispatcher::MessageHandler; + use crate::dataset::mem_wal::write::{new_shared_stats, WatchableOnceCell}; + use arrow_array::{Int32Array, RecordBatch as ArrowRecordBatch}; + use arrow_schema::{DataType, Field, Schema as ArrowSchema}; + use std::sync::Arc; + use tokio::sync::RwLock; + + /// Mock implementation of WriterStateOps for testing. + struct MockWriterState { + next_batch_id: RwLock, + inserted_batches: RwLock>, + wal_append_count: AtomicUsize, + } + + impl MockWriterState { + fn new() -> Self { + Self { + next_batch_id: RwLock::new(0), + inserted_batches: RwLock::new(Vec::new()), + wal_append_count: AtomicUsize::new(0), + } + } + } + + #[async_trait::async_trait] + impl WriterStateOps for Arc { + async fn insert_batch(&self, batch: RecordBatch, seq: u64) -> Result { + let mut id = self.next_batch_id.write().await; + let batch_id = *id; + *id += 1; + self.inserted_batches.write().await.push((batch, seq)); + Ok(batch_id) + } + + fn append_to_wal(&self, _batch_id: usize) -> DurabilityWatcher { + self.wal_append_count.fetch_add(1, Ordering::Relaxed); + // Return a watcher that's immediately durable + let cell = WatchableOnceCell::new(); + cell.write(DurabilityResult::ok()); + cell.reader() + } + + fn maybe_trigger_wal_flush(&self) -> Result<()> { + Ok(()) + } + + async fn maybe_trigger_memtable_flush(&self) -> Result<()> { + Ok(()) + } + } + + fn create_test_batch(num_rows: usize) -> RecordBatch { + let schema = Arc::new(ArrowSchema::new(vec![Field::new( + "id", + DataType::Int32, + false, + )])); + let ids: Vec = (0..num_rows as i32).collect(); + ArrowRecordBatch::try_new(schema, vec![Arc::new(Int32Array::from(ids))]).unwrap() + } + + #[tokio::test] + async fn test_write_batch_handler_basic() { + let state = Arc::new(MockWriterState::new()); + let stats = new_shared_stats(); + + let mut handler = WriteBatchHandler::new(state.clone(), stats.clone()); + + // Create and send a write batch message + let (tx, rx) = oneshot::channel(); + let batch = create_test_batch(10); + let message = WriteBatchMessage { batch, done: tx }; + + // Process the message + handler.handle(message).await.unwrap(); + + // Verify result + let result = rx.await.unwrap().unwrap(); + assert_eq!(result.batch_id, 0); + assert_eq!(result.seq, 1); // First sequence number + + // Verify state updates + assert_eq!(state.inserted_batches.read().await.len(), 1); + assert_eq!(state.wal_append_count.load(Ordering::Relaxed), 1); + } + + #[tokio::test] + async fn test_write_batch_handler_multiple_writes() { + let state = Arc::new(MockWriterState::new()); + let stats = new_shared_stats(); + + let mut handler = WriteBatchHandler::new(state.clone(), stats.clone()); + + // Process multiple batches + for i in 0..5 { + let (tx, rx) = oneshot::channel(); + let batch = create_test_batch(10); + let message = WriteBatchMessage { batch, done: tx }; + + handler.handle(message).await.unwrap(); + + let result = rx.await.unwrap().unwrap(); + assert_eq!(result.batch_id, i); + assert_eq!(result.seq, (i + 1) as u64); + } + + // Verify all batches were inserted + assert_eq!(state.inserted_batches.read().await.len(), 5); + assert_eq!(state.wal_append_count.load(Ordering::Relaxed), 5); + } + + #[tokio::test] + async fn test_write_batch_handler_sequence_monotonic() { + let state = Arc::new(MockWriterState::new()); + let stats = new_shared_stats(); + + let mut handler = WriteBatchHandler::new(state.clone(), stats); + + let mut seqs = Vec::new(); + for _ in 0..10 { + let (tx, rx) = oneshot::channel(); + let batch = create_test_batch(5); + let message = WriteBatchMessage { batch, done: tx }; + + handler.handle(message).await.unwrap(); + let result = rx.await.unwrap().unwrap(); + seqs.push(result.seq); + } + + // Verify sequences are strictly increasing + for i in 1..seqs.len() { + assert!( + seqs[i] > seqs[i - 1], + "Sequences must be strictly increasing" + ); + } + } + } +} diff --git a/rust/lance/src/dataset/mem_wal/write/flush.rs b/rust/lance/src/dataset/mem_wal/write/flush.rs new file mode 100644 index 00000000000..240fbfaf622 --- /dev/null +++ b/rust/lance/src/dataset/mem_wal/write/flush.rs @@ -0,0 +1,948 @@ +// SPDX-License-Identifier: Apache-2.0 +// SPDX-FileCopyrightText: Copyright The Lance Authors + +//! MemTable flush to persistent storage. +//! +//! The flusher persists MemTable data as a flushed generation: +//! 1. Creates a Lance table directory with fragments +//! 2. Serializes indexes to the `_indices/` subdirectory +//! 3. Serializes bloom filter +//! 4. Updates the region manifest atomically + +use std::sync::Arc; + +use bytes::Bytes; +use lance_core::{Error, Result}; +use lance_index::mem_wal::{FlushedGeneration, RegionManifest}; +use lance_index::scalar::ScalarIndexParams; +use lance_index::IndexType; +use lance_io::object_store::ObjectStore; +use lance_table::format::IndexMetadata; +use object_store::path::Path; +use snafu::location; +use tracing::{debug, info, warn}; +use uuid::Uuid; + +use super::indexes::MemIndexConfig; +use super::memtable::MemTable; +use crate::dataset::mem_wal::epoch::EpochGuard; +use crate::dataset::mem_wal::manifest::RegionManifestStore; +use crate::dataset::mem_wal::util::{flushed_memtable_path, generate_random_hash}; +use crate::Dataset; + +/// Result of a MemTable flush operation. +#[derive(Debug, Clone)] +pub struct FlushResult { + /// The flushed generation info. + pub generation: FlushedGeneration, + /// Number of rows flushed. + pub rows_flushed: usize, + /// Number of fragments created. + pub fragments_created: usize, + /// WAL ID up to which data is covered. + pub covered_wal_id: u64, +} + +/// Flushes MemTable data to persistent storage. +pub struct MemTableFlusher { + /// Object store for writing files. + object_store: Arc, + /// Base path within the object store. + base_path: Path, + /// Base URI for constructing dataset URIs. + base_uri: String, + /// Region ID. + region_id: Uuid, + /// Manifest store for atomic updates. + manifest_store: Arc, +} + +impl MemTableFlusher { + /// Create a new MemTable flusher. + /// + /// # Arguments + /// + /// * `object_store` - Object store for writing files + /// * `base_path` - Base path within the object store (from ObjectStore::from_uri) + /// * `base_uri` - Base URI (e.g., "s3://bucket/path" or "file:///path") + /// * `region_id` - Region UUID + /// * `manifest_store` - Manifest store for atomic updates + pub fn new( + object_store: Arc, + base_path: Path, + base_uri: impl Into, + region_id: Uuid, + manifest_store: Arc, + ) -> Self { + Self { + object_store, + base_path, + base_uri: base_uri.into(), + region_id, + manifest_store, + } + } + + /// Construct a full URI for a path within the base dataset. + fn path_to_uri(&self, path: &Path) -> String { + // Remove base_path prefix from path to get relative path + let path_str = path.as_ref(); + let base_str = self.base_path.as_ref(); + + let relative = if let Some(stripped) = path_str.strip_prefix(base_str) { + stripped.trim_start_matches('/') + } else { + path_str + }; + + // Combine base_uri with relative path + let base = self.base_uri.trim_end_matches('/'); + if relative.is_empty() { + base.to_string() + } else { + format!("{}/{}", base, relative) + } + } + + /// Flush the MemTable to storage. + /// + /// Creates a flushed generation containing: + /// - Data files (Lance format fragments) + /// - Index files (in `_indices/` subdirectory) + /// - Bloom filter (bloom_filter.bin) + /// + /// # Arguments + /// + /// * `memtable` - The MemTable to flush + /// * `epoch_guard` - Guard for fencing checks + /// + /// # Returns + /// + /// The flush result containing generation info and statistics. + pub async fn flush( + &self, + memtable: &MemTable, + epoch_guard: &EpochGuard, + ) -> Result { + // 1. Check if writer has been fenced + epoch_guard.check_fenced().await?; + + if memtable.row_count() == 0 { + return Err(Error::invalid_input( + "Cannot flush empty MemTable", + location!(), + )); + } + + // Verify all fragments are flushed to WAL + if !memtable.all_flushed_to_wal() { + return Err(Error::invalid_input( + "MemTable has unflushed fragments - WAL flush required first", + location!(), + )); + } + + // 2. Generate random prefix for directory name + let random_hash = generate_random_hash(); + let generation = memtable.generation(); + + // 3. Create flushed generation directory + let gen_path = + flushed_memtable_path(&self.base_path, &self.region_id, &random_hash, generation); + + info!( + "Flushing MemTable generation {} to {} ({} rows, {} batches)", + generation, + gen_path, + memtable.row_count(), + memtable.batch_count() + ); + + // 4. Write data as a Lance Dataset + // Dataset::write creates the full directory structure including _versions/, data/ + self.write_data_file(&gen_path, memtable).await?; + + // 5. Serialize bloom filter (inside the generation directory) + let bloom_path = gen_path.child("bloom_filter.bin"); + self.write_bloom_filter(&bloom_path, memtable.bloom_filter()) + .await?; + + // 6. Update region manifest + let last_wal_id = memtable.last_flushed_wal_id(); + let new_manifest = self + .update_manifest(epoch_guard, generation, gen_path.as_ref(), last_wal_id) + .await?; + + info!( + "Flushed generation {} for region {} (manifest version {})", + generation, self.region_id, new_manifest.version + ); + + Ok(FlushResult { + generation: FlushedGeneration { + generation, + path: gen_path.to_string(), + }, + rows_flushed: memtable.row_count(), + fragments_created: memtable.batch_count(), + covered_wal_id: last_wal_id, + }) + } + + /// Write MemTable data to a single Lance Dataset file. + /// + /// Writes all batches from the BatchStore to a single Lance file for + /// optimal read performance. Creates a proper Lance Dataset structure with: + /// - `_versions/` directory for version manifests + /// - `data/` directory for fragment data files + async fn write_data_file(&self, path: &Path, memtable: &MemTable) -> Result<()> { + use arrow_array::RecordBatchIterator; + + if memtable.row_count() == 0 { + return Ok(()); + } + + // Get all batches directly from BatchStore + let batches = memtable.scan_batches().await?; + if batches.is_empty() { + return Ok(()); + } + + // Construct the full URI for the dataset + let uri = self.path_to_uri(path); + + // Write all batches as a single Lance file + let reader = + RecordBatchIterator::new(batches.into_iter().map(Ok), memtable.schema().clone()); + Dataset::write(reader, &uri, None).await?; + + debug!("Wrote Lance Dataset to {}", uri); + Ok(()) + } + + /// Write bloom filter to storage. + async fn write_bloom_filter( + &self, + path: &Path, + bloom: &lance_index::scalar::bloomfilter::sbbf::Sbbf, + ) -> Result<()> { + let data = bloom.to_bytes(); + self.object_store + .inner + .put(path, Bytes::from(data).into()) + .await + .map_err(|e| Error::io(format!("Failed to write bloom filter: {}", e), location!()))?; + debug!("Wrote bloom filter to {}", path); + Ok(()) + } + + /// Flush the MemTable to storage with indexes. + /// + /// Creates a flushed generation containing: + /// - Data files (Lance format fragments) + /// - Index files for BTree indexes + /// - Bloom filter (bloom_filter.bin) + /// + /// # Arguments + /// + /// * `memtable` - The MemTable to flush + /// * `epoch_guard` - Guard for fencing checks + /// * `index_configs` - Index configurations to create + /// + /// # Returns + /// + /// The flush result containing generation info and statistics. + pub async fn flush_with_indexes( + &self, + memtable: &MemTable, + epoch_guard: &EpochGuard, + index_configs: &[MemIndexConfig], + ) -> Result { + // 1. Check if writer has been fenced + epoch_guard.check_fenced().await?; + + if memtable.row_count() == 0 { + return Err(Error::invalid_input( + "Cannot flush empty MemTable", + location!(), + )); + } + + // Verify all fragments are flushed to WAL + if !memtable.all_flushed_to_wal() { + return Err(Error::invalid_input( + "MemTable has unflushed fragments - WAL flush required first", + location!(), + )); + } + + // 2. Generate random prefix for directory name + let random_hash = generate_random_hash(); + let generation = memtable.generation(); + + // 3. Create flushed generation directory + let gen_path = + flushed_memtable_path(&self.base_path, &self.region_id, &random_hash, generation); + + info!( + "Flushing MemTable generation {} with indexes to {} ({} rows, {} batches)", + generation, + gen_path, + memtable.row_count(), + memtable.batch_count() + ); + + // 4. Write data as a Lance Dataset + self.write_data_file(&gen_path, memtable).await?; + + // 5. Create BTree indexes using preprocessed data from in-memory indexes + let created_indexes = self + .create_indexes(&gen_path, index_configs, memtable.indexes()) + .await?; + if !created_indexes.is_empty() { + info!( + "Created {} BTree indexes on flushed generation {}", + created_indexes.len(), + generation + ); + } + + // 6. Create IVF-PQ indexes from in-memory data + if let Some(registry) = memtable.indexes() { + for config in index_configs { + if let MemIndexConfig::IvfPq(ivf_pq_config) = config { + if let Some(mem_index) = registry.get_ivf_pq(&ivf_pq_config.name) { + let _index_meta = self + .create_ivf_pq_index(&gen_path, ivf_pq_config, mem_index) + .await?; + info!( + "Created IVF-PQ index '{}' on flushed generation {}", + ivf_pq_config.name, generation + ); + } + } + } + } + + // 7. Serialize bloom filter + let bloom_path = gen_path.child("bloom_filter.bin"); + self.write_bloom_filter(&bloom_path, memtable.bloom_filter()) + .await?; + + // 8. Update region manifest + let last_wal_id = memtable.last_flushed_wal_id(); + let new_manifest = self + .update_manifest(epoch_guard, generation, gen_path.as_ref(), last_wal_id) + .await?; + + info!( + "Flushed generation {} for region {} (manifest version {})", + generation, self.region_id, new_manifest.version + ); + + Ok(FlushResult { + generation: FlushedGeneration { + generation, + path: gen_path.to_string(), + }, + rows_flushed: memtable.row_count(), + fragments_created: memtable.batch_count(), + covered_wal_id: last_wal_id, + }) + } + + /// Create indexes on a flushed dataset. + /// + /// Opens the flushed dataset and creates BTree indexes using CreateIndexBuilder. + /// When in-memory indexes are available, uses preprocessed (already sorted) data + /// to skip re-reading and re-sorting the data. + /// + /// IVF-PQ indexes are skipped since they require brute-force search on + /// small flushed generations (the in-memory index handles the fast path). + async fn create_indexes( + &self, + gen_path: &Path, + index_configs: &[MemIndexConfig], + mem_indexes: Option<&super::indexes::IndexRegistry>, + ) -> Result> { + use arrow_array::RecordBatchIterator; + + use crate::index::CreateIndexBuilder; + + let uri = self.path_to_uri(gen_path); + + // Filter to only BTree indexes (IVF-PQ and FTS are handled differently) + let btree_configs: Vec<_> = index_configs + .iter() + .filter_map(|c| match c { + MemIndexConfig::BTree(cfg) => Some(cfg), + MemIndexConfig::IvfPq(_) => { + // IVF-PQ indexes are handled separately via create_ivf_pq_index + None + } + MemIndexConfig::Fts(_) => { + // FTS indexes require special handling (tantivy integration) + warn!( + "Skipping FTS index '{}' for flushed generation (not yet implemented)", + c.name() + ); + None + } + }) + .collect(); + + if btree_configs.is_empty() { + return Ok(vec![]); + } + + // Open the flushed dataset + let mut dataset = Dataset::open(&uri).await?; + let mut created_indexes = Vec::new(); + + // Create each BTree index + for btree_cfg in btree_configs { + debug!( + "Creating BTree index '{}' on column '{}' for flushed generation", + btree_cfg.name, btree_cfg.column + ); + + let params = ScalarIndexParams::default(); + let mut builder = CreateIndexBuilder::new( + &mut dataset, + &[btree_cfg.column.as_str()], + IndexType::BTree, + ¶ms, + ) + .name(btree_cfg.name.clone()); + + // Try to get preprocessed data from in-memory index + // This data is already sorted (from skip-list iteration order) + if let Some(registry) = mem_indexes { + if let Some(btree_index) = registry.get_btree(&btree_cfg.name) { + let training_batches = btree_index.to_training_batches(8192)?; + if !training_batches.is_empty() { + let schema = training_batches[0].schema(); + let reader = + RecordBatchIterator::new(training_batches.into_iter().map(Ok), schema); + builder = builder.preprocessed_data(Box::new(reader)); + debug!( + "Using preprocessed data for BTree index '{}' (already sorted)", + btree_cfg.name + ); + } + } + } + + let index_meta = builder.execute_uncommitted().await?; + + created_indexes.push(index_meta.clone()); + + // Commit the index to the dataset + use crate::dataset::transaction::{Operation, Transaction}; + let transaction = Transaction::new( + index_meta.dataset_version, + Operation::CreateIndex { + new_indices: vec![index_meta], + removed_indices: vec![], + }, + None, + ); + dataset + .apply_commit(transaction, &Default::default(), &Default::default()) + .await?; + + debug!("Created and committed BTree index '{}'", btree_cfg.name); + } + + Ok(created_indexes) + } + + /// Create an IVF-PQ index from in-memory data. + /// + /// Writes the index files directly using the pre-computed partition assignments + /// and PQ codes from the in-memory index. + async fn create_ivf_pq_index( + &self, + gen_path: &Path, + config: &super::indexes::IvfPqIndexConfig, + mem_index: &super::indexes::IvfPqMemIndex, + ) -> Result { + use arrow_schema::{Field, Schema as ArrowSchema}; + use lance_core::ROW_ID; + use lance_file::writer::FileWriter; + use lance_index::pb; + use lance_index::vector::flat::index::FlatIndex; + use lance_index::vector::ivf::storage::IVF_METADATA_KEY; + use lance_index::vector::quantizer::{ + Quantization, QuantizationMetadata, QuantizerMetadata, + }; + use lance_index::vector::storage::STORAGE_METADATA_KEY; + use lance_index::vector::v3::subindex::IvfSubIndex; + use lance_index::vector::{DISTANCE_TYPE_KEY, PQ_CODE_COLUMN}; + use lance_index::{ + IndexMetadata as IndexMetaSchema, INDEX_AUXILIARY_FILE_NAME, INDEX_FILE_NAME, + INDEX_METADATA_SCHEMA_KEY, + }; + use prost::Message; + use std::sync::Arc; + + let index_uuid = uuid::Uuid::new_v4(); + let index_dir = gen_path.child("_indices").child(index_uuid.to_string()); + + // Get partition data from in-memory index + let partition_batches = mem_index.to_partition_batches()?; + let ivf_model = mem_index.ivf_model(); + let pq = mem_index.pq(); + let distance_type = mem_index.distance_type(); + + // Create storage file schema: _rowid, __pq_code + let pq_code_len = pq.num_sub_vectors * pq.num_bits as usize / 8; + let storage_schema: ArrowSchema = ArrowSchema::new(vec![ + Field::new(ROW_ID, arrow_schema::DataType::UInt64, false), + Field::new( + PQ_CODE_COLUMN, + arrow_schema::DataType::FixedSizeList( + Arc::new(Field::new("item", arrow_schema::DataType::UInt8, false)), + pq_code_len as i32, + ), + false, + ), + ]); + + // Create index file schema (FlatIndex schema) + let index_schema: ArrowSchema = FlatIndex::schema().as_ref().clone(); + + // Create file writers + let storage_path = index_dir.child(INDEX_AUXILIARY_FILE_NAME); + let index_path = index_dir.child(INDEX_FILE_NAME); + + let mut storage_writer = FileWriter::try_new( + self.object_store.create(&storage_path).await?, + (&storage_schema).try_into()?, + Default::default(), + )?; + let mut index_writer = FileWriter::try_new( + self.object_store.create(&index_path).await?, + (&index_schema).try_into()?, + Default::default(), + )?; + + // Track IVF partitions for both files + let mut storage_ivf = lance_index::vector::ivf::storage::IvfModel::empty(); + + // Get centroids (required for IVF index) + let centroids = ivf_model + .centroids + .clone() + .ok_or_else(|| Error::io("IVF model has no centroids", location!()))?; + let mut index_ivf = lance_index::vector::ivf::storage::IvfModel::new(centroids, None); + let mut partition_index_metadata = Vec::with_capacity(ivf_model.num_partitions()); + + // Create a map of partition_id -> batch for quick lookup + let partition_map: std::collections::HashMap = + partition_batches.into_iter().collect(); + + // Write each partition + for part_id in 0..ivf_model.num_partitions() { + if let Some(batch) = partition_map.get(&part_id) { + // Transpose PQ codes for storage (column-major layout) + let transposed_batch = transpose_pq_batch(batch, pq_code_len)?; + + // Write storage data + storage_writer.write_batch(&transposed_batch).await?; + storage_ivf.add_partition(transposed_batch.num_rows() as u32); + + // FlatIndex is empty (no additional sub-index data needed for IVF-PQ) + index_ivf.add_partition(0); + partition_index_metadata.push(String::new()); + } else { + // Empty partition + storage_ivf.add_partition(0); + index_ivf.add_partition(0); + partition_index_metadata.push(String::new()); + } + } + + // Write storage file metadata + let storage_ivf_pb = pb::Ivf::try_from(&storage_ivf)?; + storage_writer.add_schema_metadata(DISTANCE_TYPE_KEY, distance_type.to_string()); + let ivf_buffer_pos = storage_writer + .add_global_buffer(storage_ivf_pb.encode_to_vec().into()) + .await?; + storage_writer.add_schema_metadata(IVF_METADATA_KEY, ivf_buffer_pos.to_string()); + + // Write PQ metadata + let pq_metadata = pq.metadata(Some(QuantizationMetadata { + codebook_position: Some(0), + codebook: None, + transposed: true, + })); + if let Some(extra_metadata) = pq_metadata.extra_metadata()? { + let idx = storage_writer.add_global_buffer(extra_metadata).await?; + let mut pq_meta = pq_metadata; + pq_meta.set_buffer_index(idx); + let storage_partition_metadata = vec![serde_json::to_string(&pq_meta)?]; + storage_writer.add_schema_metadata( + STORAGE_METADATA_KEY, + serde_json::to_string(&storage_partition_metadata)?, + ); + } + + // Write index file metadata + let index_ivf_pb = pb::Ivf::try_from(&index_ivf)?; + let index_metadata = IndexMetaSchema { + index_type: "IVF_PQ".to_string(), + distance_type: distance_type.to_string(), + }; + index_writer.add_schema_metadata( + INDEX_METADATA_SCHEMA_KEY, + serde_json::to_string(&index_metadata)?, + ); + let ivf_buffer_pos = index_writer + .add_global_buffer(index_ivf_pb.encode_to_vec().into()) + .await?; + index_writer.add_schema_metadata(IVF_METADATA_KEY, ivf_buffer_pos.to_string()); + index_writer.add_schema_metadata( + FlatIndex::metadata_key(), + serde_json::to_string(&partition_index_metadata)?, + ); + + // Finish writing + storage_writer.finish().await?; + index_writer.finish().await?; + + debug!( + "Created IVF-PQ index '{}' at {}", + config.name, + index_dir.as_ref() + ); + + // Create index metadata for commit + let index_meta = IndexMetadata { + uuid: index_uuid, + name: config.name.clone(), + fields: vec![0], // Will be updated when committing + dataset_version: 0, + fragment_bitmap: None, + index_details: None, + base_id: None, + created_at: Some(chrono::Utc::now()), + index_version: 1, + }; + + Ok(index_meta) + } + + /// Update the region manifest with the new flushed generation. + async fn update_manifest( + &self, + epoch_guard: &EpochGuard, + generation: u64, + gen_path: &str, + covered_wal_id: u64, + ) -> Result { + // Read current manifest + let current = self + .manifest_store + .read_latest() + .await? + .ok_or_else(|| Error::io("Region manifest not found", location!()))?; + + // Create updated manifest + let mut flushed_generations = current.flushed_generations.clone(); + flushed_generations.push(FlushedGeneration { + generation, + path: gen_path.to_string(), + }); + + let new_manifest = RegionManifest { + version: current.version + 1, + replay_after_wal_id: covered_wal_id, + wal_id_last_seen: current.wal_id_last_seen.max(covered_wal_id), + current_generation: generation + 1, + flushed_generations, + ..current + }; + + // Write with fencing check + epoch_guard.write_manifest(&new_manifest).await?; + + Ok(new_manifest) + } +} + +/// Transpose PQ codes in a batch from row-major to column-major layout. +/// +/// The storage format expects PQ codes to be transposed for efficient distance computation. +fn transpose_pq_batch( + batch: &arrow_array::RecordBatch, + pq_code_len: usize, +) -> Result { + use arrow_array::cast::AsArray; + use arrow_array::FixedSizeListArray; + use lance_arrow::FixedSizeListArrayExt; + use lance_core::ROW_ID; + use lance_index::vector::pq::storage::transpose; + use lance_index::vector::PQ_CODE_COLUMN; + use std::sync::Arc; + + let row_ids = batch + .column_by_name(ROW_ID) + .ok_or_else(|| Error::io("Missing _rowid column in partition batch", location!()))?; + + let pq_codes = batch + .column_by_name(PQ_CODE_COLUMN) + .ok_or_else(|| Error::io("Missing __pq_code column in partition batch", location!()))?; + + let pq_codes_fsl = pq_codes.as_fixed_size_list(); + let codes_flat = pq_codes_fsl + .values() + .as_primitive::(); + + // Transpose from row-major to column-major + let transposed = transpose(codes_flat, pq_code_len, batch.num_rows()); + let transposed_fsl = Arc::new( + FixedSizeListArray::try_new_from_values(transposed, pq_code_len as i32).map_err(|e| { + Error::io( + format!("Failed to create transposed PQ array: {}", e), + location!(), + ) + })?, + ); + + arrow_array::RecordBatch::try_new(batch.schema(), vec![row_ids.clone(), transposed_fsl]) + .map_err(|e| { + Error::io( + format!("Failed to create transposed batch: {}", e), + location!(), + ) + }) +} + +/// Background flush handler message. +#[derive(Debug)] +pub enum FlushMessage { + /// Request to flush the current MemTable. + FlushMemTable { + /// Optional channel to notify when flush completes. + done: Option>>, + }, + /// Periodic tick to check for flush conditions. + Tick, +} + +#[cfg(test)] +mod tests { + use super::*; + use arrow_array::{Int32Array, RecordBatch, StringArray}; + use arrow_schema::{DataType, Field, Schema as ArrowSchema}; + use std::sync::Arc; + use tempfile::TempDir; + + async fn create_local_store() -> (Arc, Path, String, TempDir) { + let temp_dir = tempfile::tempdir().unwrap(); + let uri = format!("file://{}", temp_dir.path().display()); + let (store, path) = ObjectStore::from_uri(&uri).await.unwrap(); + (store, path, uri, temp_dir) + } + + fn create_test_schema() -> Arc { + Arc::new(ArrowSchema::new(vec![ + Field::new("id", DataType::Int32, false), + Field::new("name", DataType::Utf8, true), + ])) + } + + fn create_test_batch(schema: &ArrowSchema, num_rows: usize) -> RecordBatch { + RecordBatch::try_new( + Arc::new(schema.clone()), + vec![ + Arc::new(Int32Array::from_iter_values(0..num_rows as i32)), + Arc::new(StringArray::from_iter_values( + (0..num_rows).map(|i| format!("name_{}", i)), + )), + ], + ) + .unwrap() + } + + #[tokio::test] + async fn test_flusher_requires_wal_flush() { + let (store, base_path, base_uri, _temp_dir) = create_local_store().await; + let region_id = Uuid::new_v4(); + let manifest_store = Arc::new(RegionManifestStore::new( + store.clone(), + &base_path, + region_id, + 2, + )); + + // Claim region + let (epoch_guard, _manifest) = EpochGuard::claim(manifest_store.clone(), 0).await.unwrap(); + + let schema = create_test_schema(); + let mut memtable = MemTable::new(schema.clone(), 1, vec![]).unwrap(); + memtable + .insert(create_test_batch(&schema, 10)) + .await + .unwrap(); + + // Not flushed to WAL yet + assert!(!memtable.all_flushed_to_wal()); + + let flusher = MemTableFlusher::new(store, base_path, base_uri, region_id, manifest_store); + let result = flusher.flush(&memtable, &epoch_guard).await; + + assert!(result.is_err()); + assert!(result + .unwrap_err() + .to_string() + .contains("unflushed fragments")); + } + + #[tokio::test] + async fn test_flusher_empty_memtable() { + let (store, base_path, base_uri, _temp_dir) = create_local_store().await; + let region_id = Uuid::new_v4(); + let manifest_store = Arc::new(RegionManifestStore::new( + store.clone(), + &base_path, + region_id, + 2, + )); + + // Claim region + let (epoch_guard, _manifest) = EpochGuard::claim(manifest_store.clone(), 0).await.unwrap(); + + let schema = create_test_schema(); + let memtable = MemTable::new(schema, 1, vec![]).unwrap(); + + let flusher = MemTableFlusher::new(store, base_path, base_uri, region_id, manifest_store); + let result = flusher.flush(&memtable, &epoch_guard).await; + + assert!(result.is_err()); + assert!(result.unwrap_err().to_string().contains("empty MemTable")); + } + + #[tokio::test] + async fn test_flusher_success() { + let (store, base_path, base_uri, _temp_dir) = create_local_store().await; + let region_id = Uuid::new_v4(); + let manifest_store = Arc::new(RegionManifestStore::new( + store.clone(), + &base_path, + region_id, + 2, + )); + + // Claim region + let (epoch_guard, _manifest) = EpochGuard::claim(manifest_store.clone(), 0).await.unwrap(); + + let schema = create_test_schema(); + let mut memtable = MemTable::new(schema.clone(), 1, vec![]).unwrap(); + let frag_id = memtable + .insert(create_test_batch(&schema, 10)) + .await + .unwrap(); + + // Simulate WAL flush + memtable.mark_wal_flushed(&[frag_id], 1, &[0]); + assert!(memtable.all_flushed_to_wal()); + + let flusher = MemTableFlusher::new( + store.clone(), + base_path, + base_uri, + region_id, + manifest_store.clone(), + ); + let result = flusher.flush(&memtable, &epoch_guard).await.unwrap(); + + assert_eq!(result.generation.generation, 1); + assert_eq!(result.rows_flushed, 10); + assert_eq!(result.fragments_created, 1); + assert_eq!(result.covered_wal_id, 1); + + // Verify manifest was updated + let updated_manifest = manifest_store.read_latest().await.unwrap().unwrap(); + assert_eq!(updated_manifest.version, 2); + assert_eq!(updated_manifest.replay_after_wal_id, 1); + assert_eq!(updated_manifest.current_generation, 2); + assert_eq!(updated_manifest.flushed_generations.len(), 1); + } + + #[tokio::test] + async fn test_flusher_with_btree_index() { + use super::super::indexes::{BTreeIndexConfig, IndexRegistry}; + use lance_index::DatasetIndexExt; + + let (store, base_path, base_uri, _temp_dir) = create_local_store().await; + let region_id = Uuid::new_v4(); + let manifest_store = Arc::new(RegionManifestStore::new( + store.clone(), + &base_path, + region_id, + 2, + )); + + // Claim region + let (epoch_guard, _manifest) = EpochGuard::claim(manifest_store.clone(), 0).await.unwrap(); + + // Create index config for the 'id' column + let index_configs = vec![MemIndexConfig::BTree(BTreeIndexConfig { + name: "id_btree".to_string(), + column: "id".to_string(), + })]; + + let schema = create_test_schema(); + let mut memtable = MemTable::new(schema.clone(), 1, vec![]).unwrap(); + + // Set up in-memory index registry so preprocessed data path is used + let registry = IndexRegistry::from_configs(&index_configs).unwrap(); + memtable.set_indexes(registry); + + let frag_id = memtable + .insert(create_test_batch(&schema, 10)) + .await + .unwrap(); + + // Simulate WAL flush + memtable.mark_wal_flushed(&[frag_id], 1, &[0]); + + let flusher = MemTableFlusher::new( + store.clone(), + base_path.clone(), + base_uri.clone(), + region_id, + manifest_store.clone(), + ); + let result = flusher + .flush_with_indexes(&memtable, &epoch_guard, &index_configs) + .await + .unwrap(); + + assert_eq!(result.generation.generation, 1); + assert_eq!(result.rows_flushed, 10); + + // Verify the flushed dataset has the BTree index + // result.generation.path is an object store path, so we construct the URI + // by using the base_uri and the relative portion of the path + let gen_path_str = result.generation.path.as_str(); + let base_path_str = base_path.as_ref(); + let relative_path = if let Some(stripped) = gen_path_str.strip_prefix(base_path_str) { + stripped.trim_start_matches('/') + } else { + gen_path_str + }; + let gen_uri = if base_path_str.is_empty() { + format!("{}/{}", base_uri, gen_path_str) + } else { + format!("{}/{}", base_uri, relative_path) + }; + let dataset = Dataset::open(&gen_uri).await.unwrap(); + let indices = dataset.load_indices().await.unwrap(); + + assert_eq!(indices.len(), 1); + assert_eq!(indices[0].name, "id_btree"); + } +} diff --git a/rust/lance/src/dataset/mem_wal/write/immutable.rs b/rust/lance/src/dataset/mem_wal/write/immutable.rs new file mode 100644 index 00000000000..2330f08d671 --- /dev/null +++ b/rust/lance/src/dataset/mem_wal/write/immutable.rs @@ -0,0 +1,268 @@ +// SPDX-License-Identifier: Apache-2.0 +// SPDX-FileCopyrightText: Copyright The Lance Authors + +//! Immutable MemTable for the freeze-and-queue pattern. + +use std::sync::Arc; + +use super::memtable::MemTable; +use super::watchable_cell::WatchableOnceCell; +use super::DurabilityResult; + +/// An immutable (frozen) MemTable waiting to be flushed to storage. +/// +/// Once a MemTable is frozen: +/// - No new writes can be added +/// - Reads continue to work (including index queries) +/// - Background flusher will write contents to storage +/// - `flushed` cell is written when flush completes +pub struct ImmutableMemTable { + /// The frozen MemTable. + memtable: MemTable, + /// The last flushed WAL ID when this memtable was frozen. + /// Used to determine WAL replay starting point during recovery. + last_wal_id: u64, + /// The maximum sequence number in this memtable. + /// Used for MVCC visibility filtering. + max_seq: u64, + /// Durability notification cell. + /// Written when the memtable is successfully flushed to storage. + flushed: WatchableOnceCell, +} + +impl ImmutableMemTable { + /// Create a new immutable memtable from a frozen MemTable. + /// + /// # Arguments + /// + /// * `memtable` - The frozen MemTable + /// * `last_wal_id` - The last WAL ID flushed before freezing + /// * `max_seq` - The maximum sequence number in this memtable + pub fn new(memtable: MemTable, last_wal_id: u64, max_seq: u64) -> Self { + Self { + memtable, + last_wal_id, + max_seq, + flushed: WatchableOnceCell::new(), + } + } + + /// Get the underlying MemTable. + pub fn memtable(&self) -> &MemTable { + &self.memtable + } + + /// Get the last WAL ID when this memtable was frozen. + pub fn last_wal_id(&self) -> u64 { + self.last_wal_id + } + + /// Get the maximum sequence number in this memtable. + pub fn max_seq(&self) -> u64 { + self.max_seq + } + + /// Get the generation of this memtable. + pub fn generation(&self) -> u64 { + self.memtable.generation() + } + + /// Get estimated size in bytes. + pub fn estimated_size(&self) -> usize { + self.memtable.estimated_size() + } + + /// Get row count. + pub fn row_count(&self) -> usize { + self.memtable.row_count() + } + + /// Wait for this memtable to be flushed to storage. + /// + /// Returns when the flush completes, either successfully or with an error. + pub async fn await_flush(&self) -> DurabilityResult { + self.flushed.reader().await_value().await + } + + /// Get a watcher to await flush completion. + pub fn flush_watcher(&self) -> super::DurabilityWatcher { + self.flushed.reader() + } + + /// Notify that this memtable has been flushed to storage. + /// + /// Called by the background flusher when flush completes. + pub fn notify_flushed(&self, result: DurabilityResult) { + self.flushed.write(result); + } +} + +impl std::fmt::Debug for ImmutableMemTable { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + f.debug_struct("ImmutableMemTable") + .field("generation", &self.generation()) + .field("last_wal_id", &self.last_wal_id) + .field("max_seq", &self.max_seq) + .field("row_count", &self.row_count()) + .field("estimated_size", &self.estimated_size()) + .finish() + } +} + +/// Queue of immutable memtables waiting to be flushed. +/// +/// This queue maintains ordering: oldest memtables are at the front +/// and should be flushed first. +#[derive(Default)] +pub struct ImmutableMemTableQueue { + queue: Vec>, +} + +impl ImmutableMemTableQueue { + /// Create an empty queue. + pub fn new() -> Self { + Self { queue: Vec::new() } + } + + /// Add a new immutable memtable to the back of the queue. + pub fn push(&mut self, imm: Arc) { + self.queue.push(imm); + } + + /// Get the oldest immutable memtable (front of queue) without removing it. + pub fn front(&self) -> Option<&Arc> { + self.queue.first() + } + + /// Remove and return the oldest immutable memtable. + pub fn pop_front(&mut self) -> Option> { + if self.queue.is_empty() { + None + } else { + Some(self.queue.remove(0)) + } + } + + /// Get the number of immutable memtables in the queue. + pub fn len(&self) -> usize { + self.queue.len() + } + + /// Check if the queue is empty. + pub fn is_empty(&self) -> bool { + self.queue.is_empty() + } + + /// Get total estimated size of all immutable memtables. + pub fn total_bytes(&self) -> usize { + self.queue.iter().map(|imm| imm.estimated_size()).sum() + } + + /// Get an iterator over the queue (oldest to newest). + pub fn iter(&self) -> impl Iterator> { + self.queue.iter() + } + + /// Get the oldest immutable memtable's flush watcher (for backpressure). + pub fn oldest_watcher(&self) -> Option { + self.front().map(|imm| imm.flush_watcher()) + } +} + +#[cfg(test)] +mod tests { + use super::*; + use arrow_schema::{DataType, Field, Schema as ArrowSchema}; + + fn create_test_memtable(generation: u64) -> MemTable { + let schema = Arc::new(ArrowSchema::new(vec![Field::new( + "id", + DataType::Int32, + false, + )])); + MemTable::new(schema, generation, vec![]).unwrap() + } + + #[tokio::test] + async fn test_immutable_memtable_basic() { + let memtable = create_test_memtable(1); + let imm = ImmutableMemTable::new(memtable, 5, 100); + + assert_eq!(imm.generation(), 1); + assert_eq!(imm.last_wal_id(), 5); + assert_eq!(imm.max_seq(), 100); + assert_eq!(imm.row_count(), 0); + } + + #[tokio::test] + async fn test_immutable_memtable_flush_notification() { + let memtable = create_test_memtable(1); + let imm = Arc::new(ImmutableMemTable::new(memtable, 5, 100)); + + // Spawn a task that waits for flush + let imm_clone = imm.clone(); + let handle = tokio::spawn(async move { imm_clone.await_flush().await }); + + // Brief delay to ensure task is waiting + tokio::time::sleep(std::time::Duration::from_millis(10)).await; + + // Notify flush complete + imm.notify_flushed(DurabilityResult::ok()); + + // Task should complete with success + let result = handle.await.unwrap(); + assert!(result.is_ok()); + } + + #[tokio::test] + async fn test_immutable_queue() { + let mut queue = ImmutableMemTableQueue::new(); + assert!(queue.is_empty()); + assert_eq!(queue.len(), 0); + + // Add some immutable memtables + for i in 1..=3 { + let memtable = create_test_memtable(i); + let imm = Arc::new(ImmutableMemTable::new(memtable, i * 10, i * 100)); + queue.push(imm); + } + + assert_eq!(queue.len(), 3); + assert!(!queue.is_empty()); + + // Front should be the oldest (generation 1) + assert_eq!(queue.front().unwrap().generation(), 1); + + // Pop front should remove oldest + let popped = queue.pop_front().unwrap(); + assert_eq!(popped.generation(), 1); + assert_eq!(queue.len(), 2); + + // Next front should be generation 2 + assert_eq!(queue.front().unwrap().generation(), 2); + } + + #[tokio::test] + async fn test_immutable_queue_ordering() { + let mut queue = ImmutableMemTableQueue::new(); + + // Add in order + for i in 1..=5 { + let memtable = create_test_memtable(i); + let imm = Arc::new(ImmutableMemTable::new(memtable, i, i)); + queue.push(imm); + } + + // Verify iteration order (oldest to newest) + let generations: Vec = queue.iter().map(|imm| imm.generation()).collect(); + assert_eq!(generations, vec![1, 2, 3, 4, 5]); + + // Pop all and verify FIFO order + for expected_gen in 1..=5 { + let popped = queue.pop_front().unwrap(); + assert_eq!(popped.generation(), expected_gen); + } + + assert!(queue.is_empty()); + } +} diff --git a/rust/lance/src/dataset/mem_wal/write/indexes.rs b/rust/lance/src/dataset/mem_wal/write/indexes.rs new file mode 100644 index 00000000000..ed1d410ac6d --- /dev/null +++ b/rust/lance/src/dataset/mem_wal/write/indexes.rs @@ -0,0 +1,1783 @@ +// SPDX-License-Identifier: Apache-2.0 +// SPDX-FileCopyrightText: Copyright The Lance Authors + +//! Index registry for MemTable write path. +//! +//! Maintains in-memory indexes that are updated synchronously with writes: +//! - BTree: Primary key and scalar field lookups +//! - IVF-PQ: Vector similarity search (reuses centroids and codebook from base table) +//! - FTS: Full-text search +//! +//! Other index types log a warning and are skipped. + +use std::collections::HashMap; +use std::sync::atomic::{AtomicU64, AtomicUsize, Ordering}; +use std::sync::Arc; + +use arrow_array::cast::AsArray; +use arrow_array::{Array, FixedSizeListArray, RecordBatch, UInt8Array}; +use async_trait::async_trait; +use crossbeam_skiplist::SkipMap; +use datafusion::common::ScalarValue; +use lance_core::datatypes::Schema as LanceSchema; +use lance_core::{Error, Result}; +use lance_index::scalar::btree::OrderableScalarValue; +use lance_index::vector::ivf::storage::IvfModel; +use lance_index::vector::kmeans::compute_partitions_arrow_array; +use lance_index::vector::pq::ProductQuantizer; +use lance_index::vector::quantizer::Quantization; +use lance_linalg::distance::DistanceType; +use lance_table::format::IndexMetadata; +use snafu::location; +use tokio::sync::oneshot; + +use crate::dataset::mem_wal::dispatcher::MessageHandler; + +/// Row position in MemTable. +/// +/// This is the absolute row position across all batches in the MemTable. +/// When flushed to a single Lance file, this becomes the row ID directly. +pub type RowPosition = u64; + +/// Index coverage information for split plan creation. +/// +/// Tracks the maximum indexed sequence number for each index, +/// used to determine which data is covered by indexes. +#[derive(Debug, Clone, Default)] +pub struct IndexCoverageInfo { + /// BTree/scalar index coverage: index name -> max_indexed_seq + pub btree_coverage: HashMap, + /// IVF-PQ vector index coverage: index name -> max_indexed_seq + pub ivfpq_coverage: HashMap, + /// FTS index coverage: index name -> max_indexed_seq + pub fts_coverage: HashMap, +} + +/// Result of checking index coverage for a query. +#[derive(Debug, Clone, PartialEq, Eq)] +pub enum CoverageResult { + /// All data is covered by the index (max_indexed_seq >= visibility_seq) + Full, + /// Part of the data is covered (max_indexed_seq < visibility_seq) + Partial { + /// Maximum sequence number that is indexed + max_indexed_seq: u64, + }, + /// No data is covered by the index (max_indexed_seq == 0 or no index) + None, +} + +impl IndexCoverageInfo { + /// Check coverage for a BTree/scalar index by name. + pub fn check_btree_coverage(&self, name: &str, visibility_seq: u64) -> CoverageResult { + self.check_coverage(self.btree_coverage.get(name), visibility_seq) + } + + /// Check coverage for an IVF-PQ vector index by name. + pub fn check_ivfpq_coverage(&self, name: &str, visibility_seq: u64) -> CoverageResult { + self.check_coverage(self.ivfpq_coverage.get(name), visibility_seq) + } + + /// Check coverage for an FTS index by name. + pub fn check_fts_coverage(&self, name: &str, visibility_seq: u64) -> CoverageResult { + self.check_coverage(self.fts_coverage.get(name), visibility_seq) + } + + /// Check coverage given a max_indexed_seq value. + fn check_coverage(&self, max_indexed_seq: Option<&u64>, visibility_seq: u64) -> CoverageResult { + match max_indexed_seq { + None | Some(&0) => CoverageResult::None, + Some(&seq) if seq >= visibility_seq => CoverageResult::Full, + Some(&seq) => CoverageResult::Partial { + max_indexed_seq: seq, + }, + } + } + + /// Get the minimum coverage across all BTree indexes. + /// + /// Returns the minimum max_indexed_seq, useful when multiple indexes + /// need to cover the same data. + pub fn min_btree_coverage(&self) -> u64 { + self.btree_coverage.values().copied().min().unwrap_or(0) + } + + /// Get the minimum coverage across all IVF-PQ indexes. + pub fn min_ivfpq_coverage(&self) -> u64 { + self.ivfpq_coverage.values().copied().min().unwrap_or(0) + } + + /// Get the minimum coverage across all FTS indexes. + pub fn min_fts_coverage(&self) -> u64 { + self.fts_coverage.values().copied().min().unwrap_or(0) + } +} + +/// Composite key for BTree index. +/// +/// By combining (scalar_value, row_position), each entry is unique. +#[derive(Clone, Debug, PartialEq, Eq)] +pub struct IndexKey { + /// The indexed scalar value. + pub value: OrderableScalarValue, + /// Row position (makes the key unique for non-unique indexes). + pub row_position: RowPosition, +} + +impl PartialOrd for IndexKey { + fn partial_cmp(&self, other: &Self) -> Option { + Some(self.cmp(other)) + } +} + +impl Ord for IndexKey { + fn cmp(&self, other: &Self) -> std::cmp::Ordering { + // First compare by value, then by row_position + match self.value.cmp(&other.value) { + std::cmp::Ordering::Equal => self.row_position.cmp(&other.row_position), + ord => ord, + } + } +} + +/// In-memory BTree index for scalar fields. +/// +/// Represents the in-memory portion of Lance's on-disk BTree index. +/// Implemented using crossbeam-skiplist for concurrent access with O(log n) operations. +#[derive(Debug)] +pub struct BTreeMemIndex { + /// Ordered map: (scalar_value, row_position) -> () + lookup: SkipMap, + /// Column name this index is built on. + column_name: String, + /// Maximum sequence number that has been indexed. + /// Used for index coverage tracking in split plans. + max_indexed_seq: AtomicU64, +} + +impl Default for BTreeMemIndex { + fn default() -> Self { + Self { + lookup: SkipMap::new(), + column_name: String::new(), + max_indexed_seq: AtomicU64::new(0), + } + } +} + +impl BTreeMemIndex { + /// Create a new BTree index for the given column. + pub fn new(column_name: String) -> Self { + Self { + lookup: SkipMap::new(), + column_name, + max_indexed_seq: AtomicU64::new(0), + } + } + + /// Get the maximum sequence number that has been indexed. + /// + /// Used for index coverage tracking. Rows with seq <= this value + /// are covered by the index. + pub fn max_indexed_seq(&self) -> u64 { + self.max_indexed_seq.load(Ordering::Acquire) + } + + /// Update the maximum indexed sequence number. + /// + /// Only updates if the new value is greater than the current value. + /// Uses compare-and-swap to handle concurrent updates. + pub fn update_max_indexed_seq(&self, seq: u64) { + let mut current = self.max_indexed_seq.load(Ordering::Acquire); + while seq > current { + match self.max_indexed_seq.compare_exchange_weak( + current, + seq, + Ordering::Release, + Ordering::Acquire, + ) { + Ok(_) => break, + Err(actual) => current = actual, + } + } + } + + /// Insert rows from a batch into the index. + pub fn insert(&self, batch: &RecordBatch, row_offset: u64) -> Result<()> { + self.insert_with_seq(batch, row_offset, None) + } + + /// Insert rows from a batch into the index with sequence tracking. + pub fn insert_with_seq( + &self, + batch: &RecordBatch, + row_offset: u64, + seq: Option, + ) -> Result<()> { + let col_idx = batch + .schema() + .column_with_name(&self.column_name) + .map(|(idx, _)| idx) + .ok_or_else(|| { + Error::invalid_input( + format!("Column '{}' not found in batch", self.column_name), + location!(), + ) + })?; + + let column = batch.column(col_idx); + for row_idx in 0..batch.num_rows() { + let value = ScalarValue::try_from_array(column.as_ref(), row_idx)?; + let row_position = row_offset + row_idx as u64; + + let key = IndexKey { + value: OrderableScalarValue(value), + row_position, + }; + self.lookup.insert(key, ()); + } + + // Update max_indexed_seq if sequence was provided + if let Some(s) = seq { + self.update_max_indexed_seq(s); + } + + Ok(()) + } + + /// Look up row positions for an exact value. + pub fn get(&self, value: &ScalarValue) -> Vec { + let orderable = OrderableScalarValue(value.clone()); + let start = IndexKey { + value: orderable.clone(), + row_position: 0, + }; + let end = IndexKey { + value: orderable, + row_position: u64::MAX, + }; + + // Range scan: all entries with the same value + self.lookup + .range(start..=end) + .map(|entry| entry.key().row_position) + .collect() + } + + /// Get the number of entries (not unique values). + pub fn len(&self) -> usize { + self.lookup.len() + } + + /// Check if the index is empty. + pub fn is_empty(&self) -> bool { + self.lookup.is_empty() + } + + /// Get the column name. + pub fn column_name(&self) -> &str { + &self.column_name + } + + /// Get a snapshot of all entries grouped by value in sorted order. + pub fn snapshot(&self) -> Vec<(OrderableScalarValue, Vec)> { + let mut result: Vec<(OrderableScalarValue, Vec)> = Vec::new(); + + for entry in self.lookup.iter() { + let key = entry.key(); + if let Some(last) = result.last_mut() { + if last.0 == key.value { + last.1.push(key.row_position); + continue; + } + } + result.push((key.value.clone(), vec![key.row_position])); + } + + result + } + + /// Get the data type of the indexed column. + /// + /// Returns None if the index is empty. + pub fn data_type(&self) -> Option { + self.lookup + .front() + .map(|entry| entry.key().value.0.data_type()) + } + + /// Export the index data as sorted RecordBatches for BTree index training. + pub fn to_training_batches(&self, batch_size: usize) -> Result> { + use arrow_schema::{DataType, Field, Schema}; + use lance_core::ROW_ID; + use lance_index::scalar::registry::VALUE_COLUMN_NAME; + use std::sync::Arc; + + if self.lookup.is_empty() { + return Ok(vec![]); + } + + // Get the data type from the first key + let first_entry = self.lookup.front().unwrap(); + let data_type = first_entry.key().value.0.data_type(); + + // Create schema for training data + let schema = Arc::new(Schema::new(vec![ + Field::new(VALUE_COLUMN_NAME, data_type, true), + Field::new(ROW_ID, DataType::UInt64, false), + ])); + + let mut batches = Vec::new(); + let mut values: Vec = Vec::with_capacity(batch_size); + let mut row_ids: Vec = Vec::with_capacity(batch_size); + + for entry in self.lookup.iter() { + let key = entry.key(); + values.push(key.value.0.clone()); + row_ids.push(key.row_position); + + if values.len() >= batch_size { + // Build and emit a batch + let batch = self.build_training_batch(&schema, &values, &row_ids)?; + batches.push(batch); + values.clear(); + row_ids.clear(); + } + } + + // Emit any remaining data + if !values.is_empty() { + let batch = self.build_training_batch(&schema, &values, &row_ids)?; + batches.push(batch); + } + + Ok(batches) + } + + /// Build a single training batch from values and row IDs. + fn build_training_batch( + &self, + schema: &std::sync::Arc, + values: &[ScalarValue], + row_ids: &[u64], + ) -> Result { + use arrow_array::UInt64Array; + use std::sync::Arc; + + // Convert ScalarValues to Arrow array + let value_array = ScalarValue::iter_to_array(values.iter().cloned())?; + + // Create row_id array + let row_id_array = Arc::new(UInt64Array::from(row_ids.to_vec())); + + RecordBatch::try_new(schema.clone(), vec![value_array, row_id_array]).map_err(|e| { + Error::io( + format!("Failed to create training batch: {}", e), + location!(), + ) + }) + } +} + +/// In-memory IVF-PQ index entry. +/// +/// Stores partition assignment and PQ codes for each vector. +#[derive(Debug, Clone)] +pub struct IvfPqEntry { + /// Row position in MemTable. + pub row_position: RowPosition, + /// PQ code for this vector (compressed representation). + /// Length = num_sub_vectors (for 8-bit) or num_sub_vectors/2 (for 4-bit). + pub pq_code: Vec, +} + +/// Composite key for IVF-PQ index. +/// +/// By combining (partition_id, row_position), each entry is unique. +#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord)] +pub struct IvfPqKey { + /// Partition ID (centroid assignment). + pub partition_id: u32, + /// Row position (makes the key unique within partition). + pub row_position: RowPosition, +} + +/// In-memory IVF-PQ index for vector similarity search. +/// +/// Reuses IVF centroids and PQ codebook from the base table to ensure +/// distance comparisons are consistent between the in-memory and base table indexes. +#[derive(Debug)] +pub struct IvfPqMemIndex { + column_name: String, + ivf_model: IvfModel, + pq: ProductQuantizer, + /// Inverted index: (partition_id, row_position) -> pq_code. + inverted_index: SkipMap>, + /// Total number of vectors indexed. + vector_count: AtomicUsize, + /// Distance type for partition assignment. + distance_type: DistanceType, + /// Number of partitions. + num_partitions: usize, + /// Maximum sequence number that has been indexed. + /// Used for index coverage tracking in split plans. + max_indexed_seq: AtomicU64, +} + +impl IvfPqMemIndex { + /// Create a new IVF-PQ index with centroids and codebook from base table. + /// + /// # Arguments + /// + /// * `column_name` - Vector column name + /// * `ivf_model` - IVF model with centroids from base table + /// * `pq` - Product quantizer with codebook from base table + /// * `distance_type` - Distance type for search + pub fn new( + column_name: String, + ivf_model: IvfModel, + pq: ProductQuantizer, + distance_type: DistanceType, + ) -> Self { + let num_partitions = ivf_model.num_partitions(); + Self { + column_name, + ivf_model, + pq, + inverted_index: SkipMap::new(), + vector_count: AtomicUsize::new(0), + distance_type, + num_partitions, + max_indexed_seq: AtomicU64::new(0), + } + } + + /// Get the maximum sequence number that has been indexed. + /// + /// Used for index coverage tracking. Rows with seq <= this value + /// are covered by the index. + pub fn max_indexed_seq(&self) -> u64 { + self.max_indexed_seq.load(Ordering::Acquire) + } + + /// Update the maximum indexed sequence number. + /// + /// Only updates if the new value is greater than the current value. + /// Uses compare-and-swap to handle concurrent updates. + pub fn update_max_indexed_seq(&self, seq: u64) { + let mut current = self.max_indexed_seq.load(Ordering::Acquire); + while seq > current { + match self.max_indexed_seq.compare_exchange_weak( + current, + seq, + Ordering::Release, + Ordering::Acquire, + ) { + Ok(_) => break, + Err(actual) => current = actual, + } + } + } + + /// Insert vectors from a batch into the index. + pub fn insert(&self, batch: &RecordBatch, row_offset: u64) -> Result<()> { + self.insert_with_seq(batch, row_offset, None) + } + + /// Insert vectors from a batch into the index with sequence tracking. + pub fn insert_with_seq( + &self, + batch: &RecordBatch, + row_offset: u64, + seq: Option, + ) -> Result<()> { + let col_idx = batch + .schema() + .column_with_name(&self.column_name) + .map(|(idx, _)| idx); + + let Some(col_idx) = col_idx else { + // Column not in this batch, skip + // Still update max_indexed_seq if provided + if let Some(s) = seq { + self.update_max_indexed_seq(s); + } + return Ok(()); + }; + + let column = batch.column(col_idx); + let fsl = column.as_fixed_size_list_opt().ok_or_else(|| { + Error::invalid_input( + format!( + "Column '{}' is not a FixedSizeList, got {:?}", + self.column_name, + column.data_type() + ), + location!(), + ) + })?; + + // Find partition assignments for all vectors using batch computation + let centroids = self + .ivf_model + .centroids + .as_ref() + .ok_or_else(|| Error::invalid_input("IVF model has no centroids", location!()))?; + let (partition_ids, _distances) = + compute_partitions_arrow_array(centroids, fsl, self.distance_type)?; + + // Compute PQ codes for all vectors + let pq_codes = self.pq.quantize(fsl)?; + let pq_codes_fsl = pq_codes.as_fixed_size_list(); + let pq_code_len = pq_codes_fsl.value_length() as usize; + + let mut inserted_count = 0usize; + + for (row_idx, partition_id) in partition_ids.iter().enumerate().take(batch.num_rows()) { + let Some(partition_id) = partition_id else { + // Skip null vectors + continue; + }; + let partition_id = *partition_id; + + // Extract PQ code for this vector + let pq_code_arr = pq_codes_fsl.value(row_idx); + let pq_code: Vec = pq_code_arr + .as_primitive::() + .values() + .iter() + .copied() + .collect(); + + debug_assert_eq!(pq_code.len(), pq_code_len); + + let row_position = row_offset + row_idx as u64; + + if (partition_id as usize) < self.num_partitions { + let key = IvfPqKey { + partition_id, + row_position, + }; + self.inverted_index.insert(key, pq_code); + inserted_count += 1; + } + } + + self.vector_count + .fetch_add(inserted_count, Ordering::Relaxed); + + // Update max_indexed_seq if sequence was provided + if let Some(s) = seq { + self.update_max_indexed_seq(s); + } + + Ok(()) + } + + /// Search for nearest neighbors. + /// + /// # Arguments + /// + /// * `query` - Query vector as FixedSizeListArray with single vector + /// * `k` - Number of results to return + /// * `nprobes` - Number of partitions to search + /// + /// # Returns + /// + /// Vec of (distance, row_position) sorted by distance ascending. + pub fn search( + &self, + query: &FixedSizeListArray, + k: usize, + nprobes: usize, + ) -> Result> { + if query.len() != 1 { + return Err(Error::invalid_input( + format!("Query must have exactly 1 vector, got {}", query.len()), + location!(), + )); + } + + // Find nearest partitions to probe + // Note: find_partitions expects the inner primitive array, not FixedSizeListArray + let query_values = query.value(0); + let (partition_ids, _) = self + .ivf_model + .find_partitions(&query_values, nprobes, self.distance_type)?; + + let mut results: Vec<(f32, RowPosition)> = Vec::new(); + + for i in 0..partition_ids.len() { + let partition_id = partition_ids.value(i); + if (partition_id as usize) >= self.num_partitions { + continue; + } + + let start_key = IvfPqKey { + partition_id, + row_position: 0, + }; + let end_key = IvfPqKey { + partition_id, + row_position: u64::MAX, + }; + + // Collect entries for this partition + let entries: Vec<_> = self + .inverted_index + .range(start_key..=end_key) + .map(|e| (e.key().row_position, e.value().clone())) + .collect(); + + if entries.is_empty() { + continue; + } + + // Collect all PQ codes from this partition into a single array + let pq_code_len = self.pq.num_sub_vectors * self.pq.num_bits as usize / 8; + let mut all_codes: Vec = Vec::with_capacity(entries.len() * pq_code_len); + for (_, pq_code) in &entries { + all_codes.extend_from_slice(pq_code); + } + + // Transpose PQ codes for distance computation + let transposed_codes = transpose_pq_codes(&all_codes, entries.len(), pq_code_len); + let codes_array = UInt8Array::from(transposed_codes); + + // Compute distances using PQ distance table + let query_vec = query.value(0); + let distances = self.pq.compute_distances(&query_vec, &codes_array)?; + + // Collect results with row positions + for (idx, &dist) in distances.values().iter().enumerate() { + results.push((dist, entries[idx].0)); + } + } + + // Sort by distance and take top-k + results.sort_by(|a, b| a.0.partial_cmp(&b.0).unwrap_or(std::cmp::Ordering::Equal)); + results.truncate(k); + + Ok(results) + } + + /// Get the number of vectors in a partition. + pub fn partition_size(&self, partition_id: usize) -> usize { + let start_key = IvfPqKey { + partition_id: partition_id as u32, + row_position: 0, + }; + let end_key = IvfPqKey { + partition_id: partition_id as u32, + row_position: u64::MAX, + }; + self.inverted_index.range(start_key..=end_key).count() + } + + /// Get total vector count. + pub fn len(&self) -> usize { + self.vector_count.load(Ordering::Relaxed) + } + + /// Check if the index is empty. + pub fn is_empty(&self) -> bool { + self.vector_count.load(Ordering::Relaxed) == 0 + } + + /// Get the column name. + pub fn column_name(&self) -> &str { + &self.column_name + } + + /// Get entries for a partition. + pub fn get_partition(&self, partition_id: usize) -> Vec { + let start_key = IvfPqKey { + partition_id: partition_id as u32, + row_position: 0, + }; + let end_key = IvfPqKey { + partition_id: partition_id as u32, + row_position: u64::MAX, + }; + self.inverted_index + .range(start_key..=end_key) + .map(|e| IvfPqEntry { + row_position: e.key().row_position, + pq_code: e.value().clone(), + }) + .collect() + } + + /// Get the number of partitions. + pub fn num_partitions(&self) -> usize { + self.ivf_model.num_partitions() + } + + /// Get the IVF model (for advanced use). + pub fn ivf_model(&self) -> &IvfModel { + &self.ivf_model + } + + /// Get the product quantizer (for advanced use). + pub fn pq(&self) -> &ProductQuantizer { + &self.pq + } + + /// Get the distance type. + pub fn distance_type(&self) -> DistanceType { + self.distance_type + } + + /// Export partition data as RecordBatches for index creation. + /// Each batch has schema: `_rowid` (UInt64), `__pq_code` (FixedSizeList). + /// + /// The PQ codes are stored row-major (not transposed), matching the format + /// expected by the index builder's shuffle stage. + pub fn to_partition_batches(&self) -> Result> { + use arrow_array::UInt64Array; + use arrow_schema::{Field, Schema}; + use lance_arrow::FixedSizeListArrayExt; + use lance_core::ROW_ID; + use lance_index::vector::PQ_CODE_COLUMN; + use std::sync::Arc; + + let pq_code_len = self.pq.num_sub_vectors * self.pq.num_bits as usize / 8; + + // Schema for partition data: row_id and pq_code + let schema = Arc::new(Schema::new(vec![ + Field::new(ROW_ID, arrow_schema::DataType::UInt64, false), + Field::new( + PQ_CODE_COLUMN, + arrow_schema::DataType::FixedSizeList( + Arc::new(Field::new("item", arrow_schema::DataType::UInt8, false)), + pq_code_len as i32, + ), + false, + ), + ])); + + let mut result = Vec::new(); + + for part_id in 0..self.num_partitions { + let entries = self.get_partition(part_id); + if entries.is_empty() { + continue; + } + + // Collect row IDs + let row_ids: Vec = entries.iter().map(|e| e.row_position).collect(); + let row_id_array = Arc::new(UInt64Array::from(row_ids)); + + // Collect PQ codes into a flat array + let mut pq_codes_flat: Vec = Vec::with_capacity(entries.len() * pq_code_len); + for entry in &entries { + pq_codes_flat.extend_from_slice(&entry.pq_code); + } + + // Create FixedSizeList array for PQ codes + let pq_codes_array = UInt8Array::from(pq_codes_flat); + let pq_codes_fsl = Arc::new( + FixedSizeListArray::try_new_from_values(pq_codes_array, pq_code_len as i32) + .map_err(|e| { + Error::io( + format!("Failed to create PQ code array: {}", e), + location!(), + ) + })?, + ); + + let batch = RecordBatch::try_new(schema.clone(), vec![row_id_array, pq_codes_fsl]) + .map_err(|e| { + Error::io( + format!("Failed to create partition batch: {}", e), + location!(), + ) + })?; + + result.push((part_id, batch)); + } + + Ok(result) + } +} + +/// Transpose PQ codes from row-major to column-major layout. +/// +/// Input: [v0_code, v1_code, v2_code, ...] where each code is [c0, c1, c2, ...] +/// Output: [all_c0, all_c1, all_c2, ...] where all_c0 = [v0_c0, v1_c0, v2_c0, ...] +fn transpose_pq_codes(codes: &[u8], num_vectors: usize, code_len: usize) -> Vec { + if codes.is_empty() { + return Vec::new(); + } + + let mut transposed = vec![0u8; codes.len()]; + for vec_idx in 0..num_vectors { + for code_idx in 0..code_len { + transposed[code_idx * num_vectors + vec_idx] = codes[vec_idx * code_len + code_idx]; + } + } + transposed +} + +/// Composite key for FTS index. +/// +/// By combining (token, row_position), each entry is unique. +/// This follows the same pattern as IndexKey and IvfPqKey. +#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord)] +pub struct FtsKey { + /// The indexed token (lowercase). + pub token: String, + /// Row position (makes the key unique for tokens appearing in multiple docs). + pub row_position: RowPosition, +} + +/// In-memory FTS (Full-Text Search) index entry (returned from search). +#[derive(Debug, Clone)] +pub struct FtsEntry { + /// Row position in MemTable. + pub row_position: RowPosition, + /// Term frequency in this document. + pub frequency: u32, +} + +/// In-memory FTS index for full-text search. +#[derive(Debug)] +pub struct FtsMemIndex { + column_name: String, + /// Inverted index: (token, row_position) -> frequency. + postings: SkipMap, + /// Total document count. + doc_count: AtomicUsize, + /// Maximum sequence number that has been indexed. + /// Used for index coverage tracking in split plans. + max_indexed_seq: AtomicU64, +} + +impl FtsMemIndex { + /// Create a new FTS index for the given column. + pub fn new(column_name: String) -> Self { + Self { + column_name, + postings: SkipMap::new(), + doc_count: AtomicUsize::new(0), + max_indexed_seq: AtomicU64::new(0), + } + } + + /// Get the maximum sequence number that has been indexed. + /// + /// Used for index coverage tracking. Rows with seq <= this value + /// are covered by the index. + pub fn max_indexed_seq(&self) -> u64 { + self.max_indexed_seq.load(Ordering::Acquire) + } + + /// Update the maximum indexed sequence number. + /// + /// Only updates if the new value is greater than the current value. + /// Uses compare-and-swap to handle concurrent updates. + pub fn update_max_indexed_seq(&self, seq: u64) { + let mut current = self.max_indexed_seq.load(Ordering::Acquire); + while seq > current { + match self.max_indexed_seq.compare_exchange_weak( + current, + seq, + Ordering::Release, + Ordering::Acquire, + ) { + Ok(_) => break, + Err(actual) => current = actual, + } + } + } + + /// Insert documents from a batch into the index using whitespace tokenization. + pub fn insert(&self, batch: &RecordBatch, row_offset: u64) -> Result<()> { + self.insert_with_seq(batch, row_offset, None) + } + + /// Insert documents from a batch into the index with sequence tracking. + pub fn insert_with_seq( + &self, + batch: &RecordBatch, + row_offset: u64, + seq: Option, + ) -> Result<()> { + let col_idx = batch + .schema() + .column_with_name(&self.column_name) + .map(|(idx, _)| idx); + + if col_idx.is_none() { + // Still update max_indexed_seq if provided + if let Some(s) = seq { + self.update_max_indexed_seq(s); + } + return Ok(()); + } + + let column = batch.column(col_idx.unwrap()); + + for row_idx in 0..batch.num_rows() { + let value = ScalarValue::try_from_array(column.as_ref(), row_idx)?; + let row_position = row_offset + row_idx as u64; + + if let ScalarValue::Utf8(Some(text)) | ScalarValue::LargeUtf8(Some(text)) = value { + // Simple whitespace tokenization + let mut term_freq: HashMap = HashMap::new(); + for token in text.split_whitespace() { + let token = token.to_lowercase(); + *term_freq.entry(token).or_default() += 1; + } + + for (token, freq) in term_freq { + let key = FtsKey { + token, + row_position, + }; + self.postings.insert(key, freq); + } + } + + self.doc_count.fetch_add(1, Ordering::Relaxed); + } + + // Update max_indexed_seq if sequence was provided + if let Some(s) = seq { + self.update_max_indexed_seq(s); + } + + Ok(()) + } + + /// Search for documents containing a term. + pub fn search(&self, term: &str) -> Vec { + let token = term.to_lowercase(); + let start = FtsKey { + token: token.clone(), + row_position: 0, + }; + let end = FtsKey { + token, + row_position: u64::MAX, + }; + + self.postings + .range(start..=end) + .map(|entry| FtsEntry { + row_position: entry.key().row_position, + frequency: *entry.value(), + }) + .collect() + } + + /// Get the number of entries in the index. + /// Note: This counts (token, row_position) pairs, not unique tokens. + pub fn entry_count(&self) -> usize { + self.postings.len() + } + + /// Get the document count. + pub fn doc_count(&self) -> usize { + self.doc_count.load(Ordering::Relaxed) + } + + /// Check if the index is empty. + pub fn is_empty(&self) -> bool { + self.doc_count.load(Ordering::Relaxed) == 0 + } + + /// Get the column name. + pub fn column_name(&self) -> &str { + &self.column_name + } +} + +/// Configuration for a BTree scalar index. +#[derive(Debug, Clone)] +pub struct BTreeIndexConfig { + /// Index name. + pub name: String, + /// Column name the index is built on. + pub column: String, +} + +/// Configuration for an IVF-PQ vector index. +/// +/// Contains the centroids and codebook from the base table +/// to ensure consistent distance computations. +#[derive(Debug, Clone)] +pub struct IvfPqIndexConfig { + /// Index name. + pub name: String, + /// Column name containing vectors. + pub column: String, + /// IVF model with centroids from base table. + pub ivf_model: IvfModel, + /// Product quantizer with codebook from base table. + pub pq: ProductQuantizer, + /// Distance type for search. + pub distance_type: DistanceType, +} + +/// Configuration for a Full-Text Search index. +#[derive(Debug, Clone)] +pub struct FtsIndexConfig { + /// Index name. + pub name: String, + /// Column name containing text. + pub column: String, +} + +/// Configuration for an index in MemWAL. +/// +/// Each variant contains all the configuration needed for that index type. +/// IvfPq is boxed because it contains large IVF model and PQ codebook. +#[derive(Debug, Clone)] +pub enum MemIndexConfig { + /// BTree index for scalar fields (point lookups, range queries). + BTree(BTreeIndexConfig), + /// IVF-PQ index for vector similarity search. + /// Boxed due to large size (contains IVF centroids and PQ codebook). + IvfPq(Box), + /// Full-text search index. + Fts(FtsIndexConfig), +} + +impl MemIndexConfig { + /// Get the index name. + pub fn name(&self) -> &str { + match self { + Self::BTree(c) => &c.name, + Self::IvfPq(c) => &c.name, + Self::Fts(c) => &c.name, + } + } + + /// Get the column name. + pub fn column(&self) -> &str { + match self { + Self::BTree(c) => &c.column, + Self::IvfPq(c) => &c.column, + Self::Fts(c) => &c.column, + } + } + + /// Create a BTree index config from base table IndexMetadata. + pub fn btree_from_metadata(index_meta: &IndexMetadata, schema: &LanceSchema) -> Result { + let column = Self::extract_column(index_meta, schema)?; + Ok(Self::BTree(BTreeIndexConfig { + name: index_meta.name.clone(), + column, + })) + } + + /// Create an FTS index config from base table IndexMetadata. + pub fn fts_from_metadata(index_meta: &IndexMetadata, schema: &LanceSchema) -> Result { + let column = Self::extract_column(index_meta, schema)?; + Ok(Self::Fts(FtsIndexConfig { + name: index_meta.name.clone(), + column, + })) + } + + /// Create an IVF-PQ index config with centroids and codebook from base table. + pub fn ivf_pq( + name: String, + column: String, + ivf_model: IvfModel, + pq: ProductQuantizer, + distance_type: DistanceType, + ) -> Self { + Self::IvfPq(Box::new(IvfPqIndexConfig { + name, + column, + ivf_model, + pq, + distance_type, + })) + } + + /// Detect index type from protobuf type_url. + pub fn detect_index_type(type_url: &str) -> Result<&'static str> { + if type_url.ends_with("BTreeIndexDetails") { + Ok("btree") + } else if type_url.ends_with("InvertedIndexDetails") { + Ok("fts") + } else if type_url.ends_with("VectorIndexDetails") { + Ok("vector") + } else { + Err(Error::invalid_input( + format!( + "Unsupported index type for MemWAL: {}. Supported: BTree, Inverted, Vector", + type_url + ), + location!(), + )) + } + } + + /// Extract column name from index metadata. + fn extract_column(index_meta: &IndexMetadata, schema: &LanceSchema) -> Result { + let field_id = index_meta.fields.first().ok_or_else(|| { + Error::invalid_input( + format!("Index '{}' has no fields", index_meta.name), + location!(), + ) + })?; + + schema + .field_by_id(*field_id) + .map(|f| f.name.clone()) + .ok_or_else(|| { + Error::invalid_input( + format!("Field with id {} not found in schema", field_id), + location!(), + ) + }) + } +} + +/// Registry managing all in-memory indexes for a MemTable. +#[derive(Debug, Default)] +pub struct IndexRegistry { + /// Skip-list indexes by name (used for BTree/scalar indexes). + /// Skip-list provides better concurrent performance than BTreeMap with RwLock. + btree_indexes: HashMap, + /// IVF-PQ indexes by name. + ivf_pq_indexes: HashMap, + /// FTS indexes by name. + fts_indexes: HashMap, +} + +impl IndexRegistry { + /// Create a new empty index registry. + pub fn new() -> Self { + Self::default() + } + + /// Create an index registry from index configurations. + pub fn from_configs(configs: &[MemIndexConfig]) -> Result { + let mut registry = Self::new(); + + for config in configs { + match config { + MemIndexConfig::BTree(c) => { + // Use BTreeMemIndex for BTree/scalar indexes + let index = BTreeMemIndex::new(c.column.clone()); + registry.btree_indexes.insert(c.name.clone(), index); + } + MemIndexConfig::IvfPq(c) => { + let index = IvfPqMemIndex::new( + c.column.clone(), + c.ivf_model.clone(), + c.pq.clone(), + c.distance_type, + ); + registry.ivf_pq_indexes.insert(c.name.clone(), index); + } + MemIndexConfig::Fts(c) => { + let index = FtsMemIndex::new(c.column.clone()); + registry.fts_indexes.insert(c.name.clone(), index); + } + } + } + + Ok(registry) + } + + /// Add a BTree/scalar index (implemented using skip-list for better concurrency). + pub fn add_btree(&mut self, name: String, column: String) { + self.btree_indexes.insert(name, BTreeMemIndex::new(column)); + } + + /// Add an IVF-PQ index with centroids and codebook from base table. + pub fn add_ivf_pq( + &mut self, + name: String, + column: String, + ivf_model: IvfModel, + pq: ProductQuantizer, + distance_type: DistanceType, + ) { + self.ivf_pq_indexes.insert( + name, + IvfPqMemIndex::new(column, ivf_model, pq, distance_type), + ); + } + + /// Add an FTS index. + pub fn add_fts(&mut self, name: String, column: String) { + self.fts_indexes.insert(name, FtsMemIndex::new(column)); + } + + /// Insert a batch into all indexes. + pub fn insert(&self, batch: &RecordBatch, row_offset: u64) -> Result<()> { + self.insert_with_seq(batch, row_offset, None) + } + + /// Insert a batch into all indexes with sequence tracking. + pub fn insert_with_seq( + &self, + batch: &RecordBatch, + row_offset: u64, + seq: Option, + ) -> Result<()> { + for index in self.btree_indexes.values() { + index.insert_with_seq(batch, row_offset, seq)?; + } + for index in self.ivf_pq_indexes.values() { + index.insert_with_seq(batch, row_offset, seq)?; + } + for index in self.fts_indexes.values() { + index.insert_with_seq(batch, row_offset, seq)?; + } + Ok(()) + } + + /// Get index coverage information. + /// + /// Returns the maximum indexed sequence numbers for all index types. + /// Used for split plan creation when scanning with partial index coverage. + pub fn get_coverage(&self) -> IndexCoverageInfo { + let mut btree_coverage = HashMap::new(); + let mut ivfpq_coverage = HashMap::new(); + let mut fts_coverage = HashMap::new(); + + for (name, index) in &self.btree_indexes { + btree_coverage.insert(name.clone(), index.max_indexed_seq()); + } + + for (name, index) in &self.ivf_pq_indexes { + ivfpq_coverage.insert(name.clone(), index.max_indexed_seq()); + } + + for (name, index) in &self.fts_indexes { + fts_coverage.insert(name.clone(), index.max_indexed_seq()); + } + + IndexCoverageInfo { + btree_coverage, + ivfpq_coverage, + fts_coverage, + } + } + + /// Get a BTree index by name. + pub fn get_btree(&self, name: &str) -> Option<&BTreeMemIndex> { + self.btree_indexes.get(name) + } + + /// Get an IVF-PQ index by name. + pub fn get_ivf_pq(&self, name: &str) -> Option<&IvfPqMemIndex> { + self.ivf_pq_indexes.get(name) + } + + /// Get an FTS index by name. + pub fn get_fts(&self, name: &str) -> Option<&FtsMemIndex> { + self.fts_indexes.get(name) + } + + /// Check if the registry has any indexes. + pub fn is_empty(&self) -> bool { + self.btree_indexes.is_empty() + && self.ivf_pq_indexes.is_empty() + && self.fts_indexes.is_empty() + } + + /// Get the total number of indexes. + pub fn len(&self) -> usize { + self.btree_indexes.len() + self.ivf_pq_indexes.len() + self.fts_indexes.len() + } +} + +// ============================================================================ +// Async Index Update Infrastructure +// ============================================================================ + +/// Message for async index updates. +/// +/// Used by `IndexUpdateHandler` to process index updates in a background task. +#[derive(Debug)] +pub enum IndexUpdateMsg { + /// Update indexes with a batch. + Update { + /// The batch to index. + batch: RecordBatch, + /// Row offset in MemTable. + row_offset: u64, + /// Optional completion notification. + done: Option>>, + }, + /// Drain all pending updates (for memtable rotation). + /// The handler will process all pending messages and then respond. + Drain { + /// Completion notification. + done: oneshot::Sender>, + }, + /// Switch to a new IndexRegistry (after memtable rotation). + SetIndexes { + /// New IndexRegistry to use. + indexes: Arc, + }, +} + +/// Background handler for async index updates. +/// +/// Processes index update messages in FIFO order, maintaining strict ordering guarantees. +pub struct IndexUpdateHandler { + indexes: Arc, +} + +impl IndexUpdateHandler { + /// Create a new index update handler. + pub fn new(indexes: Arc) -> Self { + Self { indexes } + } + + /// Process an index update message. + /// + /// This method is called by the dispatcher for each message. + pub fn handle_message(&mut self, msg: IndexUpdateMsg) -> Result<()> { + match msg { + IndexUpdateMsg::Update { + batch, + row_offset, + done, + } => { + let result = self.indexes.insert(&batch, row_offset); + if let Some(tx) = done { + let _ = tx.send(result); + } + } + IndexUpdateMsg::SetIndexes { indexes } => { + self.indexes = indexes; + } + IndexUpdateMsg::Drain { done } => { + // All pending messages have been processed (channel is FIFO) + let _ = done.send(Ok(())); + } + } + Ok(()) + } + + /// Get a reference to the current IndexRegistry. + pub fn indexes(&self) -> &Arc { + &self.indexes + } +} + +#[async_trait] +impl MessageHandler for IndexUpdateHandler { + async fn handle(&mut self, message: IndexUpdateMsg) -> Result<()> { + match message { + IndexUpdateMsg::Update { + batch, + row_offset, + done, + } => { + let result = self.indexes.insert(&batch, row_offset); + if let Some(tx) = done { + let _ = tx.send(result); + } + } + IndexUpdateMsg::SetIndexes { indexes } => { + self.indexes = indexes; + } + IndexUpdateMsg::Drain { done } => { + // All pending messages have been processed (channel is FIFO) + let _ = done.send(Ok(())); + } + } + Ok(()) + } +} + +#[cfg(test)] +mod tests { + use super::*; + use arrow_array::{Int32Array, RecordBatch, StringArray}; + use arrow_schema::{DataType, Field, Schema as ArrowSchema}; + use std::sync::Arc; + use tracing::warn; + + /// Check if an index type is supported and log warning if not. + fn check_index_type_supported(index_type: &str) -> bool { + match index_type.to_lowercase().as_str() { + "btree" | "scalar" => true, + "ivf_pq" | "ivf-pq" | "ivfpq" | "vector" => true, + "fts" | "inverted" | "fulltext" => true, + _ => { + warn!( + "Index type '{}' is not supported for MemWAL. \ + Supported types: btree, ivf_pq, fts. Skipping.", + index_type + ); + false + } + } + } + + fn create_test_schema() -> Arc { + Arc::new(ArrowSchema::new(vec![ + Field::new("id", DataType::Int32, false), + Field::new("name", DataType::Utf8, true), + Field::new("description", DataType::Utf8, true), + ])) + } + + fn create_test_batch(schema: &ArrowSchema, start_id: i32) -> RecordBatch { + RecordBatch::try_new( + Arc::new(schema.clone()), + vec![ + Arc::new(Int32Array::from(vec![start_id, start_id + 1, start_id + 2])), + Arc::new(StringArray::from(vec!["alice", "bob", "charlie"])), + Arc::new(StringArray::from(vec![ + "hello world", + "goodbye world", + "hello again", + ])), + ], + ) + .unwrap() + } + + #[test] + fn test_btree_index_insert_and_lookup() { + let schema = create_test_schema(); + let index = BTreeMemIndex::new("id".to_string()); + + let batch = create_test_batch(&schema, 0); + // row_offset = 0 for first batch + index.insert(&batch, 0).unwrap(); + + assert_eq!(index.len(), 3); + + // Row positions are 0, 1, 2 for the first batch + let result = index.get(&ScalarValue::Int32(Some(0))); + assert!(!result.is_empty()); + assert_eq!(result, vec![0]); + + let result = index.get(&ScalarValue::Int32(Some(1))); + assert!(!result.is_empty()); + assert_eq!(result, vec![1]); + } + + #[test] + fn test_btree_index_multiple_batches() { + let schema = create_test_schema(); + let index = BTreeMemIndex::new("id".to_string()); + + let batch1 = create_test_batch(&schema, 0); + let batch2 = create_test_batch(&schema, 10); + + // First batch: rows 0-2 + index.insert(&batch1, 0).unwrap(); + // Second batch: rows 3-5 (row_offset = 3 since batch1 had 3 rows) + index.insert(&batch2, 3).unwrap(); + + assert_eq!(index.len(), 6); + + // Value 10 is at row position 3 (first row of second batch) + let result = index.get(&ScalarValue::Int32(Some(10))); + assert!(!result.is_empty()); + assert_eq!(result, vec![3]); + } + + #[test] + fn test_btree_index_to_training_batches() { + use lance_core::ROW_ID; + use lance_index::scalar::registry::VALUE_COLUMN_NAME; + + let schema = create_test_schema(); + let index = BTreeMemIndex::new("id".to_string()); + + let batch1 = create_test_batch(&schema, 0); // ids: 0, 1, 2 + let batch2 = create_test_batch(&schema, 10); // ids: 10, 11, 12 + + index.insert(&batch1, 0).unwrap(); // row positions 0, 1, 2 + index.insert(&batch2, 3).unwrap(); // row positions 3, 4, 5 + + // Export as training batches (batch_size = 100 to get all in one batch) + let batches = index.to_training_batches(100).unwrap(); + assert_eq!(batches.len(), 1); + + let batch = &batches[0]; + assert_eq!(batch.num_rows(), 6); + + // Check schema + assert_eq!(batch.schema().field(0).name(), VALUE_COLUMN_NAME); + assert_eq!(batch.schema().field(1).name(), ROW_ID); + + // Data should be sorted by value (0, 1, 2, 10, 11, 12) + let values = batch + .column_by_name(VALUE_COLUMN_NAME) + .unwrap() + .as_any() + .downcast_ref::() + .unwrap(); + assert_eq!(values.value(0), 0); + assert_eq!(values.value(1), 1); + assert_eq!(values.value(2), 2); + assert_eq!(values.value(3), 10); + assert_eq!(values.value(4), 11); + assert_eq!(values.value(5), 12); + + // Check row IDs match positions + let row_ids = batch + .column_by_name(ROW_ID) + .unwrap() + .as_any() + .downcast_ref::() + .unwrap(); + assert_eq!(row_ids.value(0), 0); // id=0 -> row 0 + assert_eq!(row_ids.value(1), 1); // id=1 -> row 1 + assert_eq!(row_ids.value(2), 2); // id=2 -> row 2 + assert_eq!(row_ids.value(3), 3); // id=10 -> row 3 + assert_eq!(row_ids.value(4), 4); // id=11 -> row 4 + assert_eq!(row_ids.value(5), 5); // id=12 -> row 5 + } + + #[test] + fn test_btree_index_snapshot() { + let schema = create_test_schema(); + let index = BTreeMemIndex::new("id".to_string()); + + let batch = create_test_batch(&schema, 0); + index.insert(&batch, 0).unwrap(); + + let snapshot = index.snapshot(); + assert_eq!(snapshot.len(), 3); + + // Snapshot should be in sorted order + assert_eq!(snapshot[0].0 .0, ScalarValue::Int32(Some(0))); + assert_eq!(snapshot[1].0 .0, ScalarValue::Int32(Some(1))); + assert_eq!(snapshot[2].0 .0, ScalarValue::Int32(Some(2))); + } + + #[test] + fn test_fts_index_insert_and_search() { + let schema = create_test_schema(); + let index = FtsMemIndex::new("description".to_string()); + + let batch = create_test_batch(&schema, 0); + index.insert(&batch, 0).unwrap(); + + assert_eq!(index.doc_count(), 3); + + // "hello" appears in docs 0 and 2 + let entries = index.search("hello"); + assert!(!entries.is_empty()); + assert_eq!(entries.len(), 2); + + // "world" appears in docs 0 and 1 + let entries = index.search("world"); + assert!(!entries.is_empty()); + assert_eq!(entries.len(), 2); + + // "goodbye" appears only in doc 1 (row position 1) + let entries = index.search("goodbye"); + assert!(!entries.is_empty()); + assert_eq!(entries.len(), 1); + assert_eq!(entries[0].row_position, 1); + + // Non-existent term returns empty Vec + let entries = index.search("nonexistent"); + assert!(entries.is_empty()); + } + + #[test] + fn test_index_registry() { + let schema = create_test_schema(); + let mut registry = IndexRegistry::new(); + + registry.add_btree("id_idx".to_string(), "id".to_string()); + registry.add_fts("desc_idx".to_string(), "description".to_string()); + + assert_eq!(registry.len(), 2); + + let batch = create_test_batch(&schema, 0); + registry.insert(&batch, 0).unwrap(); + + let btree = registry.get_btree("id_idx").unwrap(); + assert_eq!(btree.len(), 3); + + let fts = registry.get_fts("desc_idx").unwrap(); + assert_eq!(fts.doc_count(), 3); + } + + #[test] + fn test_check_index_type_supported() { + assert!(check_index_type_supported("btree")); + assert!(check_index_type_supported("BTree")); + assert!(check_index_type_supported("ivf_pq")); + assert!(check_index_type_supported("fts")); + assert!(check_index_type_supported("inverted")); + + assert!(!check_index_type_supported("hnsw")); + assert!(!check_index_type_supported("unknown")); + } + + #[test] + fn test_from_configs() { + let configs = vec![ + MemIndexConfig::BTree(BTreeIndexConfig { + name: "pk_idx".to_string(), + column: "id".to_string(), + }), + MemIndexConfig::Fts(FtsIndexConfig { + name: "search_idx".to_string(), + column: "description".to_string(), + }), + ]; + + let registry = IndexRegistry::from_configs(&configs).unwrap(); + assert_eq!(registry.len(), 2); + assert!(registry.get_btree("pk_idx").is_some()); + assert!(registry.get_fts("search_idx").is_some()); + } + + #[test] + fn test_btree_index_max_indexed_seq() { + let schema = create_test_schema(); + let index = BTreeMemIndex::new("id".to_string()); + + // Initially max_indexed_seq is 0 + assert_eq!(index.max_indexed_seq(), 0); + + let batch = create_test_batch(&schema, 0); + + // Insert with sequence tracking + index.insert_with_seq(&batch, 0, Some(5)).unwrap(); + assert_eq!(index.max_indexed_seq(), 5); + + // Insert with higher sequence + index.insert_with_seq(&batch, 3, Some(10)).unwrap(); + assert_eq!(index.max_indexed_seq(), 10); + + // Insert with lower sequence (should not decrease) + index.insert_with_seq(&batch, 6, Some(7)).unwrap(); + assert_eq!(index.max_indexed_seq(), 10); + + // Insert without sequence (should not change) + index.insert(&batch, 9).unwrap(); + assert_eq!(index.max_indexed_seq(), 10); + } + + #[test] + fn test_fts_index_max_indexed_seq() { + let schema = create_test_schema(); + let index = FtsMemIndex::new("description".to_string()); + + // Initially max_indexed_seq is 0 + assert_eq!(index.max_indexed_seq(), 0); + + let batch = create_test_batch(&schema, 0); + + // Insert with sequence tracking + index.insert_with_seq(&batch, 0, Some(5)).unwrap(); + assert_eq!(index.max_indexed_seq(), 5); + + // Insert with higher sequence + index.insert_with_seq(&batch, 3, Some(10)).unwrap(); + assert_eq!(index.max_indexed_seq(), 10); + + // Insert with lower sequence (should not decrease) + index.insert_with_seq(&batch, 6, Some(7)).unwrap(); + assert_eq!(index.max_indexed_seq(), 10); + } + + #[test] + fn test_index_registry_coverage() { + let schema = create_test_schema(); + let mut registry = IndexRegistry::new(); + + registry.add_btree("id_idx".to_string(), "id".to_string()); + registry.add_fts("desc_idx".to_string(), "description".to_string()); + + // Initial coverage should be 0 + let coverage = registry.get_coverage(); + assert_eq!(coverage.btree_coverage.get("id_idx"), Some(&0)); + assert_eq!(coverage.fts_coverage.get("desc_idx"), Some(&0)); + + // Insert with sequence tracking + let batch = create_test_batch(&schema, 0); + registry.insert_with_seq(&batch, 0, Some(5)).unwrap(); + + let coverage = registry.get_coverage(); + assert_eq!(coverage.btree_coverage.get("id_idx"), Some(&5)); + assert_eq!(coverage.fts_coverage.get("desc_idx"), Some(&5)); + + // Insert with higher sequence + registry.insert_with_seq(&batch, 3, Some(10)).unwrap(); + + let coverage = registry.get_coverage(); + assert_eq!(coverage.btree_coverage.get("id_idx"), Some(&10)); + assert_eq!(coverage.fts_coverage.get("desc_idx"), Some(&10)); + } + + #[test] + fn test_coverage_result() { + let mut coverage = IndexCoverageInfo::default(); + coverage.btree_coverage.insert("id_idx".to_string(), 50); + coverage.ivfpq_coverage.insert("vec_idx".to_string(), 30); + coverage.fts_coverage.insert("text_idx".to_string(), 0); + + // Full coverage: visibility_seq <= max_indexed_seq + assert_eq!( + coverage.check_btree_coverage("id_idx", 50), + CoverageResult::Full + ); + assert_eq!( + coverage.check_btree_coverage("id_idx", 25), + CoverageResult::Full + ); + + // Partial coverage: visibility_seq > max_indexed_seq + assert_eq!( + coverage.check_btree_coverage("id_idx", 100), + CoverageResult::Partial { + max_indexed_seq: 50 + } + ); + + // No coverage: max_indexed_seq is 0 + assert_eq!( + coverage.check_fts_coverage("text_idx", 50), + CoverageResult::None + ); + + // No coverage: index doesn't exist + assert_eq!( + coverage.check_btree_coverage("nonexistent", 50), + CoverageResult::None + ); + + // IVF-PQ coverage + assert_eq!( + coverage.check_ivfpq_coverage("vec_idx", 30), + CoverageResult::Full + ); + assert_eq!( + coverage.check_ivfpq_coverage("vec_idx", 50), + CoverageResult::Partial { + max_indexed_seq: 30 + } + ); + } + + #[test] + fn test_coverage_min_values() { + let mut coverage = IndexCoverageInfo::default(); + coverage.btree_coverage.insert("idx1".to_string(), 50); + coverage.btree_coverage.insert("idx2".to_string(), 30); + coverage.btree_coverage.insert("idx3".to_string(), 70); + + // Minimum should be 30 + assert_eq!(coverage.min_btree_coverage(), 30); + + // Empty should be 0 + assert_eq!(coverage.min_ivfpq_coverage(), 0); + assert_eq!(coverage.min_fts_coverage(), 0); + } +} diff --git a/rust/lance/src/dataset/mem_wal/write/memtable.rs b/rust/lance/src/dataset/mem_wal/write/memtable.rs new file mode 100644 index 00000000000..808cb2e49b0 --- /dev/null +++ b/rust/lance/src/dataset/mem_wal/write/memtable.rs @@ -0,0 +1,1053 @@ +// SPDX-License-Identifier: Apache-2.0 +// SPDX-FileCopyrightText: Copyright The Lance Authors + +//! In-memory MemTable for buffering writes. + +use std::collections::{HashMap, HashSet}; +use std::sync::Arc; +use std::time::{Duration, Instant}; + +use arrow_array::{Array, RecordBatch, RecordBatchIterator}; +use arrow_schema::Schema as ArrowSchema; +use lance_core::datatypes::Schema; +use lance_core::{Error, Result}; +use lance_index::scalar::bloomfilter::sbbf::Sbbf; +use snafu::location; +use tokio::sync::RwLock; +use tracing::debug; +use uuid::Uuid; + +use super::batch_store::LockFreeBatchStore; +use super::indexes::IndexRegistry; +use crate::Dataset; + +/// Default batch store capacity when not specified. +const DEFAULT_BATCH_CAPACITY: usize = 1024; + +/// Configuration for the reader cache. +#[derive(Debug, Clone)] +pub struct CacheConfig { + /// Time-to-live for cached Dataset. Default: 60 seconds. + pub ttl: Duration, + /// Whether to always return fresh data (bypass cache). Default: false. + pub always_fresh: bool, +} + +impl Default for CacheConfig { + fn default() -> Self { + Self { + ttl: Duration::from_secs(60), + always_fresh: false, + } + } +} + +/// In-memory table for buffering writes. +/// +/// Stores Arrow RecordBatches in a lock-free append-only structure for O(1) operations. +/// Dataset is constructed on-demand for reading with configurable caching. +/// +/// # Thread Safety +/// +/// - **Writer**: Only one thread should call `insert_with_seq()` at a time. +/// This is enforced by the WriteBatchHandler architecture. +/// - **Readers**: Multiple threads can safely call read methods concurrently. +pub struct MemTable { + /// Schema for this MemTable. + schema: Arc, + /// Lance schema (for index operations). + lance_schema: Schema, + + /// Lock-free batch storage (replaces RwLock>). + /// Wrapped in Arc for sharing with scanners. + batch_store: Arc, + + /// Unique URI for on-demand Dataset construction. + dataset_uri: String, + + /// Cache configuration for reading. + cache_config: CacheConfig, + /// Cached Dataset for reading (with eventual consistency). + cached_dataset: RwLock>, + + /// Generation number (incremented on flush). + generation: u64, + + /// WAL batch mapping: batch_id -> (wal_id, position within WAL entry). + wal_batch_mapping: HashMap, + /// Last WAL entry ID that has been flushed. + last_flushed_wal_id: u64, + /// Set of batch IDs that have been flushed to WAL. + flushed_batch_ids: HashSet, + + /// Primary key bloom filter for staleness detection. + pk_bloom_filter: Sbbf, + /// Primary key field IDs (for bloom filter updates). + pk_field_ids: Vec, + + /// Index registry (optional, for indexed writes). + /// Wrapped in Arc for sharing with async index handler. + indexes: Option>, +} + +/// Cached Dataset with timestamp for eventual consistency. +struct CachedDataset { + dataset: Dataset, + created_at: Instant, + batch_count: usize, +} + +/// Default expected items for primary key bloom filter. +/// Consistent with lance-index scalar bloomfilter defaults. +const PK_BLOOM_FILTER_EXPECTED_ITEMS: u64 = 8192; + +/// Default false positive probability for primary key bloom filter. +/// Consistent with lance-index scalar bloomfilter defaults (≈ 1 in 1754). +const PK_BLOOM_FILTER_FPP: f64 = 0.00057; + +impl MemTable { + /// Create a new MemTable with default capacity. + /// + /// # Arguments + /// + /// * `schema` - Arrow schema for the data + /// * `generation` - Initial generation number (typically 1 for new, or from recovery) + /// * `pk_field_ids` - Field IDs that form the primary key (for bloom filter) + pub fn new(schema: Arc, generation: u64, pk_field_ids: Vec) -> Result { + Self::with_capacity( + schema, + generation, + pk_field_ids, + CacheConfig::default(), + DEFAULT_BATCH_CAPACITY, + ) + } + + /// Create a new MemTable with custom cache configuration. + /// + /// # Arguments + /// + /// * `schema` - Arrow schema for the data + /// * `generation` - Initial generation number (typically 1 for new, or from recovery) + /// * `pk_field_ids` - Field IDs that form the primary key (for bloom filter) + /// * `cache_config` - Configuration for reader cache (TTL, freshness) + pub fn with_cache_config( + schema: Arc, + generation: u64, + pk_field_ids: Vec, + cache_config: CacheConfig, + ) -> Result { + Self::with_capacity( + schema, + generation, + pk_field_ids, + cache_config, + DEFAULT_BATCH_CAPACITY, + ) + } + + /// Create a new MemTable with custom capacity. + /// + /// # Arguments + /// + /// * `schema` - Arrow schema for the data + /// * `generation` - Initial generation number (typically 1 for new, or from recovery) + /// * `pk_field_ids` - Field IDs that form the primary key (for bloom filter) + /// * `cache_config` - Configuration for reader cache (TTL, freshness) + /// * `batch_capacity` - Maximum number of batches before flush is required + pub fn with_capacity( + schema: Arc, + generation: u64, + pk_field_ids: Vec, + cache_config: CacheConfig, + batch_capacity: usize, + ) -> Result { + let lance_schema = Schema::try_from(schema.as_ref())?; + + // Initialize bloom filter for primary key staleness detection. + let pk_bloom_filter = + Sbbf::with_ndv_fpp(PK_BLOOM_FILTER_EXPECTED_ITEMS, PK_BLOOM_FILTER_FPP).map_err( + |e| { + Error::io( + format!("Failed to create bloom filter for primary key: {}", e), + location!(), + ) + }, + )?; + + // Generate unique URI for on-demand Dataset construction + let dataset_uri = format!("memory://{}", Uuid::new_v4()); + + // Create lock-free batch store + let batch_store = Arc::new(LockFreeBatchStore::with_capacity(batch_capacity)); + + Ok(Self { + schema, + lance_schema, + batch_store, + dataset_uri, + cache_config, + cached_dataset: RwLock::new(None), + generation, + wal_batch_mapping: HashMap::new(), + last_flushed_wal_id: 0, + flushed_batch_ids: HashSet::new(), + pk_bloom_filter, + pk_field_ids, + indexes: None, + }) + } + + /// Set the index registry for indexed writes. + pub fn set_indexes(&mut self, indexes: IndexRegistry) { + self.indexes = Some(Arc::new(indexes)); + } + + /// Set the index registry with an Arc (for sharing with async handler). + pub fn set_indexes_arc(&mut self, indexes: Arc) { + self.indexes = Some(indexes); + } + + /// Insert a record batch into the MemTable. + /// + /// O(1) append. + /// + /// # Returns + /// + /// The batch ID for the inserted batch. + /// + /// Note: This method doesn't track MVCC sequence numbers. + /// Use `insert_with_seq` for MVCC-aware inserts. + /// + /// # Single Writer Requirement + /// + /// This method MUST only be called from the single writer task. + pub async fn insert(&mut self, batch: RecordBatch) -> Result { + self.insert_with_seq(batch, 0).await + } + + /// Insert a batch with an MVCC sequence number. + /// + /// O(1) append. + /// + /// # Arguments + /// + /// * `batch` - The RecordBatch to insert + /// * `seq` - MVCC sequence number (0 means not MVCC-tracked) + /// + /// # Returns + /// + /// The batch ID for the inserted batch. + /// + /// # Single Writer Requirement + /// + /// This method MUST only be called from the single writer task. + pub async fn insert_with_seq(&mut self, batch: RecordBatch, seq: u64) -> Result { + // Validate schema compatibility + if batch.schema() != self.schema { + return Err(Error::invalid_input( + "Batch schema doesn't match MemTable schema", + location!(), + )); + } + + let num_rows = batch.num_rows(); + if num_rows == 0 { + return Err(Error::invalid_input( + "Cannot insert empty batch", + location!(), + )); + } + + // Row offset is the current row count (before adding this batch) + let row_offset = self.batch_store.total_rows() as u64; + + // Update bloom filter with primary keys + self.update_bloom_filter(&batch)?; + + // Update indexes with sequence tracking for coverage + if let Some(ref indexes) = self.indexes { + indexes.insert_with_seq(&batch, row_offset, Some(seq))?; + } + + // Append to batch store + let batch_id = self.batch_store.append(batch, seq).map_err(|_| { + Error::invalid_input( + "MemTable batch store is full - should have been flushed", + location!(), + ) + })?; + + debug!( + "Inserted {} rows into MemTable (batch_id={}, seq={}, row_offset={}, total_rows={})", + num_rows, + batch_id, + seq, + row_offset, + self.batch_store.total_rows() + ); + + Ok(batch_id) + } + + /// Insert a batch without updating indexes (for async index mode). + /// + /// This method is used when `sync_indexed_write: false`. The caller is responsible + /// for queuing an async index update via `IndexUpdateHandler`. + /// + /// Returns `(batch_id, row_offset)` so the caller can queue the index update. + /// + /// # Single Writer Requirement + /// + /// This method MUST only be called from the single writer task. + pub async fn insert_batch_only( + &mut self, + batch: RecordBatch, + seq: u64, + ) -> Result<(usize, u64)> { + // Validate schema compatibility + if batch.schema() != self.schema { + return Err(Error::invalid_input( + "Batch schema doesn't match MemTable schema", + location!(), + )); + } + + let num_rows = batch.num_rows(); + if num_rows == 0 { + return Err(Error::invalid_input( + "Cannot insert empty batch", + location!(), + )); + } + + // Row offset is the current row count (before adding this batch) + let row_offset = self.batch_store.total_rows() as u64; + + // Update bloom filter with primary keys + self.update_bloom_filter(&batch)?; + + // NOTE: Index update is skipped - caller will queue async update + + // Append to batch store + let batch_id = self.batch_store.append(batch, seq).map_err(|_| { + Error::invalid_input( + "MemTable batch store is full - should have been flushed", + location!(), + ) + })?; + + debug!( + "Inserted {} rows into MemTable (batch_only, batch_id={}, seq={}, row_offset={}, total_rows={})", + num_rows, + batch_id, + seq, + row_offset, + self.batch_store.total_rows() + ); + + Ok((batch_id, row_offset)) + } + + /// Check if the MemTable should be flushed. + /// + /// Returns true if the batch store is full or estimated size exceeds threshold. + pub fn should_flush(&self, max_bytes: usize) -> bool { + self.batch_store.is_full() || self.batch_store.estimated_bytes() >= max_bytes + } + + /// Get the maximum sequence number in this MemTable. + pub fn max_sequence(&self) -> u64 { + self.batch_store.max_sequence() + } + + /// Get batches visible at a specific sequence number (for MVCC reads). + /// + /// + /// Returns all batches with sequence <= visibility_seq. + /// Batches with sequence = 0 are always visible (not MVCC-tracked). + /// + /// # Arguments + /// + /// * `visibility_seq` - The maximum sequence number to include + /// + /// # Returns + /// + /// Vector of visible batches. + pub async fn get_visible_batches(&self, visibility_seq: u64) -> Vec { + self.batch_store.visible_record_batches(visibility_seq) + } + + /// Get the sequence number for a specific batch ID. + pub async fn get_batch_sequence(&self, batch_id: usize) -> Option { + self.batch_store.get_sequence(batch_id) + } + + /// Get batch IDs visible at a specific sequence number. + /// + /// This is useful for filtering index results by MVCC visibility. + /// Returns batch IDs where sequence <= visibility_seq or sequence == 0 (untracked). + pub async fn get_visible_batch_ids(&self, visibility_seq: u64) -> Vec { + self.batch_store.visible_batch_ids(visibility_seq) + } + + /// Check if a specific batch is visible at a sequence number. + /// + /// Returns true if the batch is visible, false if not visible or doesn't exist. + pub async fn is_batch_visible(&self, batch_id: usize, visibility_seq: u64) -> bool { + self.batch_store.is_batch_visible(batch_id, visibility_seq) + } + + /// Scan batches visible at a specific sequence number. + /// + /// This combines `get_visible_batches` with the scan interface. + pub async fn scan_batches_at_seq(&self, visibility_seq: u64) -> Result> { + Ok(self.get_visible_batches(visibility_seq).await) + } + + /// Update the bloom filter with primary keys from a batch. + fn update_bloom_filter(&mut self, batch: &RecordBatch) -> Result<()> { + let bloom = &mut self.pk_bloom_filter; + + // Get primary key columns + let pk_columns: Vec<_> = self + .pk_field_ids + .iter() + .filter_map(|&field_id| { + // Find column by field ID + self.lance_schema + .fields + .iter() + .position(|f| f.id == field_id) + .and_then(|idx| batch.column(idx).clone().into()) + }) + .collect(); + + if pk_columns.len() != self.pk_field_ids.len() { + return Err(Error::invalid_input( + "Batch is missing primary key columns", + location!(), + )); + } + + // Insert each row's primary key hash + for row_idx in 0..batch.num_rows() { + let hash = compute_row_hash(&pk_columns, row_idx); + bloom.insert_hash(hash); + } + + Ok(()) + } + + /// Mark batches as flushed to WAL. + /// + /// Updates the WAL batch mapping for use during MemTable flush. + pub fn mark_wal_flushed(&mut self, batch_ids: &[usize], wal_id: u64, positions: &[usize]) { + for (idx, &batch_id) in batch_ids.iter().enumerate() { + self.wal_batch_mapping + .insert(batch_id, (wal_id, positions[idx])); + self.flushed_batch_ids.insert(batch_id); + } + self.last_flushed_wal_id = wal_id; + } + + /// Get or create a Dataset for reading. + /// + /// Uses caching based on the configured eventual consistency strategy: + /// - If `always_fresh` is true, always constructs a new Dataset + /// - Otherwise, returns cached Dataset if within TTL and has same batch count + /// + /// Returns None if there's no data to read. + pub async fn get_or_create_dataset(&self) -> Result> { + let current_batch_count = self.batch_count(); + if current_batch_count == 0 { + return Ok(None); + } + + // Check if we can use cached dataset + if !self.cache_config.always_fresh { + let cached = self.cached_dataset.read().await; + if let Some(ref cached_ds) = *cached { + // Check if cache is still valid (within TTL and same batch count) + if cached_ds.batch_count == current_batch_count + && cached_ds.created_at.elapsed() < self.cache_config.ttl + { + debug!( + "Using cached Dataset (batch_count={}, age={:?})", + current_batch_count, + cached_ds.created_at.elapsed() + ); + return Ok(Some(cached_ds.dataset.clone())); + } + } + } + + // Need to construct a new Dataset + debug!( + "Constructing new Dataset from batches (batch_count={})", + current_batch_count + ); + + let dataset = self.construct_dataset().await?; + + // Cache the new dataset (unless always_fresh) + if !self.cache_config.always_fresh { + let mut cached = self.cached_dataset.write().await; + *cached = Some(CachedDataset { + dataset: dataset.clone(), + created_at: Instant::now(), + batch_count: current_batch_count, + }); + } + + Ok(Some(dataset)) + } + + /// Construct a fresh Dataset from stored batches. + async fn construct_dataset(&self) -> Result { + if self.batch_store.is_empty() { + return Err(Error::invalid_input( + "Cannot construct Dataset: no batches", + location!(), + )); + } + + // Get batches + let batches = self.batch_store.to_vec(); + + // Create a new Dataset with all the batches + let reader = RecordBatchIterator::new(batches.into_iter().map(Ok), self.schema.clone()); + let dataset = Dataset::write(reader, &self.dataset_uri, None).await?; + + Ok(dataset) + } + + /// Scan all data from the MemTable. + /// + /// Returns all batches for flushing to persistent storage. + pub async fn scan_batches(&self) -> Result> { + Ok(self.batch_store.to_vec()) + } + + /// Scan specific batches by their batch_ids. + pub async fn scan_batches_by_ids(&self, batch_ids: &[usize]) -> Result> { + let mut results = Vec::with_capacity(batch_ids.len()); + for &batch_id in batch_ids { + let batch = self.batch_store.get_batch(batch_id).ok_or_else(|| { + Error::invalid_input(format!("Batch {} not found", batch_id), location!()) + })?; + results.push(batch.clone()); + } + Ok(results) + } + + /// Get batches for WAL flush. + pub async fn get_batches_for_wal(&self, batch_ids: &[usize]) -> Result> { + self.scan_batches_by_ids(batch_ids).await + } + + /// Check if a primary key might exist in this MemTable. + /// + /// Uses bloom filter for fast negative lookups. + /// Returns true if the key might exist, false if definitely not present. + pub fn might_contain_pk(&self, pk_hash: u64) -> bool { + self.pk_bloom_filter.check_hash(pk_hash) + } + + /// Get the schema. + pub fn schema(&self) -> &Arc { + &self.schema + } + + /// Get the Lance schema. + pub fn lance_schema(&self) -> &Schema { + &self.lance_schema + } + + /// Get the generation number. + pub fn generation(&self) -> u64 { + self.generation + } + + /// Get total row count. + pub fn row_count(&self) -> usize { + self.batch_store.total_rows() + } + + /// Get batch count. + /// + /// Note: This is now synchronous (no longer requires async). + pub fn batch_count(&self) -> usize { + self.batch_store.len() + } + + /// Get batch count (async version for API compatibility). + #[allow(clippy::unused_async)] + pub async fn batch_count_async(&self) -> usize { + self.batch_count() + } + + /// Get estimated size in bytes. + pub fn estimated_size(&self) -> usize { + self.batch_store.estimated_bytes() + self.pk_bloom_filter.estimated_memory_size() + } + + /// Get the WAL batch mapping. + pub fn wal_batch_mapping(&self) -> &HashMap { + &self.wal_batch_mapping + } + + /// Get the last flushed WAL ID. + pub fn last_flushed_wal_id(&self) -> u64 { + self.last_flushed_wal_id + } + + /// Get the bloom filter for serialization. + pub fn bloom_filter(&self) -> &Sbbf { + &self.pk_bloom_filter + } + + /// Get reference to indexes. + pub fn indexes(&self) -> Option<&IndexRegistry> { + self.indexes.as_ref().map(|arc| arc.as_ref()) + } + + /// Get the Arc-wrapped indexes (for sharing with async handler). + pub fn indexes_arc(&self) -> Option> { + self.indexes.clone() + } + + /// Take the index registry (for flushing). + /// Returns the Arc, which may be shared with async handler. + pub fn take_indexes(&mut self) -> Option> { + self.indexes.take() + } + + /// Check if all batches have been flushed to WAL. + pub fn all_flushed_to_wal(&self) -> bool { + self.flushed_batch_ids.len() >= self.batch_count() + } + + /// Get unflushed batch IDs. + pub fn unflushed_batch_ids(&self) -> Vec { + let batch_count = self.batch_count(); + (0..batch_count) + .filter(|id| !self.flushed_batch_ids.contains(id)) + .collect() + } + + /// Get cache configuration. + pub fn cache_config(&self) -> &CacheConfig { + &self.cache_config + } + + /// Get the batch store capacity. + pub fn batch_capacity(&self) -> usize { + self.batch_store.capacity() + } + + /// Get remaining batch capacity. + pub fn remaining_batch_capacity(&self) -> usize { + self.batch_store.remaining_capacity() + } + + /// Check if batch store is full. + pub fn is_batch_store_full(&self) -> bool { + self.batch_store.is_full() + } + + /// Create a scanner for querying this MemTable. + /// + /// # Arguments + /// + /// * `visibility_seq` - MVCC visibility sequence number for consistent reads + /// + /// # Example + /// + /// ```ignore + /// let scanner = memtable.scan(visibility_seq); + /// let results = scanner + /// .project(&["id", "name"]) + /// .filter("id > 10")? + /// .try_into_batch() + /// .await?; + /// ``` + pub fn scan(&self, visibility_seq: u64) -> crate::dataset::mem_wal::read::MemTableScanner { + crate::dataset::mem_wal::read::MemTableScanner::new( + self.batch_store.clone(), + self.indexes.clone(), + self.schema.clone(), + visibility_seq, + ) + } + + /// Get a clone of the batch store Arc for external use. + pub fn batch_store(&self) -> Arc { + self.batch_store.clone() + } +} + +/// Compute a hash for a row's primary key values. +fn compute_row_hash(columns: &[Arc], row_idx: usize) -> u64 { + use std::hash::{Hash, Hasher}; + + let mut hasher = std::collections::hash_map::DefaultHasher::new(); + + for col in columns { + // Hash the scalar value at this row + let is_null = col.is_null(row_idx); + is_null.hash(&mut hasher); + + if !is_null { + // Hash based on data type + if let Some(arr) = col.as_any().downcast_ref::() { + arr.value(row_idx).hash(&mut hasher); + } else if let Some(arr) = col.as_any().downcast_ref::() { + arr.value(row_idx).hash(&mut hasher); + } else if let Some(arr) = col.as_any().downcast_ref::() { + arr.value(row_idx).hash(&mut hasher); + } else if let Some(arr) = col.as_any().downcast_ref::() { + arr.value(row_idx).hash(&mut hasher); + } + // Add more types as needed + } + } + + hasher.finish() +} + +#[cfg(test)] +mod tests { + use super::*; + use arrow_array::{Int32Array, StringArray}; + use arrow_schema::{DataType, Field}; + + fn create_test_schema() -> Arc { + Arc::new(ArrowSchema::new(vec![ + Field::new("id", DataType::Int32, false), + Field::new("name", DataType::Utf8, true), + ])) + } + + fn create_test_batch(schema: &ArrowSchema, num_rows: usize) -> RecordBatch { + RecordBatch::try_new( + Arc::new(schema.clone()), + vec![ + Arc::new(Int32Array::from_iter_values(0..num_rows as i32)), + Arc::new(StringArray::from_iter_values( + (0..num_rows).map(|i| format!("name_{}", i)), + )), + ], + ) + .unwrap() + } + + #[tokio::test] + async fn test_memtable_insert() { + let schema = create_test_schema(); + let mut memtable = MemTable::new(schema.clone(), 1, vec![]).unwrap(); + + let batch = create_test_batch(&schema, 10); + let batch_id = memtable.insert(batch).await.unwrap(); + + assert_eq!(batch_id, 0); + assert_eq!(memtable.row_count(), 10); + assert_eq!(memtable.batch_count(), 1); + // Dataset is constructed on-demand + assert!(memtable.get_or_create_dataset().await.unwrap().is_some()); + } + + #[tokio::test] + async fn test_memtable_multiple_inserts() { + let schema = create_test_schema(); + let mut memtable = MemTable::new(schema.clone(), 1, vec![]).unwrap(); + + for i in 0..3 { + let batch = create_test_batch(&schema, 10); + let batch_id = memtable.insert(batch).await.unwrap(); + assert_eq!(batch_id, i); + } + + assert_eq!(memtable.row_count(), 30); + assert_eq!(memtable.batch_count(), 3); + } + + #[tokio::test] + async fn test_memtable_scan() { + let schema = create_test_schema(); + let mut memtable = MemTable::new(schema.clone(), 1, vec![]).unwrap(); + + memtable + .insert(create_test_batch(&schema, 10)) + .await + .unwrap(); + memtable + .insert(create_test_batch(&schema, 5)) + .await + .unwrap(); + + let batches = memtable.scan_batches().await.unwrap(); + let total_rows: usize = batches.iter().map(|b| b.num_rows()).sum(); + assert_eq!(total_rows, 15); + } + + #[tokio::test] + async fn test_memtable_wal_mapping() { + let schema = create_test_schema(); + let mut memtable = MemTable::new(schema.clone(), 1, vec![]).unwrap(); + + let batch_id = memtable + .insert(create_test_batch(&schema, 10)) + .await + .unwrap(); + assert!(!memtable.all_flushed_to_wal()); + + memtable.mark_wal_flushed(&[batch_id], 5, &[0]); + + assert!(memtable.all_flushed_to_wal()); + assert_eq!(memtable.wal_batch_mapping().get(&batch_id), Some(&(5, 0))); + assert_eq!(memtable.last_flushed_wal_id(), 5); + } + + #[tokio::test] + async fn test_memtable_unflushed_batches() { + let schema = create_test_schema(); + let mut memtable = MemTable::new(schema.clone(), 1, vec![]).unwrap(); + + let batch1 = memtable + .insert(create_test_batch(&schema, 10)) + .await + .unwrap(); + let batch2 = memtable + .insert(create_test_batch(&schema, 5)) + .await + .unwrap(); + + assert_eq!(memtable.unflushed_batch_ids(), vec![batch1, batch2]); + + memtable.mark_wal_flushed(&[batch1], 1, &[0]); + + assert_eq!(memtable.unflushed_batch_ids(), vec![batch2]); + } + + #[tokio::test] + async fn test_memtable_mvcc_sequence_tracking() { + let schema = create_test_schema(); + let mut memtable = MemTable::new(schema.clone(), 1, vec![]).unwrap(); + + // Insert with sequence numbers + memtable + .insert_with_seq(create_test_batch(&schema, 10), 1) + .await + .unwrap(); + memtable + .insert_with_seq(create_test_batch(&schema, 5), 2) + .await + .unwrap(); + memtable + .insert_with_seq(create_test_batch(&schema, 3), 3) + .await + .unwrap(); + + // Max sequence should be 3 + assert_eq!(memtable.max_sequence(), 3); + + // At seq 2, only batches with seq <= 2 should be visible + let visible = memtable.get_visible_batches(2).await; + assert_eq!(visible.len(), 2); + let total_rows: usize = visible.iter().map(|b| b.num_rows()).sum(); + assert_eq!(total_rows, 15); // 10 + 5 + + // At seq 3, all batches should be visible + let visible = memtable.get_visible_batches(3).await; + assert_eq!(visible.len(), 3); + + // At seq 0, no batches should be visible (since all have seq > 0) + let visible = memtable.get_visible_batches(0).await; + assert_eq!(visible.len(), 0); + } + + #[tokio::test] + async fn test_memtable_mvcc_untracked_batches() { + let schema = create_test_schema(); + let mut memtable = MemTable::new(schema.clone(), 1, vec![]).unwrap(); + + // Insert with seq = 0 (untracked - always visible) + memtable + .insert(create_test_batch(&schema, 10)) + .await + .unwrap(); + + // Insert with seq = 5 + memtable + .insert_with_seq(create_test_batch(&schema, 5), 5) + .await + .unwrap(); + + // At seq 0, only untracked batch should be visible + let visible = memtable.get_visible_batches(0).await; + assert_eq!(visible.len(), 1); + assert_eq!(visible[0].num_rows(), 10); + + // At seq 5, both should be visible + let visible = memtable.get_visible_batches(5).await; + assert_eq!(visible.len(), 2); + + // Max sequence should be 5 (untracked batches don't count) + assert_eq!(memtable.max_sequence(), 5); + } + + #[tokio::test] + async fn test_memtable_get_batch_sequence() { + let schema = create_test_schema(); + let mut memtable = MemTable::new(schema.clone(), 1, vec![]).unwrap(); + + let batch_id_0 = memtable + .insert_with_seq(create_test_batch(&schema, 10), 42) + .await + .unwrap(); + let batch_id_1 = memtable + .insert_with_seq(create_test_batch(&schema, 5), 100) + .await + .unwrap(); + + assert_eq!(memtable.get_batch_sequence(batch_id_0).await, Some(42)); + assert_eq!(memtable.get_batch_sequence(batch_id_1).await, Some(100)); + assert_eq!(memtable.get_batch_sequence(999).await, None); + } + + #[tokio::test] + async fn test_memtable_get_visible_batch_ids() { + let schema = create_test_schema(); + let mut memtable = MemTable::new(schema.clone(), 1, vec![]).unwrap(); + + // Insert batches with different sequences + memtable + .insert_with_seq(create_test_batch(&schema, 10), 1) + .await + .unwrap(); + memtable + .insert_with_seq(create_test_batch(&schema, 5), 2) + .await + .unwrap(); + memtable + .insert_with_seq(create_test_batch(&schema, 3), 3) + .await + .unwrap(); + + // At seq 2, batch_ids 0 and 1 should be visible + let visible_ids = memtable.get_visible_batch_ids(2).await; + assert_eq!(visible_ids, vec![0, 1]); + + // At seq 3, all batch_ids should be visible + let visible_ids = memtable.get_visible_batch_ids(3).await; + assert_eq!(visible_ids, vec![0, 1, 2]); + + // At seq 0, no batch_ids should be visible + let visible_ids = memtable.get_visible_batch_ids(0).await; + assert!(visible_ids.is_empty()); + } + + #[tokio::test] + async fn test_memtable_is_batch_visible() { + let schema = create_test_schema(); + let mut memtable = MemTable::new(schema.clone(), 1, vec![]).unwrap(); + + memtable + .insert_with_seq(create_test_batch(&schema, 10), 5) + .await + .unwrap(); + memtable + .insert(create_test_batch(&schema, 5)) + .await // seq = 0, always visible + .unwrap(); + + // batch_id 0 has seq 5 + assert!(!memtable.is_batch_visible(0, 4).await); + assert!(memtable.is_batch_visible(0, 5).await); + assert!(memtable.is_batch_visible(0, 6).await); + + // batch_id 1 has seq 0 (always visible) + assert!(memtable.is_batch_visible(1, 0).await); + assert!(memtable.is_batch_visible(1, 100).await); + + // Non-existent batch + assert!(!memtable.is_batch_visible(999, 100).await); + } + + #[tokio::test] + async fn test_memtable_scan_batches_at_seq() { + let schema = create_test_schema(); + let mut memtable = MemTable::new(schema.clone(), 1, vec![]).unwrap(); + + memtable + .insert_with_seq(create_test_batch(&schema, 10), 1) + .await + .unwrap(); + memtable + .insert_with_seq(create_test_batch(&schema, 5), 2) + .await + .unwrap(); + + let batches = memtable.scan_batches_at_seq(1).await.unwrap(); + assert_eq!(batches.len(), 1); + assert_eq!(batches[0].num_rows(), 10); + + let batches = memtable.scan_batches_at_seq(2).await.unwrap(); + assert_eq!(batches.len(), 2); + } + + #[tokio::test] + async fn test_memtable_capacity() { + let schema = create_test_schema(); + let mut memtable = + MemTable::with_capacity(schema.clone(), 1, vec![], CacheConfig::default(), 3).unwrap(); + + assert_eq!(memtable.batch_capacity(), 3); + assert_eq!(memtable.remaining_batch_capacity(), 3); + assert!(!memtable.is_batch_store_full()); + + // Fill up the store + memtable + .insert(create_test_batch(&schema, 10)) + .await + .unwrap(); + memtable + .insert(create_test_batch(&schema, 10)) + .await + .unwrap(); + memtable + .insert(create_test_batch(&schema, 10)) + .await + .unwrap(); + + assert!(memtable.is_batch_store_full()); + assert_eq!(memtable.remaining_batch_capacity(), 0); + + // Next insert should fail + let result = memtable.insert(create_test_batch(&schema, 10)).await; + assert!(result.is_err()); + } + + #[tokio::test] + async fn test_memtable_should_flush() { + let schema = create_test_schema(); + let mut memtable = + MemTable::with_capacity(schema.clone(), 1, vec![], CacheConfig::default(), 2).unwrap(); + + // Not full yet + assert!(!memtable.should_flush(1024 * 1024)); + + memtable + .insert(create_test_batch(&schema, 10)) + .await + .unwrap(); + memtable + .insert(create_test_batch(&schema, 10)) + .await + .unwrap(); + + // Now full + assert!(memtable.should_flush(1024 * 1024)); + } +} diff --git a/rust/lance/src/dataset/mem_wal/write/memtable_perf_test.rs b/rust/lance/src/dataset/mem_wal/write/memtable_perf_test.rs new file mode 100644 index 00000000000..48018dc2a18 --- /dev/null +++ b/rust/lance/src/dataset/mem_wal/write/memtable_perf_test.rs @@ -0,0 +1,269 @@ +// SPDX-License-Identifier: Apache-2.0 +// SPDX-FileCopyrightText: Copyright The Lance Authors + +//! Performance tests for MemTable to identify bottlenecks with large batch counts. + +#[cfg(test)] +#[allow(clippy::print_stdout)] +mod tests { + use std::sync::Arc; + use std::time::Instant; + + use arrow_array::{Int32Array, RecordBatch, StringArray}; + use arrow_schema::{DataType, Field, Schema as ArrowSchema}; + + use crate::dataset::mem_wal::write::memtable::{CacheConfig, MemTable}; + + fn create_test_schema() -> Arc { + Arc::new(ArrowSchema::new(vec![ + Field::new("id", DataType::Int32, false), + Field::new("name", DataType::Utf8, true), + ])) + } + + fn create_test_batch(schema: &ArrowSchema, start_id: i32, num_rows: usize) -> RecordBatch { + RecordBatch::try_new( + Arc::new(schema.clone()), + vec![ + Arc::new(Int32Array::from_iter_values( + start_id..start_id + num_rows as i32, + )), + Arc::new(StringArray::from_iter_values( + (0..num_rows).map(|i| format!("name_{}", start_id as usize + i)), + )), + ], + ) + .unwrap() + } + + /// Test that inserting many batches is O(1) per insert. + #[tokio::test] + async fn test_memtable_insert_many_batches_performance() { + let schema = create_test_schema(); + let mut memtable = MemTable::new(schema.clone(), 1, vec![]).unwrap(); + + let num_batches = 1000; + let batch_size = 20; + + let start = Instant::now(); + for i in 0..num_batches { + let batch = create_test_batch(&schema, (i * batch_size) as i32, batch_size); + memtable.insert(batch).await.unwrap(); + } + let insert_duration = start.elapsed(); + + println!( + "Inserted {} batches ({} rows) in {:?} ({:.2} batches/sec)", + num_batches, + num_batches * batch_size, + insert_duration, + num_batches as f64 / insert_duration.as_secs_f64() + ); + + assert_eq!(memtable.row_count(), num_batches * batch_size); + assert_eq!(memtable.batch_count(), num_batches); + + // Insert should be fast - less than 100ms per 1000 batches + assert!( + insert_duration.as_millis() < 5000, + "Insert took too long: {:?}", + insert_duration + ); + } + + /// Test that get_or_create_dataset with many fragments is the bottleneck. + /// This test demonstrates the O(n^2) issue when constructing a Dataset + /// from many batches. + #[tokio::test] + async fn test_memtable_construct_dataset_bottleneck() { + let schema = create_test_schema(); + // Use larger capacity for this test + let mut memtable = + MemTable::with_capacity(schema.clone(), 1, vec![], CacheConfig::default(), 2500) + .unwrap(); + + // Insert batches in stages and measure construct_dataset time + let stages = vec![100, 500, 1000, 2000]; + + for &target in &stages { + // Insert more batches to reach target + let current = memtable.batch_count(); + for i in current..target { + let batch = create_test_batch(&schema, (i * 20) as i32, 20); + memtable.insert(batch).await.unwrap(); + } + + // Measure get_or_create_dataset time + // Note: We need to invalidate cache to force reconstruction + let start = Instant::now(); + let dataset = memtable.get_or_create_dataset().await.unwrap(); + let construct_duration = start.elapsed(); + + let row_count = if let Some(ds) = &dataset { + ds.count_rows(None).await.unwrap_or(0) + } else { + 0 + }; + println!( + "construct_dataset with {} fragments: {:?} ({} rows)", + target, construct_duration, row_count + ); + } + } + + /// Test scanning batches directly from FragmentStore (should be fast). + #[tokio::test] + async fn test_fragment_store_get_all_batches_performance() { + let schema = create_test_schema(); + let mut memtable = MemTable::new(schema.clone(), 1, vec![]).unwrap(); + + let num_batches = 1000; + let batch_size = 20; + + // Insert batches + for i in 0..num_batches { + let batch = create_test_batch(&schema, (i * batch_size) as i32, batch_size); + memtable.insert(batch).await.unwrap(); + } + + // Measure scan_batches time + let start = Instant::now(); + let batches = memtable.scan_batches().await.unwrap(); + let duration = start.elapsed(); + + println!("scan_batches with {} batches: {:?}", num_batches, duration); + assert_eq!(batches.len(), num_batches); + + // get_all_batches should be very fast (just cloning references) + assert!( + duration.as_millis() < 100, + "get_all_batches took too long: {:?}", + duration + ); + } + + /// Test that the issue is Dataset::write with many batches creating + /// many fragments (O(n) manifest growth per fragment = O(n^2) total). + #[tokio::test] + async fn test_dataset_write_many_batches_is_slow() { + use crate::Dataset; + use arrow_array::RecordBatchIterator; + + let schema = create_test_schema(); + + // Create batches + let num_batches = 500; // Use fewer batches to avoid timeout + let batch_size = 20; + let batches: Vec = (0..num_batches) + .map(|i| create_test_batch(&schema, (i * batch_size) as i32, batch_size)) + .collect(); + + // Measure Dataset::write time with many batches + let uri = format!("memory://test_many_batches_{}", uuid::Uuid::new_v4()); + let reader = RecordBatchIterator::new(batches.into_iter().map(Ok), schema.clone()); + + let start = Instant::now(); + let dataset = Dataset::write(reader, &uri, None).await.unwrap(); + let write_duration = start.elapsed(); + + println!( + "Dataset::write with {} batches: {:?} ({} fragments)", + num_batches, + write_duration, + dataset.get_fragments().len() + ); + + // Note: This creates num_batches fragments! + // Each fragment addition has O(n) manifest overhead. + // With n batches, total is O(n^2). + } + + /// Test with 10000 batches to reproduce the benchmark hang. + #[tokio::test] + async fn test_memtable_10000_batches() { + let schema = create_test_schema(); + // Use larger capacity for this test (10000 batches needed) + let mut memtable = + MemTable::with_capacity(schema.clone(), 1, vec![], CacheConfig::default(), 10500) + .unwrap(); + + let num_batches = 10000; + let batch_size = 20; + + println!("Starting insert of {} batches...", num_batches); + let start = Instant::now(); + for i in 0..num_batches { + let batch = create_test_batch(&schema, (i * batch_size) as i32, batch_size); + memtable.insert(batch).await.unwrap(); + if i % 1000 == 0 && i > 0 { + println!(" Inserted {} batches in {:?}", i, start.elapsed()); + } + } + let insert_duration = start.elapsed(); + println!( + "Inserted {} batches ({} rows) in {:?}", + num_batches, + num_batches * batch_size, + insert_duration + ); + + // Now try to construct dataset - this might hang + println!("Constructing dataset..."); + let start = Instant::now(); + let dataset = memtable.get_or_create_dataset().await.unwrap(); + let construct_duration = start.elapsed(); + let row_count = if let Some(ds) = &dataset { + ds.count_rows(None).await.unwrap_or(0) + } else { + 0 + }; + println!( + "Constructed dataset in {:?} ({} rows)", + construct_duration, row_count + ); + } + + /// Test the proposed fix: concat all batches before writing. + #[tokio::test] + async fn test_concat_batches_before_write_is_fast() { + use crate::Dataset; + use arrow::compute::concat_batches; + use arrow_array::RecordBatchIterator; + + let schema = create_test_schema(); + + // Create batches + let num_batches = 500; + let batch_size = 20; + let batches: Vec = (0..num_batches) + .map(|i| create_test_batch(&schema, (i * batch_size) as i32, batch_size)) + .collect(); + + // Concat all batches into one + let start = Instant::now(); + let combined = concat_batches(&schema, batches.iter()).unwrap(); + let concat_duration = start.elapsed(); + println!( + "concat_batches: {:?} ({} rows)", + concat_duration, + combined.num_rows() + ); + + // Write single batch + let uri = format!("memory://test_single_batch_{}", uuid::Uuid::new_v4()); + let reader = RecordBatchIterator::new([Ok(combined)], schema.clone()); + + let start = Instant::now(); + let dataset = Dataset::write(reader, &uri, None).await.unwrap(); + let write_duration = start.elapsed(); + + println!( + "Dataset::write with 1 combined batch: {:?} ({} fragments)", + write_duration, + dataset.get_fragments().len() + ); + + // This should be MUCH faster because we only create 1 fragment + assert_eq!(dataset.get_fragments().len(), 1); + } +} diff --git a/rust/lance/src/dataset/mem_wal/write/sequenced_batch.rs b/rust/lance/src/dataset/mem_wal/write/sequenced_batch.rs new file mode 100644 index 00000000000..052c86d1b05 --- /dev/null +++ b/rust/lance/src/dataset/mem_wal/write/sequenced_batch.rs @@ -0,0 +1,209 @@ +// SPDX-License-Identifier: Apache-2.0 +// SPDX-FileCopyrightText: Copyright The Lance Authors + +//! MVCC-aware RecordBatch wrapper. + +use arrow_array::RecordBatch; + +/// A RecordBatch with MVCC sequence number. +/// +/// Each write to the MemTable creates a SequencedBatch with a unique, +/// monotonically increasing sequence number. +#[derive(Clone, Debug)] +pub struct SequencedBatch { + /// The RecordBatch data. + batch: RecordBatch, + /// MVCC sequence number assigned during write. + /// Higher numbers are newer writes. + seq: u64, + /// Batch ID within the MemTable (for index/WAL tracking). + batch_id: usize, +} + +impl SequencedBatch { + /// Create a new sequenced batch. + pub fn new(batch: RecordBatch, seq: u64, batch_id: usize) -> Self { + Self { + batch, + seq, + batch_id, + } + } + + /// Get the RecordBatch. + pub fn batch(&self) -> &RecordBatch { + &self.batch + } + + /// Get the sequence number. + pub fn seq(&self) -> u64 { + self.seq + } + + /// Get the batch ID. + pub fn batch_id(&self) -> usize { + self.batch_id + } + + /// Get the number of rows in this batch. + pub fn num_rows(&self) -> usize { + self.batch.num_rows() + } + + /// Get the schema of this batch. + pub fn schema(&self) -> arrow_schema::SchemaRef { + self.batch.schema() + } + + /// Check if this batch is visible at the given sequence number. + /// + /// A batch is visible if its sequence number is <= the visibility cutoff. + pub fn is_visible_at(&self, visibility_seq: u64) -> bool { + self.seq <= visibility_seq + } +} + +/// Filter a collection of sequenced batches by visibility. +/// +/// Returns only batches that are visible at the given sequence number. +pub fn filter_visible<'a>( + batches: impl Iterator, + visibility_seq: u64, +) -> Vec<&'a SequencedBatch> { + batches + .filter(|batch| batch.is_visible_at(visibility_seq)) + .collect() +} + +/// Builder for creating SequencedBatch instances with automatic sequence assignment. +pub struct SequencedBatchBuilder { + next_batch_id: usize, +} + +impl SequencedBatchBuilder { + /// Create a new builder starting at batch ID 0. + pub fn new() -> Self { + Self { next_batch_id: 0 } + } + + /// Create a new builder starting at the given batch ID. + pub fn with_start_batch_id(start_id: usize) -> Self { + Self { + next_batch_id: start_id, + } + } + + /// Build a sequenced batch with the given sequence number. + /// + /// The batch ID is automatically assigned and incremented. + pub fn build(&mut self, batch: RecordBatch, seq: u64) -> SequencedBatch { + let batch_id = self.next_batch_id; + self.next_batch_id += 1; + SequencedBatch::new(batch, seq, batch_id) + } + + /// Get the next batch ID that will be assigned. + pub fn next_batch_id(&self) -> usize { + self.next_batch_id + } +} + +impl Default for SequencedBatchBuilder { + fn default() -> Self { + Self::new() + } +} + +#[cfg(test)] +mod tests { + use super::*; + use arrow_array::Int32Array; + use arrow_schema::{DataType, Field, Schema as ArrowSchema}; + use std::sync::Arc; + + fn create_test_batch(num_rows: usize) -> RecordBatch { + let schema = Arc::new(ArrowSchema::new(vec![Field::new( + "id", + DataType::Int32, + false, + )])); + let ids: Vec = (0..num_rows as i32).collect(); + RecordBatch::try_new(schema, vec![Arc::new(Int32Array::from(ids))]).unwrap() + } + + #[test] + fn test_sequenced_batch_basic() { + let batch = create_test_batch(10); + let sequenced = SequencedBatch::new(batch, 42, 0); + + assert_eq!(sequenced.seq(), 42); + assert_eq!(sequenced.batch_id(), 0); + assert_eq!(sequenced.num_rows(), 10); + } + + #[test] + fn test_sequenced_batch_visibility() { + let batch = create_test_batch(5); + let sequenced = SequencedBatch::new(batch, 100, 0); + + // Visible at seq >= 100 + assert!(sequenced.is_visible_at(100)); + assert!(sequenced.is_visible_at(200)); + assert!(sequenced.is_visible_at(u64::MAX)); + + // Not visible at seq < 100 + assert!(!sequenced.is_visible_at(99)); + assert!(!sequenced.is_visible_at(0)); + } + + #[test] + fn test_filter_visible() { + let batches: Vec = (1..=5) + .map(|i| SequencedBatch::new(create_test_batch(5), i * 10, i as usize - 1)) + .collect(); + + // At seq 25, only batches with seq <= 25 are visible (seq 10, 20) + let visible = filter_visible(batches.iter(), 25); + assert_eq!(visible.len(), 2); + assert_eq!(visible[0].seq(), 10); + assert_eq!(visible[1].seq(), 20); + + // At seq 50, all batches are visible + let visible = filter_visible(batches.iter(), 50); + assert_eq!(visible.len(), 5); + + // At seq 5, no batches are visible + let visible = filter_visible(batches.iter(), 5); + assert_eq!(visible.len(), 0); + } + + #[test] + fn test_sequenced_batch_builder() { + let mut builder = SequencedBatchBuilder::new(); + + let batch1 = builder.build(create_test_batch(5), 10); + assert_eq!(batch1.batch_id(), 0); + assert_eq!(batch1.seq(), 10); + + let batch2 = builder.build(create_test_batch(3), 20); + assert_eq!(batch2.batch_id(), 1); + assert_eq!(batch2.seq(), 20); + + let batch3 = builder.build(create_test_batch(7), 30); + assert_eq!(batch3.batch_id(), 2); + assert_eq!(batch3.seq(), 30); + + assert_eq!(builder.next_batch_id(), 3); + } + + #[test] + fn test_sequenced_batch_builder_with_start_id() { + let mut builder = SequencedBatchBuilder::with_start_batch_id(100); + + let batch1 = builder.build(create_test_batch(5), 10); + assert_eq!(batch1.batch_id(), 100); + + let batch2 = builder.build(create_test_batch(5), 20); + assert_eq!(batch2.batch_id(), 101); + } +} diff --git a/rust/lance/src/dataset/mem_wal/write/stats.rs b/rust/lance/src/dataset/mem_wal/write/stats.rs new file mode 100644 index 00000000000..9521e6f979a --- /dev/null +++ b/rust/lance/src/dataset/mem_wal/write/stats.rs @@ -0,0 +1,286 @@ +// SPDX-License-Identifier: Apache-2.0 +// SPDX-FileCopyrightText: Copyright The Lance Authors + +//! Write performance statistics collection. +//! +//! Provides atomic counters for tracking write performance metrics: +//! - Put operations (count, time) +//! - WAL flushes (count, time, bytes, fragments) +//! - MemTable flushes (count, time, rows, fragments) + +use std::sync::atomic::{AtomicU64, Ordering}; +use std::sync::Arc; +use std::time::Duration; + +use tracing::info; + +/// Write performance statistics. +/// +/// All fields use atomic operations for thread-safe updates. +/// Use `snapshot()` to get a consistent view of all stats. +#[derive(Debug, Default)] +pub struct WriteStats { + // Put operation stats + put_count: AtomicU64, + put_time_nanos: AtomicU64, + + // WAL flush stats + wal_flush_count: AtomicU64, + wal_flush_time_nanos: AtomicU64, + wal_flush_bytes: AtomicU64, + wal_flush_fragments: AtomicU64, + + // MemTable flush stats + memtable_flush_count: AtomicU64, + memtable_flush_time_nanos: AtomicU64, + memtable_flush_rows: AtomicU64, + memtable_flush_fragments: AtomicU64, +} + +/// Snapshot of write statistics at a point in time. +#[derive(Debug, Clone)] +pub struct WriteStatsSnapshot { + pub put_count: u64, + pub put_time: Duration, + + pub wal_flush_count: u64, + pub wal_flush_time: Duration, + pub wal_flush_bytes: u64, + pub wal_flush_fragments: u64, + + pub memtable_flush_count: u64, + pub memtable_flush_time: Duration, + pub memtable_flush_rows: u64, + pub memtable_flush_fragments: u64, +} + +impl WriteStats { + /// Create a new stats collector. + pub fn new() -> Self { + Self::default() + } + + /// Record a put operation. + pub fn record_put(&self, duration: Duration) { + self.put_count.fetch_add(1, Ordering::Relaxed); + self.put_time_nanos + .fetch_add(duration.as_nanos() as u64, Ordering::Relaxed); + } + + /// Record a WAL flush operation. + pub fn record_wal_flush(&self, duration: Duration, bytes: usize, fragments: usize) { + self.wal_flush_count.fetch_add(1, Ordering::Relaxed); + self.wal_flush_time_nanos + .fetch_add(duration.as_nanos() as u64, Ordering::Relaxed); + self.wal_flush_bytes + .fetch_add(bytes as u64, Ordering::Relaxed); + self.wal_flush_fragments + .fetch_add(fragments as u64, Ordering::Relaxed); + } + + /// Record a MemTable flush operation. + pub fn record_memtable_flush(&self, duration: Duration, rows: usize, fragments: usize) { + self.memtable_flush_count.fetch_add(1, Ordering::Relaxed); + self.memtable_flush_time_nanos + .fetch_add(duration.as_nanos() as u64, Ordering::Relaxed); + self.memtable_flush_rows + .fetch_add(rows as u64, Ordering::Relaxed); + self.memtable_flush_fragments + .fetch_add(fragments as u64, Ordering::Relaxed); + } + + /// Get a snapshot of current statistics. + pub fn snapshot(&self) -> WriteStatsSnapshot { + WriteStatsSnapshot { + put_count: self.put_count.load(Ordering::Relaxed), + put_time: Duration::from_nanos(self.put_time_nanos.load(Ordering::Relaxed)), + + wal_flush_count: self.wal_flush_count.load(Ordering::Relaxed), + wal_flush_time: Duration::from_nanos(self.wal_flush_time_nanos.load(Ordering::Relaxed)), + wal_flush_bytes: self.wal_flush_bytes.load(Ordering::Relaxed), + wal_flush_fragments: self.wal_flush_fragments.load(Ordering::Relaxed), + + memtable_flush_count: self.memtable_flush_count.load(Ordering::Relaxed), + memtable_flush_time: Duration::from_nanos( + self.memtable_flush_time_nanos.load(Ordering::Relaxed), + ), + memtable_flush_rows: self.memtable_flush_rows.load(Ordering::Relaxed), + memtable_flush_fragments: self.memtable_flush_fragments.load(Ordering::Relaxed), + } + } + + /// Reset all statistics. + pub fn reset(&self) { + self.put_count.store(0, Ordering::Relaxed); + self.put_time_nanos.store(0, Ordering::Relaxed); + + self.wal_flush_count.store(0, Ordering::Relaxed); + self.wal_flush_time_nanos.store(0, Ordering::Relaxed); + self.wal_flush_bytes.store(0, Ordering::Relaxed); + self.wal_flush_fragments.store(0, Ordering::Relaxed); + + self.memtable_flush_count.store(0, Ordering::Relaxed); + self.memtable_flush_time_nanos.store(0, Ordering::Relaxed); + self.memtable_flush_rows.store(0, Ordering::Relaxed); + self.memtable_flush_fragments.store(0, Ordering::Relaxed); + } +} + +impl WriteStatsSnapshot { + /// Get average put latency. + pub fn avg_put_latency(&self) -> Option { + if self.put_count > 0 { + Some(self.put_time / self.put_count as u32) + } else { + None + } + } + + /// Get put throughput (puts per second based on time spent in puts). + pub fn put_throughput(&self) -> f64 { + if self.put_time.as_secs_f64() > 0.0 { + self.put_count as f64 / self.put_time.as_secs_f64() + } else { + 0.0 + } + } + + /// Get average WAL flush latency. + pub fn avg_wal_flush_latency(&self) -> Option { + if self.wal_flush_count > 0 { + Some(self.wal_flush_time / self.wal_flush_count as u32) + } else { + None + } + } + + /// Get average WAL flush size in bytes. + pub fn avg_wal_flush_bytes(&self) -> Option { + if self.wal_flush_count > 0 { + Some(self.wal_flush_bytes / self.wal_flush_count) + } else { + None + } + } + + /// Get WAL write throughput (bytes per second based on WAL flush time). + pub fn wal_throughput_bytes(&self) -> f64 { + if self.wal_flush_time.as_secs_f64() > 0.0 { + self.wal_flush_bytes as f64 / self.wal_flush_time.as_secs_f64() + } else { + 0.0 + } + } + + /// Get average MemTable flush latency. + pub fn avg_memtable_flush_latency(&self) -> Option { + if self.memtable_flush_count > 0 { + Some(self.memtable_flush_time / self.memtable_flush_count as u32) + } else { + None + } + } + + /// Get average MemTable flush size in rows. + pub fn avg_memtable_flush_rows(&self) -> Option { + if self.memtable_flush_count > 0 { + Some(self.memtable_flush_rows / self.memtable_flush_count) + } else { + None + } + } + + /// Log stats summary. + pub fn log_summary(&self, prefix: &str) { + info!( + "{} | Puts: {} ({:.0}/s, avg {:?}) | WAL: {} flushes ({} bytes, avg {:?}) | MemTable: {} flushes ({} rows, avg {:?})", + prefix, + self.put_count, + self.put_throughput(), + self.avg_put_latency().unwrap_or_default(), + self.wal_flush_count, + format_bytes(self.wal_flush_bytes), + self.avg_wal_flush_latency().unwrap_or_default(), + self.memtable_flush_count, + self.memtable_flush_rows, + self.avg_memtable_flush_latency().unwrap_or_default(), + ); + } +} + +/// Format bytes in human-readable form. +fn format_bytes(bytes: u64) -> String { + if bytes >= 1024 * 1024 * 1024 { + format!("{:.2} GB", bytes as f64 / (1024.0 * 1024.0 * 1024.0)) + } else if bytes >= 1024 * 1024 { + format!("{:.2} MB", bytes as f64 / (1024.0 * 1024.0)) + } else if bytes >= 1024 { + format!("{:.2} KB", bytes as f64 / 1024.0) + } else { + format!("{} B", bytes) + } +} + +/// Shared stats handle for use across components. +pub type SharedWriteStats = Arc; + +/// Create a new shared stats collector. +pub fn new_shared_stats() -> SharedWriteStats { + Arc::new(WriteStats::new()) +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn test_record_put() { + let stats = WriteStats::new(); + stats.record_put(Duration::from_millis(10)); + stats.record_put(Duration::from_millis(20)); + + let snapshot = stats.snapshot(); + assert_eq!(snapshot.put_count, 2); + assert_eq!(snapshot.put_time, Duration::from_millis(30)); + assert_eq!(snapshot.avg_put_latency(), Some(Duration::from_millis(15))); + } + + #[test] + fn test_record_wal_flush() { + let stats = WriteStats::new(); + stats.record_wal_flush(Duration::from_millis(100), 1024, 5); + stats.record_wal_flush(Duration::from_millis(200), 2048, 10); + + let snapshot = stats.snapshot(); + assert_eq!(snapshot.wal_flush_count, 2); + assert_eq!(snapshot.wal_flush_time, Duration::from_millis(300)); + assert_eq!(snapshot.wal_flush_bytes, 3072); + assert_eq!(snapshot.wal_flush_fragments, 15); + assert_eq!(snapshot.avg_wal_flush_bytes(), Some(1536)); + } + + #[test] + fn test_record_memtable_flush() { + let stats = WriteStats::new(); + stats.record_memtable_flush(Duration::from_secs(1), 10000, 50); + + let snapshot = stats.snapshot(); + assert_eq!(snapshot.memtable_flush_count, 1); + assert_eq!(snapshot.memtable_flush_time, Duration::from_secs(1)); + assert_eq!(snapshot.memtable_flush_rows, 10000); + assert_eq!(snapshot.memtable_flush_fragments, 50); + } + + #[test] + fn test_reset() { + let stats = WriteStats::new(); + stats.record_put(Duration::from_millis(10)); + stats.record_wal_flush(Duration::from_millis(100), 1024, 5); + + stats.reset(); + + let snapshot = stats.snapshot(); + assert_eq!(snapshot.put_count, 0); + assert_eq!(snapshot.wal_flush_count, 0); + } +} diff --git a/rust/lance/src/dataset/mem_wal/write/wal.rs b/rust/lance/src/dataset/mem_wal/write/wal.rs new file mode 100644 index 00000000000..9e8d1ee47c8 --- /dev/null +++ b/rust/lance/src/dataset/mem_wal/write/wal.rs @@ -0,0 +1,530 @@ +// SPDX-License-Identifier: Apache-2.0 +// SPDX-FileCopyrightText: Copyright The Lance Authors + +//! Write-Ahead Log (WAL) buffer for durability. +//! +//! The WAL buffer tracks which batches need to be flushed to storage. +//! Batch data is stored in the MemTable's BatchStore. +//! On flush, batches are written as Arrow IPC files. +//! +//! ## File Naming +//! +//! WAL files use bit-reversed 64-bit binary naming to distribute files evenly +//! across object store keyspace, optimizing S3 throughput. +//! +//! ## Writer Epoch +//! +//! Each WAL entry includes the writer epoch in its schema metadata for fencing +//! validation during recovery. On replay, entries with `epoch > current_epoch` +//! are from a fenced writer and are ignored. +//! +//! ## Format +//! +//! WAL entries are stored as Arrow IPC files containing the batches directly. +//! This is simpler and faster than Lance format for write-ahead logging. + +use std::io::Cursor; +use std::sync::atomic::{AtomicU64, Ordering}; +use std::sync::Arc; + +use arrow_array::RecordBatch; +use arrow_ipc::reader::FileReader; +use arrow_ipc::writer::FileWriter; +use arrow_schema::Schema as ArrowSchema; +use bytes::Bytes; +use lance_core::{Error, Result}; +use lance_io::object_store::ObjectStore; +use object_store::path::Path; +use snafu::location; +use std::sync::RwLock; +use tokio::sync::{mpsc, oneshot}; +use tracing::debug; +use uuid::Uuid; + +use crate::dataset::mem_wal::dispatcher::{DurableSender, DurableWatcher}; +use crate::dataset::mem_wal::util::{region_wal_path, wal_entry_filename}; + +use super::MemTable; + +/// Key for storing writer epoch in Arrow IPC file schema metadata. +pub const WRITER_EPOCH_KEY: &str = "writer_epoch"; + +/// A pending batch waiting to be flushed to WAL. +#[derive(Debug)] +pub struct PendingBatch { + /// Batch ID (also the batch index in the MemTable). + pub batch_id: usize, + /// Sender to notify when this batch is durable. + pub durable_tx: Option, +} + +/// A single WAL entry representing a batch of batches. +#[derive(Debug)] +pub struct WalEntry { + /// WAL entry ID (sequential, starting from 1). + pub id: u64, + /// Writer epoch at the time of write. + pub writer_epoch: u64, + /// Batch IDs and their positions within this entry. + pub batch_positions: Vec<(usize, usize)>, // (batch_id, position) +} + +/// WAL flush message sent to background flush handler. +#[derive(Debug)] +pub enum WalFlushMsg { + /// Trigger an immediate flush. + TriggerFlush { + /// Optional channel to send result. + done: Option>>, + }, + /// Periodic tick to check for flush. + Tick, +} + +/// Buffer for tracking batches that need to be flushed to WAL. +pub struct WalBuffer { + /// Pending batches waiting to be flushed. + pending: RwLock>, + /// Object store for writing WAL files. + object_store: Option>, + /// Region ID. + region_id: Uuid, + /// Writer epoch (stored in WAL entries for fencing). + writer_epoch: u64, + /// Next WAL entry ID to use. + next_wal_id: AtomicU64, + /// Maximum number of pending batches before triggering flush. + max_pending_batches: usize, + /// Channel to send flush messages. + flush_tx: Option>, + /// WAL directory path. + wal_dir: Path, +} + +impl WalBuffer { + /// Create a new WAL buffer. + /// + /// # Arguments + /// + /// * `base_path` - Base path within the object store (from ObjectStore::from_uri) + /// * `region_id` - Region UUID + /// * `writer_epoch` - Current writer epoch + /// * `next_wal_id` - Next WAL entry ID (from recovery or 1 for new region) + /// * `max_pending_batches` - Maximum pending batches before flush + pub fn new( + base_path: &Path, + region_id: Uuid, + writer_epoch: u64, + next_wal_id: u64, + max_pending_batches: usize, + ) -> Self { + let wal_dir = region_wal_path(base_path, ®ion_id); + Self { + pending: RwLock::new(Vec::new()), + object_store: None, + region_id, + writer_epoch, + next_wal_id: AtomicU64::new(next_wal_id), + max_pending_batches, + flush_tx: None, + wal_dir, + } + } + + /// Set the object store for WAL file operations. + pub fn set_object_store(&mut self, object_store: Arc) { + self.object_store = Some(object_store); + } + + /// Set the flush channel for background flush handler. + pub fn set_flush_channel(&mut self, tx: mpsc::UnboundedSender) { + self.flush_tx = Some(tx); + } + + /// Append a batch to the WAL buffer. + /// + /// Returns a `DurableWatcher` that can be awaited for durability. + /// + /// Note: The actual batch data is stored in the MemTable's BatchStore. + /// This method only tracks the batch ID. + /// + /// # Arguments + /// + /// * `batch_id` - Batch ID (also the batch index in the BatchStore) + pub fn append(&self, batch_id: usize) -> DurableWatcher { + let (watcher, sender) = DurableWatcher::new(); + + let batch = PendingBatch { + batch_id, + durable_tx: Some(sender), + }; + + self.pending.write().unwrap().push(batch); + + watcher + } + + /// Check if buffer should be flushed based on pending batch count. + /// + /// If over threshold, sends a flush message to the background handler. + pub fn maybe_trigger_flush(&self) -> Result<()> { + let pending_count = self.pending.read().unwrap().len(); + if pending_count >= self.max_pending_batches { + self.trigger_flush(None)?; + } + Ok(()) + } + + /// Trigger an immediate flush. + /// + /// # Arguments + /// + /// * `done` - Optional channel to receive flush result + pub fn trigger_flush(&self, done: Option>>) -> Result<()> { + if let Some(tx) = &self.flush_tx { + tx.send(WalFlushMsg::TriggerFlush { done }) + .map_err(|_| Error::io("WAL flush channel closed", location!()))?; + } + Ok(()) + } + + /// Flush all pending batches to a WAL entry. + /// + /// Writes batches as Arrow IPC format. + /// + /// # Arguments + /// + /// * `memtable` - The MemTable to read batches from + /// + /// # Returns + /// + /// The WAL entry ID that was written, or None if no pending data. + pub async fn flush(&self, memtable: &MemTable) -> Result> { + // Take pending batches + let mut pending = std::mem::take(&mut *self.pending.write().unwrap()); + if pending.is_empty() { + return Ok(None); + } + + let object_store = self + .object_store + .as_ref() + .ok_or_else(|| Error::io("Object store not set on WAL buffer", location!()))?; + + let wal_id = self.next_wal_id.fetch_add(1, Ordering::SeqCst); + let filename = wal_entry_filename(wal_id); + // Add .arrow extension for Arrow IPC format + let final_path = self.wal_dir.child(format!("{}.arrow", filename).as_str()); + + debug!( + "Flushing {} batches to WAL entry {} for region {}", + pending.len(), + wal_id, + self.region_id + ); + + // Build batch positions + let batch_positions: Vec<(usize, usize)> = pending + .iter() + .enumerate() + .map(|(pos, b)| (b.batch_id, pos)) + .collect(); + + // Get batch_ids + let batch_ids: Vec = pending.iter().map(|b| b.batch_id).collect(); + + // Get batches from MemTable + let batches = memtable.get_batches_for_wal(&batch_ids).await?; + if batches.is_empty() { + return Err(Error::io( + "No batches found for pending batch IDs", + location!(), + )); + } + + // Write as Arrow IPC file + self.write_arrow_ipc(&final_path, object_store, &batches) + .await?; + + // Notify durability + for batch in pending.drain(..) { + if let Some(tx) = batch.durable_tx { + tx.notify_durable(); + } + } + + let entry = WalEntry { + id: wal_id, + writer_epoch: self.writer_epoch, + batch_positions, + }; + + debug!("Wrote WAL entry {} to {}", wal_id, final_path); + Ok(Some(entry)) + } + + /// Write batches to an Arrow IPC file. + /// + /// The schema metadata contains `writer_epoch` for fencing validation. + async fn write_arrow_ipc( + &self, + path: &Path, + object_store: &ObjectStore, + batches: &[RecordBatch], + ) -> Result<()> { + if batches.is_empty() { + return Ok(()); + } + + // Get schema from first batch and add epoch metadata + let original_schema = batches[0].schema(); + let mut metadata = original_schema.metadata().clone(); + metadata.insert(WRITER_EPOCH_KEY.to_string(), self.writer_epoch.to_string()); + let schema_with_epoch = Arc::new(ArrowSchema::new_with_metadata( + original_schema.fields().to_vec(), + metadata, + )); + + // Write to in-memory buffer first, then upload + let mut buffer = Vec::new(); + { + let mut writer = FileWriter::try_new(&mut buffer, &schema_with_epoch).map_err(|e| { + Error::io( + format!("Failed to create Arrow IPC writer: {}", e), + location!(), + ) + })?; + + for batch in batches { + writer.write(batch).map_err(|e| { + Error::io( + format!("Failed to write batch to Arrow IPC: {}", e), + location!(), + ) + })?; + } + + writer.finish().map_err(|e| { + Error::io( + format!("Failed to finish Arrow IPC file: {}", e), + location!(), + ) + })?; + } + + // Upload to object store + object_store + .inner + .put(path, Bytes::from(buffer).into()) + .await + .map_err(|e| Error::io(format!("Failed to write WAL file: {}", e), location!()))?; + + Ok(()) + } + + /// Get the current WAL ID (last written + 1). + pub fn next_wal_id(&self) -> u64 { + self.next_wal_id.load(Ordering::SeqCst) + } + + /// Get the number of pending batches. + pub fn pending_count(&self) -> usize { + self.pending.read().unwrap().len() + } + + /// Get the writer epoch. + pub fn writer_epoch(&self) -> u64 { + self.writer_epoch + } + + /// Get the path for a WAL entry. + pub fn wal_entry_path(&self, wal_id: u64) -> Path { + let filename = wal_entry_filename(wal_id); + self.wal_dir.child(format!("{}.arrow", filename).as_str()) + } +} + +/// A WAL entry read from storage for replay. +#[derive(Debug)] +pub struct WalEntryData { + /// Writer epoch from the WAL entry. + pub writer_epoch: u64, + /// Record batches from the WAL entry. + pub batches: Vec, +} + +impl WalEntryData { + /// Read a WAL entry from storage. + /// + /// # Arguments + /// + /// * `object_store` - Object store to read from + /// * `path` - Path to the WAL entry (Arrow IPC file) + /// + /// # Returns + /// + /// The parsed WAL entry data, or an error if reading/parsing fails. + pub async fn read(object_store: &ObjectStore, path: &Path) -> Result { + // Read the file + let data = object_store + .inner + .get(path) + .await + .map_err(|e| Error::io(format!("Failed to read WAL file: {}", e), location!()))? + .bytes() + .await + .map_err(|e| Error::io(format!("Failed to get WAL file bytes: {}", e), location!()))?; + + // Parse as Arrow IPC + let cursor = Cursor::new(data); + let reader = FileReader::try_new(cursor, None).map_err(|e| { + Error::io( + format!("Failed to open Arrow IPC reader: {}", e), + location!(), + ) + })?; + + // Extract writer epoch from schema metadata + let schema = reader.schema(); + let writer_epoch = schema + .metadata() + .get(WRITER_EPOCH_KEY) + .and_then(|s| s.parse::().ok()) + .unwrap_or(0); + + // Read all batches + let mut batches = Vec::new(); + for batch_result in reader { + let batch = batch_result.map_err(|e| { + Error::io( + format!("Failed to read batch from Arrow IPC: {}", e), + location!(), + ) + })?; + batches.push(batch); + } + + Ok(Self { + writer_epoch, + batches, + }) + } +} + +#[cfg(test)] +mod tests { + use super::*; + use arrow_array::{Int32Array, StringArray}; + use arrow_schema::{DataType, Field, Schema}; + use std::sync::Arc; + use tempfile::TempDir; + + async fn create_local_store() -> (Arc, Path, TempDir) { + let temp_dir = tempfile::tempdir().unwrap(); + let uri = format!("file://{}", temp_dir.path().display()); + let (store, path) = ObjectStore::from_uri(&uri).await.unwrap(); + (store, path, temp_dir) + } + + fn create_test_schema() -> Arc { + Arc::new(Schema::new(vec![ + Field::new("id", DataType::Int32, false), + Field::new("name", DataType::Utf8, true), + ])) + } + + fn create_test_batch(schema: &Schema, num_rows: usize) -> RecordBatch { + RecordBatch::try_new( + Arc::new(schema.clone()), + vec![ + Arc::new(Int32Array::from_iter_values(0..num_rows as i32)), + Arc::new(StringArray::from_iter_values( + (0..num_rows).map(|i| format!("name_{}", i)), + )), + ], + ) + .unwrap() + } + + #[tokio::test] + async fn test_wal_buffer_append() { + let (store, base_path, _temp_dir) = create_local_store().await; + let region_id = Uuid::new_v4(); + let mut buffer = WalBuffer::new(&base_path, region_id, 1, 1, 100); + buffer.set_object_store(store); + + let _watcher = buffer.append(0); + + assert_eq!(buffer.pending_count(), 1); + } + + #[tokio::test] + async fn test_wal_buffer_flush() { + let (store, base_path, _temp_dir) = create_local_store().await; + let region_id = Uuid::new_v4(); + let mut buffer = WalBuffer::new(&base_path, region_id, 1, 1, 100); + buffer.set_object_store(store); + + // Create a MemTable with some data + let schema = create_test_schema(); + let mut memtable = MemTable::new(schema.clone(), 1, vec![]).unwrap(); + memtable + .insert(create_test_batch(&schema, 10)) + .await + .unwrap(); + memtable + .insert(create_test_batch(&schema, 5)) + .await + .unwrap(); + + // Append batch IDs to WAL buffer + let watcher1 = buffer.append(0); + let watcher2 = buffer.append(1); + + // Flush + let entry = buffer.flush(&memtable).await.unwrap().unwrap(); + assert_eq!(entry.id, 1); + assert_eq!(entry.writer_epoch, 1); + assert_eq!(entry.batch_positions.len(), 2); + assert_eq!(buffer.pending_count(), 0); + + // Watchers should be notified + watcher1.wait().await.unwrap(); + watcher2.wait().await.unwrap(); + } + + #[tokio::test] + async fn test_wal_entry_read() { + let (store, base_path, _temp_dir) = create_local_store().await; + let region_id = Uuid::new_v4(); + let mut buffer = WalBuffer::new(&base_path, region_id, 42, 1, 100); + buffer.set_object_store(store.clone()); + + // Create a MemTable with some data + let schema = create_test_schema(); + let mut memtable = MemTable::new(schema.clone(), 1, vec![]).unwrap(); + memtable + .insert(create_test_batch(&schema, 10)) + .await + .unwrap(); + memtable + .insert(create_test_batch(&schema, 5)) + .await + .unwrap(); + + // Append batch IDs and flush + let _watcher1 = buffer.append(0); + let _watcher2 = buffer.append(1); + let entry = buffer.flush(&memtable).await.unwrap().unwrap(); + + // Read back the WAL entry + let wal_path = buffer.wal_entry_path(entry.id); + let wal_data = WalEntryData::read(&store, &wal_path).await.unwrap(); + + // Verify the read data + assert_eq!(wal_data.writer_epoch, 42); + assert_eq!(wal_data.batches.len(), 2); + assert_eq!(wal_data.batches[0].num_rows(), 10); + assert_eq!(wal_data.batches[1].num_rows(), 5); + } +} diff --git a/rust/lance/src/dataset/mem_wal/write/watchable_cell.rs b/rust/lance/src/dataset/mem_wal/write/watchable_cell.rs new file mode 100644 index 00000000000..7e132240a5d --- /dev/null +++ b/rust/lance/src/dataset/mem_wal/write/watchable_cell.rs @@ -0,0 +1,297 @@ +// SPDX-License-Identifier: Apache-2.0 +// SPDX-FileCopyrightText: Copyright The Lance Authors + +//! Watchable cell and monotonic sequence utilities. + +use std::sync::atomic::{AtomicU64, Ordering}; + +use lance_core::{Error, Result}; + +/// A cell that can be written to once and read by multiple readers. +/// +/// Used for durability notifications where multiple callers may need to await the same result. +#[derive(Clone, Debug)] +pub struct WatchableOnceCell { + rx: tokio::sync::watch::Receiver>, + tx: tokio::sync::watch::Sender>, +} + +/// Reader handle for a WatchableOnceCell. +/// +/// Can be cloned and shared across tasks to await the same value. +#[derive(Clone, Debug)] +pub struct WatchableOnceCellReader { + rx: tokio::sync::watch::Receiver>, +} + +impl WatchableOnceCell { + /// Create a new empty cell. + pub fn new() -> Self { + let (tx, rx) = tokio::sync::watch::channel(None); + Self { rx, tx } + } + + /// Write a value to the cell. + /// + /// Only the first write takes effect; subsequent writes are ignored. + pub fn write(&self, val: T) { + self.tx.send_if_modified(|v| { + if v.is_some() { + return false; + } + v.replace(val); + true + }); + } + + /// Get a reader handle for this cell. + pub fn reader(&self) -> WatchableOnceCellReader { + WatchableOnceCellReader { + rx: self.rx.clone(), + } + } +} + +impl Default for WatchableOnceCell { + fn default() -> Self { + Self::new() + } +} + +impl WatchableOnceCellReader { + /// Read the current value without waiting. + /// + /// Returns `None` if no value has been written yet. + pub fn read(&self) -> Option { + self.rx.borrow().clone() + } + + /// Wait for a value to be written. + /// + /// Returns immediately if a value is already present. + pub async fn await_value(&mut self) -> T { + self.rx + .wait_for(|v| v.is_some()) + .await + .expect("watch channel closed") + .clone() + .expect("no value found") + } +} + +/// A monotonically increasing atomic sequence counter. +/// +/// Used for generating sequence numbers in MVCC implementations. +/// The sequence only ever increases, never decreases. +#[derive(Debug)] +pub struct MonotonicSeq { + val: AtomicU64, +} + +impl MonotonicSeq { + /// Create a new sequence starting at the given value. + pub fn new(initial_value: u64) -> Self { + Self { + val: AtomicU64::new(initial_value), + } + } + + /// Get the next sequence number, incrementing the counter. + /// + /// Returns the new value after incrementing. + pub fn next(&self) -> u64 { + self.val.fetch_add(1, Ordering::SeqCst) + 1 + } + + /// Store a specific value. + pub fn store(&self, value: u64) { + self.val.store(value, Ordering::SeqCst); + } + + /// Load the current value. + pub fn load(&self) -> u64 { + self.val.load(Ordering::SeqCst) + } + + /// Store a value only if it's greater than the current value. + /// + /// This is useful for updating the last persisted sequence + /// without going backwards. + pub fn store_if_greater(&self, value: u64) { + self.val.fetch_max(value, Ordering::SeqCst); + } +} + +impl Default for MonotonicSeq { + fn default() -> Self { + Self::new(0) + } +} + +/// Closed status for channels. +/// +/// Used to track whether a channel was closed normally or due to an error. +#[derive(Clone, Debug)] +pub enum ClosedStatus { + /// Channel closed normally (shutdown) + Normal, + /// Channel closed due to an error + Error(String), +} + +impl ClosedStatus { + /// Create a new error status with the given message. + pub fn error(msg: impl Into) -> Self { + Self::Error(msg.into()) + } +} + +/// Extension trait for safely sending to unbounded channels. +/// +/// When a channel is closed, this trait helps determine if it was +/// due to a normal shutdown or an error condition. +pub trait SendSafely { + /// Attempts to send a message to the channel. + /// + /// If the channel is closed, returns an error based on the closed_result. + fn send_safely( + &self, + closed_result_reader: WatchableOnceCellReader, + message: T, + ) -> Result<()>; +} + +impl SendSafely for tokio::sync::mpsc::UnboundedSender { + fn send_safely( + &self, + closed_result_reader: WatchableOnceCellReader, + message: T, + ) -> Result<()> { + match self.send(message) { + Ok(_) => Ok(()), + Err(_) => { + if let Some(status) = closed_result_reader.read() { + match status { + ClosedStatus::Normal => { + Err(Error::io("Channel closed", snafu::location!())) + } + ClosedStatus::Error(msg) => Err(Error::io( + format!("Channel closed due to error: {}", msg), + snafu::location!(), + )), + } + } else { + Err(Error::io( + "Failed to send message to channel", + snafu::location!(), + )) + } + } + } + } +} + +#[cfg(test)] +mod tests { + use super::*; + + #[tokio::test] + async fn test_watchable_once_cell_write_once() { + let cell = WatchableOnceCell::new(); + let reader = cell.reader(); + + assert_eq!(reader.read(), None); + + cell.write(42); + assert_eq!(reader.read(), Some(42)); + + // Second write is ignored + cell.write(100); + assert_eq!(reader.read(), Some(42)); + } + + #[tokio::test] + async fn test_watchable_once_cell_await() { + let cell = WatchableOnceCell::new(); + let mut reader = cell.reader(); + + let handle = tokio::spawn(async move { reader.await_value().await }); + + // Brief delay to ensure the task is waiting + tokio::time::sleep(std::time::Duration::from_millis(10)).await; + + cell.write(123); + + let result = handle.await.unwrap(); + assert_eq!(result, 123); + } + + #[tokio::test] + async fn test_watchable_once_cell_multiple_readers() { + let cell = WatchableOnceCell::new(); + let mut reader1 = cell.reader(); + let mut reader2 = cell.reader(); + + let h1 = tokio::spawn(async move { reader1.await_value().await }); + let h2 = tokio::spawn(async move { reader2.await_value().await }); + + tokio::time::sleep(std::time::Duration::from_millis(10)).await; + + cell.write(456); + + assert_eq!(h1.await.unwrap(), 456); + assert_eq!(h2.await.unwrap(), 456); + } + + #[test] + fn test_monotonic_seq_next() { + let seq = MonotonicSeq::new(0); + + assert_eq!(seq.next(), 1); + assert_eq!(seq.next(), 2); + assert_eq!(seq.next(), 3); + assert_eq!(seq.load(), 3); + } + + #[test] + fn test_monotonic_seq_store_if_greater() { + let seq = MonotonicSeq::new(10); + + // Should update - 15 > 10 + seq.store_if_greater(15); + assert_eq!(seq.load(), 15); + + // Should not update - 12 < 15 + seq.store_if_greater(12); + assert_eq!(seq.load(), 15); + + // Should update - 20 > 15 + seq.store_if_greater(20); + assert_eq!(seq.load(), 20); + } + + #[test] + fn test_monotonic_seq_concurrent() { + use std::sync::Arc; + use std::thread; + + let seq = Arc::new(MonotonicSeq::new(0)); + let mut handles = vec![]; + + for _ in 0..10 { + let seq = seq.clone(); + handles.push(thread::spawn(move || { + for _ in 0..100 { + seq.next(); + } + })); + } + + for h in handles { + h.join().unwrap(); + } + + // 10 threads * 100 increments = 1000 + assert_eq!(seq.load(), 1000); + } +} diff --git a/rust/lance/src/dataset/mem_wal/write/writer.rs b/rust/lance/src/dataset/mem_wal/write/writer.rs new file mode 100644 index 00000000000..f1c46e0adf1 --- /dev/null +++ b/rust/lance/src/dataset/mem_wal/write/writer.rs @@ -0,0 +1,1391 @@ +// SPDX-License-Identifier: Apache-2.0 +// SPDX-FileCopyrightText: Copyright The Lance Authors + +//! RegionWriter - Main write interface for MemWAL. +//! +//! The RegionWriter coordinates all write operations: +//! - Accepts record batches via `put()` +//! - Inserts into MemTable for immediate queryability +//! - Appends to WAL buffer for durability +//! - Updates indexes synchronously (if configured) +//! - Manages background tasks for WAL and MemTable flush + +use std::sync::Arc; +use std::time::Duration; + +use arrow_array::RecordBatch; +use arrow_schema::Schema as ArrowSchema; +use async_trait::async_trait; +use lance_core::datatypes::Schema; +use lance_core::{Error, Result}; +use lance_index::mem_wal::RegionManifest; +use lance_io::object_store::ObjectStore; +use object_store::path::Path; +use snafu::location; +use tokio::sync::{mpsc, RwLock}; +use tracing::{debug, info, warn}; +use uuid::Uuid; + +use std::time::Instant; + +use super::batch_write::{ + write_batch_channel, BackpressureController, BackpressureProvider, DurabilityResult, + DurabilityWatcher, WriteBatchHandler, WriteBatchMessage, WriteBatchSender, WriterStateOps, + WRITE_BATCH_TASK_NAME, +}; +use super::flush::{FlushMessage, FlushResult, MemTableFlusher}; +use super::immutable::ImmutableMemTableQueue; +use super::indexes::{IndexRegistry, IndexUpdateHandler, IndexUpdateMsg, MemIndexConfig}; +use super::memtable::MemTable; +use super::stats::{new_shared_stats, SharedWriteStats, WriteStatsSnapshot}; +use super::wal::{WalBuffer, WalEntry, WalFlushMsg}; +use super::watchable_cell::WatchableOnceCell; +use crate::dataset::mem_wal::config::RegionWriterConfig; +use crate::dataset::mem_wal::dispatcher::{ + DurableWatcher, MessageFactory, MessageHandler, TaskExecutor, +}; +use crate::dataset::mem_wal::epoch::EpochGuard; +use crate::dataset::mem_wal::manifest::RegionManifestStore; + +/// Result of a write operation. +#[derive(Debug)] +pub struct WriteResult { + /// Batch ID in the MemTable. + pub batch_id: usize, + /// Watcher to await durability (if durable_writes enabled). + pub durable_watcher: Option, +} + +/// RegionWriter state that can be shared across tasks. +struct WriterState { + /// Current active (mutable) memtable. + memtable: MemTable, + /// Queue of immutable memtables waiting to be flushed. + immutable_memtables: ImmutableMemTableQueue, + /// Last WAL ID that was flushed. + #[allow(dead_code)] // Will be used for WAL freeze pattern in Phase 3.1 + last_flushed_wal_id: u64, +} + +/// Shared state wrapper for WriteBatchHandler. +/// +/// This implements WriterStateOps to provide the writer task with access to: +/// - MemTable for inserts +/// - WAL buffer for durability tracking +/// - Flush triggers +/// - Async index update channel (when sync_indexed_write=false) +struct SharedWriterState { + state: Arc>, + wal_buffer: Arc, + memtable_flush_tx: mpsc::UnboundedSender, + config: RegionWriterConfig, + /// Optional channel for async index updates (when sync_indexed_write=false). + index_update_tx: Option>, +} + +impl SharedWriterState { + fn new( + state: Arc>, + wal_buffer: Arc, + memtable_flush_tx: mpsc::UnboundedSender, + config: RegionWriterConfig, + index_update_tx: Option>, + ) -> Self { + Self { + state, + wal_buffer, + memtable_flush_tx, + config, + index_update_tx, + } + } +} + +#[async_trait] +impl WriterStateOps for Arc { + async fn insert_batch(&self, batch: RecordBatch, seq: u64) -> Result { + let mut state = self.state.write().await; + + // Check if we should use async index updates + if let Some(ref index_tx) = self.index_update_tx { + // Async mode: insert batch without index update, then queue async update + let (batch_id, row_offset) = + state.memtable.insert_batch_only(batch.clone(), seq).await?; + + // Queue async index update (fire-and-forget) + let _ = index_tx.send(IndexUpdateMsg::Update { + batch, + row_offset, + done: None, + }); + + Ok(batch_id) + } else { + // Sync mode: insert with inline index update (Lance pattern preserved) + state.memtable.insert_with_seq(batch, seq).await + } + } + + fn append_to_wal(&self, batch_id: usize) -> DurabilityWatcher { + // Create a durability cell for this write + let cell: WatchableOnceCell = WatchableOnceCell::new(); + let watcher = cell.reader(); + + // Append to WAL buffer - the old DurableWatcher will be converted + let old_watcher = self.wal_buffer.append(batch_id); + + // Spawn a task to convert the old watcher to the new format + tokio::spawn(async move { + match old_watcher.wait().await { + Ok(()) => cell.write(DurabilityResult::ok()), + Err(e) => cell.write(DurabilityResult::err(e.to_string())), + } + }); + + watcher + } + + fn maybe_trigger_wal_flush(&self) -> Result<()> { + self.wal_buffer.maybe_trigger_flush() + } + + async fn maybe_trigger_memtable_flush(&self) -> Result<()> { + let estimated_size = self.state.read().await.memtable.estimated_size(); + if estimated_size >= self.config.max_memtable_size { + self.memtable_flush_tx + .send(FlushMessage::FlushMemTable { done: None }) + .map_err(|_| Error::io("MemTable flush channel closed", location!()))?; + } + Ok(()) + } +} + +impl BackpressureProvider for SharedWriterState { + fn wal_buffer_bytes(&self) -> usize { + // WAL buffer size tracking not implemented yet + // Use pending count as a rough estimate (each entry ~4KB average) + self.wal_buffer.pending_count() * 4096 + } + + fn immutable_memtable_bytes(&self) -> usize { + // Use try_read to avoid blocking - return 0 if lock is held + self.state + .try_read() + .ok() + .map(|s| s.immutable_memtables.total_bytes()) + .unwrap_or(0) + } + + fn immutable_memtable_count(&self) -> usize { + self.state + .try_read() + .ok() + .map(|s| s.immutable_memtables.len()) + .unwrap_or(0) + } + + fn oldest_wal_watcher(&self) -> Option { + // WAL doesn't currently have per-entry watchers, return None + None + } + + fn oldest_memtable_watcher(&self) -> Option { + self.state + .try_read() + .ok() + .and_then(|s| s.immutable_memtables.oldest_watcher()) + } +} + +/// Main writer for a MemWAL region. +/// +/// Coordinates all write operations including: +/// - In-memory storage (MemTable) +/// - Durability (WAL buffer) +/// - Index maintenance +/// - Background flush tasks +pub struct RegionWriter { + config: RegionWriterConfig, + epoch_guard: Arc, + state: Arc>, + wal_buffer: Arc, + task_executor: Arc, + #[allow(dead_code)] + object_store: Arc, + manifest_store: Arc, + flusher: Arc, + #[allow(dead_code)] + wal_flush_tx: mpsc::UnboundedSender, + memtable_flush_tx: mpsc::UnboundedSender, + schema: Arc, + pk_field_ids: Vec, + index_configs: Vec, + stats: SharedWriteStats, + write_batch_tx: WriteBatchSender, + backpressure: BackpressureController, + index_update_tx: Option>, +} + +impl RegionWriter { + /// Open or create a RegionWriter. + /// + /// # Arguments + /// + /// * `object_store` - Object store for persistence + /// * `base_path` - Base path within the object store (from ObjectStore::from_uri) + /// * `base_uri` - Base URI (e.g., "s3://bucket/path" or "file:///path") + /// * `config` - Writer configuration + /// * `schema` - Arrow schema for data + /// * `index_configs` - Optional index configurations + /// + /// # Returns + /// + /// A new RegionWriter ready for writes. + /// + /// # Note + /// + /// The `base_path` should come from `ObjectStore::from_uri()`. When you call + /// `ObjectStore::from_uri("s3://bucket/path/to/dataset")`, it returns a store + /// rooted at the bucket level and a `base_path` of `path/to/dataset`. You must + /// pass this `base_path` to ensure WAL files are written inside the dataset directory. + pub async fn open( + object_store: Arc, + base_path: Path, + base_uri: impl Into, + config: RegionWriterConfig, + schema: Arc, + index_configs: Vec, + ) -> Result { + let base_uri = base_uri.into(); + let region_id = config.region_id; + let manifest_store = Arc::new(RegionManifestStore::new( + object_store.clone(), + &base_path, + region_id, + config.manifest_scan_batch_size, + )); + + // Claim the region (epoch-based fencing) + let (epoch_guard, manifest) = + EpochGuard::claim(manifest_store.clone(), config.region_spec_id).await?; + let epoch_guard = Arc::new(epoch_guard); + + info!( + "Opened RegionWriter for region {} (epoch {}, generation {})", + region_id, + epoch_guard.epoch(), + manifest.current_generation + ); + + // Create MemTable with primary key field IDs from schema + let lance_schema = Schema::try_from(schema.as_ref())?; + let pk_field_ids: Vec = lance_schema + .unenforced_primary_key() + .iter() + .map(|f| f.id) + .collect(); + let mut memtable = MemTable::new( + schema.clone(), + manifest.current_generation, + pk_field_ids.clone(), + )?; + + // Create indexes if configured and set them on the MemTable + // Indexes are always created when index_configs is non-empty + // (they will be updated either sync or async based on config) + let indexes_arc = if !index_configs.is_empty() { + let indexes = Arc::new(IndexRegistry::from_configs(&index_configs)?); + memtable.set_indexes_arc(indexes.clone()); + Some(indexes) + } else { + None + }; + + let state = Arc::new(RwLock::new(WriterState { + memtable, + immutable_memtables: ImmutableMemTableQueue::new(), + last_flushed_wal_id: manifest.wal_id_last_seen, + })); + + // Create WAL buffer + let mut wal_buffer = WalBuffer::new( + &base_path, + region_id, + epoch_guard.epoch(), + manifest.wal_id_last_seen + 1, + config.max_wal_buffer_size, + ); + wal_buffer.set_object_store(object_store.clone()); + + // Create channels for background tasks + let (wal_flush_tx, wal_flush_rx) = mpsc::unbounded_channel(); + let (memtable_flush_tx, memtable_flush_rx) = mpsc::unbounded_channel(); + + wal_buffer.set_flush_channel(wal_flush_tx.clone()); + let wal_buffer = Arc::new(wal_buffer); + + // Create flusher + let flusher = Arc::new(MemTableFlusher::new( + object_store.clone(), + base_path, + base_uri, + region_id, + manifest_store.clone(), + )); + + // Create stats collector + let stats = new_shared_stats(); + + let backpressure = BackpressureController::new(config.clone()); + + // Create task executor + let task_executor = Arc::new(TaskExecutor::new()); + + // Start background WAL flush handler + // The WAL flush handler also checks memtable size and triggers flush if needed + let wal_handler = WalFlushHandler::new( + wal_buffer.clone(), + state.clone(), + config.max_flush_interval, + config.max_memtable_size, + memtable_flush_tx.clone(), + stats.clone(), + ); + task_executor.add_handler( + "wal_flusher".to_string(), + Box::new(wal_handler), + wal_flush_rx, + )?; + + // Create async index update handler if needed (when !sync_indexed_write and has indexes) + let index_update_tx = if let (false, Some(ref indexes)) = + (config.sync_indexed_write, &indexes_arc) + { + let (tx, rx) = mpsc::unbounded_channel(); + let index_handler = IndexUpdateHandler::new(indexes.clone()); + task_executor.add_handler("index_updater".to_string(), Box::new(index_handler), rx)?; + info!("Started async index update handler"); + Some(tx) + } else { + None + }; + + // Start background MemTable flush handler + let memtable_handler = MemTableFlushHandler::new( + state.clone(), + flusher.clone(), + epoch_guard.clone(), + wal_buffer.clone(), + config.max_memtable_size, + schema.clone(), + pk_field_ids.clone(), + index_configs.clone(), + stats.clone(), + index_update_tx.clone(), + ); + task_executor.add_handler( + "memtable_flusher".to_string(), + Box::new(memtable_handler), + memtable_flush_rx, + )?; + + let (write_batch_tx, write_batch_rx) = write_batch_channel(); + + // Create shared writer state for the handler + let shared_writer_state = Arc::new(SharedWriterState::new( + state.clone(), + wal_buffer.clone(), + memtable_flush_tx.clone(), + config.clone(), + index_update_tx.clone(), + )); + + // Start the single writer task + let write_handler = WriteBatchHandler::new(shared_writer_state, stats.clone()); + task_executor.add_handler( + WRITE_BATCH_TASK_NAME.to_string(), + Box::new(write_handler), + write_batch_rx, + )?; + + Ok(Self { + config, + epoch_guard, + state, + wal_buffer, + task_executor, + object_store, + manifest_store, + flusher, + wal_flush_tx, + memtable_flush_tx, + schema, + pk_field_ids, + index_configs, + stats, + write_batch_tx, + backpressure, + index_update_tx, + }) + } + + /// Write a record batch to the region. + /// + /// # Arguments + /// + /// * `batch` - The record batch to write + /// + /// # Returns + /// + /// A WriteResult with fragment ID and optional durability watcher. + /// + /// # Note + /// + /// Fencing is detected lazily during WAL flush via atomic writes. + /// If another writer has taken over, the WAL flush will fail with + /// `AlreadyExists`, indicating this writer has been fenced. + pub async fn put(&self, batch: RecordBatch) -> Result { + let num_rows = batch.num_rows(); + if num_rows == 0 { + return Err(Error::invalid_input( + "Cannot write empty batch", + location!(), + )); + } + + // Apply backpressure if needed + // Note: index_update_tx is None here since this is only for backpressure checking + let shared_state = SharedWriterState::new( + self.state.clone(), + self.wal_buffer.clone(), + self.memtable_flush_tx.clone(), + self.config.clone(), + None, // Not used for actual writes, just backpressure + ); + self.backpressure + .maybe_apply_backpressure(&shared_state) + .await?; + + let (tx, rx) = tokio::sync::oneshot::channel(); + let message = WriteBatchMessage { batch, done: tx }; + + self.write_batch_tx + .send(message) + .map_err(|_| Error::io("Write batch channel closed", location!()))?; + + // 3. Wait for result from writer task + let result = rx + .await + .map_err(|_| Error::io("Write batch result channel closed", location!()))??; + + debug!( + "Wrote {} rows to region {} (batch_id={}, seq={})", + num_rows, self.config.region_id, result.batch_id, result.seq + ); + + // 4. Wait for durability if configured + let durable_watcher = if self.config.durable_writes { + // Must trigger a flush to ensure durability + self.wal_buffer.trigger_flush(None)?; + result + .durable_watcher + .clone() + .await_value() + .await + .into_result()?; + None + } else { + // Convert to old DurableWatcher for compatibility + // (stats recording is now done in WriteBatchHandler) + None + }; + + Ok(WriteResult { + batch_id: result.batch_id, + durable_watcher, + }) + } + + /// Get a snapshot of current write statistics. + pub fn stats(&self) -> WriteStatsSnapshot { + self.stats.snapshot() + } + + /// Get the shared stats handle (for external monitoring). + pub fn stats_handle(&self) -> SharedWriteStats { + self.stats.clone() + } + + /// Trigger a WAL flush. + /// + /// Blocks until the flush completes. + /// + /// # Note + /// + /// Fencing is detected via atomic WAL writes. If another writer has + /// already written this WAL entry, returns an error. + pub async fn flush_wal(&self) -> Result> { + let state = self.state.read().await; + self.wal_buffer.flush(&state.memtable).await + } + + /// Trigger a MemTable flush. + /// + /// Freezes current memtable, adds to immutable queue, creates new memtable, + /// and flushes the oldest immutable memtable. + pub async fn flush_memtable(&self) -> Result { + self.epoch_guard.check_fenced().await?; + + let start = Instant::now(); + let next_generation; + + // Step 1: If using async index updates, drain pending updates first + if let Some(ref index_tx) = self.index_update_tx { + let (done_tx, done_rx) = tokio::sync::oneshot::channel(); + if index_tx + .send(IndexUpdateMsg::Drain { done: done_tx }) + .is_ok() + { + let _ = done_rx.await; + debug!("Async index drain completed before memtable freeze"); + } + } + + // Step 2: Freeze current memtable and add to queue + let (last_wal_id, new_indexes_arc) = { + let mut state = self.state.write().await; + + // Flush WAL while holding the lock + let wal_id = if let Some(entry) = self.wal_buffer.flush(&state.memtable).await? { + let batch_ids: Vec = + entry.batch_positions.iter().map(|(id, _)| *id).collect(); + let positions: Vec = + entry.batch_positions.iter().map(|(_, pos)| *pos).collect(); + state + .memtable + .mark_wal_flushed(&batch_ids, entry.id, &positions); + entry.id + } else { + state.last_flushed_wal_id + }; + + // Create new memtable + next_generation = state.memtable.generation() + 1; + let mut new_memtable = MemTable::new( + self.schema.clone(), + next_generation, + self.pk_field_ids.clone(), + )?; + + // Recreate indexes on the new memtable if configured + // For async mode, we use Arc and send to handler + let new_indexes = if !self.index_configs.is_empty() { + let indexes = Arc::new(IndexRegistry::from_configs(&self.index_configs)?); + new_memtable.set_indexes_arc(indexes.clone()); + Some(indexes) + } else { + None + }; + + // Swap memtables and freeze the old one + let old_memtable = std::mem::replace(&mut state.memtable, new_memtable); + + // Get max sequence from the old memtable + let max_seq = old_memtable.row_count() as u64; + + // Wrap in ImmutableMemTable and add to queue + let immutable = Arc::new(super::immutable::ImmutableMemTable::new( + old_memtable, + wal_id, + max_seq, + )); + state.immutable_memtables.push(immutable); + state.last_flushed_wal_id = wal_id; + + (wal_id, new_indexes) + }; + + debug!( + "Frozen memtable generation {}, last_wal_id={}", + next_generation - 1, + last_wal_id + ); + + // Step 5: If using async index updates, tell the handler about new indexes + if let (Some(ref index_tx), Some(indexes)) = (&self.index_update_tx, new_indexes_arc) { + let _ = index_tx.send(IndexUpdateMsg::SetIndexes { indexes }); + debug!( + "Sent new indexes to async index handler for generation {}", + next_generation + ); + } + + // Step 6: Flush from queue + let immutable = { + let mut state = self.state.write().await; + state.immutable_memtables.pop_front() + }; + + let Some(immutable) = immutable else { + return Err(Error::Internal { + message: "No immutable memtable to flush after freeze".to_string(), + location: location!(), + }); + }; + + let result = self + .flusher + .flush(immutable.memtable(), &self.epoch_guard) + .await?; + + // Notify durability watchers + immutable.notify_flushed(super::batch_write::DurabilityResult::ok()); + + info!( + "Flushed memtable generation {}, created new generation {} ({} rows, {} fragments in {:?})", + result.generation.generation, + next_generation, + result.rows_flushed, + result.fragments_created, + start.elapsed() + ); + + Ok(result) + } + + /// Check if MemTable flush should be triggered based on size. + #[allow(dead_code)] // Flush is now triggered by WriteBatchHandler + async fn maybe_trigger_memtable_flush(&self) -> Result<()> { + let estimated_size = self.state.read().await.memtable.estimated_size(); + if estimated_size >= self.config.max_memtable_size { + self.memtable_flush_tx + .send(FlushMessage::FlushMemTable { done: None }) + .map_err(|_| Error::io("MemTable flush channel closed", location!()))?; + } + Ok(()) + } + + /// Get the current region manifest. + pub async fn manifest(&self) -> Result> { + self.manifest_store.read_latest().await + } + + /// Get the writer's epoch. + pub fn epoch(&self) -> u64 { + self.epoch_guard.epoch() + } + + /// Get the region ID. + pub fn region_id(&self) -> Uuid { + self.config.region_id + } + + /// Get current MemTable statistics. + pub async fn memtable_stats(&self) -> MemTableStats { + let state = self.state.read().await; + MemTableStats { + row_count: state.memtable.row_count(), + batch_count: state.memtable.batch_count(), + estimated_size: state.memtable.estimated_size(), + generation: state.memtable.generation(), + } + } + + /// Get WAL buffer statistics. + pub fn wal_stats(&self) -> WalStats { + WalStats { + pending_count: self.wal_buffer.pending_count(), + next_wal_id: self.wal_buffer.next_wal_id(), + } + } + + /// Close the writer gracefully. + /// + /// Flushes pending data and shuts down background tasks. + pub async fn close(self) -> Result<()> { + info!("Closing RegionWriter for region {}", self.config.region_id); + + // Flush WAL + { + let state = self.state.read().await; + if let Err(e) = self.wal_buffer.flush(&state.memtable).await { + warn!("Error flushing WAL during close: {}", e); + } + } + + // Shutdown background tasks + self.task_executor.shutdown_all().await?; + + info!("RegionWriter closed for region {}", self.config.region_id); + Ok(()) + } +} + +/// MemTable statistics. +#[derive(Debug, Clone)] +pub struct MemTableStats { + pub row_count: usize, + pub batch_count: usize, + pub estimated_size: usize, + pub generation: u64, +} + +/// WAL buffer statistics. +#[derive(Debug, Clone)] +pub struct WalStats { + pub pending_count: usize, + pub next_wal_id: u64, +} + +/// Background handler for WAL flush operations. +struct WalFlushHandler { + wal_buffer: Arc, + state: Arc>, + flush_interval: Option, + max_memtable_size: usize, + memtable_flush_tx: mpsc::UnboundedSender, + stats: SharedWriteStats, +} + +impl WalFlushHandler { + fn new( + wal_buffer: Arc, + state: Arc>, + flush_interval: Option, + max_memtable_size: usize, + memtable_flush_tx: mpsc::UnboundedSender, + stats: SharedWriteStats, + ) -> Self { + Self { + wal_buffer, + state, + flush_interval, + max_memtable_size, + memtable_flush_tx, + stats, + } + } +} + +#[async_trait] +impl MessageHandler for WalFlushHandler { + fn tickers(&mut self) -> Vec<(Duration, MessageFactory)> { + if let Some(interval) = self.flush_interval { + vec![(interval, Box::new(|| WalFlushMsg::Tick))] + } else { + vec![] + } + } + + async fn handle(&mut self, message: WalFlushMsg) -> Result<()> { + match message { + WalFlushMsg::TriggerFlush { done } => { + let result = self.do_flush().await; + if let Some(tx) = done { + let _ = tx.send(result.map(|entry| entry.map(|e| e.id).unwrap_or(0))); + } + } + WalFlushMsg::Tick => { + if self.wal_buffer.pending_count() > 0 { + let _ = self.do_flush().await; + } + } + } + Ok(()) + } +} + +impl WalFlushHandler { + async fn do_flush(&self) -> Result> { + let start = Instant::now(); + + // Read memtable to pass to flush + let (entry, flush_bytes) = { + let state = self.state.read().await; + let entry = self.wal_buffer.flush(&state.memtable).await?; + // Estimate bytes written (fragment count * estimated bytes per fragment) + let bytes = entry + .as_ref() + .map(|e| e.batch_positions.len() * 4096) // rough estimate + .unwrap_or(0); + (entry, bytes) + }; + + // Update MemTable with WAL mapping + let batches_flushed = if let Some(ref entry) = entry { + let mut state = self.state.write().await; + let batch_ids: Vec = entry.batch_positions.iter().map(|(id, _)| *id).collect(); + let batch_count = batch_ids.len(); + let positions: Vec = entry.batch_positions.iter().map(|(_, pos)| *pos).collect(); + state + .memtable + .mark_wal_flushed(&batch_ids, entry.id, &positions); + batch_count + } else { + 0 + }; + + // Record WAL flush stats + if batches_flushed > 0 { + self.stats + .record_wal_flush(start.elapsed(), flush_bytes, batches_flushed); + } + + self.maybe_trigger_memtable_flush().await; + + Ok(entry) + } + + async fn maybe_trigger_memtable_flush(&self) { + let should_flush = { + let state = self.state.read().await; + state.memtable.estimated_size() >= self.max_memtable_size + && state.memtable.all_flushed_to_wal() + }; + if should_flush { + let _ = self.memtable_flush_tx.send(FlushMessage::Tick); + } + } +} + +/// Background handler for MemTable flush operations. +struct MemTableFlushHandler { + state: Arc>, + flusher: Arc, + epoch_guard: Arc, + wal_buffer: Arc, + max_memtable_size: usize, + /// Schema for creating new memtables after flush. + schema: Arc, + /// Primary key field IDs for creating new memtables. + pk_field_ids: Vec, + /// Index configs for recreating indexes on new memtables. + index_configs: Vec, + /// Write statistics collector. + stats: SharedWriteStats, + /// Channel for async index updates (when sync_indexed_write=false). + index_update_tx: Option>, +} + +impl MemTableFlushHandler { + #[allow(clippy::too_many_arguments)] + fn new( + state: Arc>, + flusher: Arc, + epoch_guard: Arc, + wal_buffer: Arc, + max_memtable_size: usize, + schema: Arc, + pk_field_ids: Vec, + index_configs: Vec, + stats: SharedWriteStats, + index_update_tx: Option>, + ) -> Self { + Self { + state, + flusher, + epoch_guard, + wal_buffer, + max_memtable_size, + schema, + pk_field_ids, + index_configs, + stats, + index_update_tx, + } + } +} + +#[async_trait] +impl MessageHandler for MemTableFlushHandler { + fn tickers(&mut self) -> Vec<(Duration, MessageFactory)> { + // No tickers - memtable flush is triggered by WalFlushHandler during WAL flush ticks + vec![] + } + + async fn handle(&mut self, message: FlushMessage) -> Result<()> { + match message { + FlushMessage::FlushMemTable { done } => { + let result = self.do_flush().await; + if let Some(tx) = done { + let _ = tx.send(result); + } + } + FlushMessage::Tick => { + // Tick is sent by WalFlushHandler when memtable size exceeds threshold + let should_flush = { + let state = self.state.read().await; + state.memtable.estimated_size() >= self.max_memtable_size + && state.memtable.all_flushed_to_wal() + }; + if should_flush { + let _ = self.do_flush().await; + } + } + } + Ok(()) + } +} + +impl MemTableFlushHandler { + /// Freeze the current memtable and add it to the immutable queue. + async fn freeze_memtable(&mut self) -> Result { + // Step 1: If using async index updates, drain pending updates first + // This ensures all index updates for the current memtable are complete + // before we freeze it. + if let Some(ref index_tx) = self.index_update_tx { + let (done_tx, done_rx) = tokio::sync::oneshot::channel(); + if index_tx + .send(IndexUpdateMsg::Drain { done: done_tx }) + .is_ok() + { + // Wait for drain to complete (ignore errors from closed channel) + let _ = done_rx.await; + debug!("Async index drain completed before memtable freeze"); + } + } + + let mut state = self.state.write().await; + + // Flush WAL while holding the lock to ensure all batches are durable + let last_wal_id = if let Some(entry) = self.wal_buffer.flush(&state.memtable).await? { + let batch_ids: Vec = entry.batch_positions.iter().map(|(id, _)| *id).collect(); + let positions: Vec = entry.batch_positions.iter().map(|(_, pos)| *pos).collect(); + state + .memtable + .mark_wal_flushed(&batch_ids, entry.id, &positions); + entry.id + } else { + state.last_flushed_wal_id + }; + + // Create a new empty memtable with the next generation + let next_generation = state.memtable.generation() + 1; + let mut new_memtable = MemTable::new( + self.schema.clone(), + next_generation, + self.pk_field_ids.clone(), + )?; + + // Recreate indexes on the new memtable if configured + // For async mode, we create Arc and send to handler + // For sync mode, we just set indexes directly + let new_indexes_arc = if !self.index_configs.is_empty() { + let indexes = Arc::new(IndexRegistry::from_configs(&self.index_configs)?); + new_memtable.set_indexes_arc(indexes.clone()); + Some(indexes) + } else { + None + }; + + // Swap memtables and freeze the old one + let old_memtable = std::mem::replace(&mut state.memtable, new_memtable); + + // Get max sequence from the old memtable (for MVCC visibility) + // For now, use row_count as a proxy since we don't have per-batch sequence yet + let max_seq = old_memtable.row_count() as u64; + + // Wrap in ImmutableMemTable and add to queue + let immutable = Arc::new(super::immutable::ImmutableMemTable::new( + old_memtable, + last_wal_id, + max_seq, + )); + state.immutable_memtables.push(immutable); + state.last_flushed_wal_id = last_wal_id; + + debug!( + "Frozen memtable generation {}, queue size = {}", + next_generation - 1, + state.immutable_memtables.len() + ); + + // Step 5: If using async index updates, tell the handler about new indexes + if let (Some(ref index_tx), Some(indexes)) = (&self.index_update_tx, new_indexes_arc) { + let _ = index_tx.send(IndexUpdateMsg::SetIndexes { indexes }); + debug!( + "Sent new indexes to async index handler for generation {}", + next_generation + ); + } + + Ok(next_generation) + } + + /// Flush the oldest immutable memtable from the queue. + async fn flush_oldest_immutable(&mut self) -> Result> { + let start = Instant::now(); + + // Pop the oldest immutable memtable from the queue + let immutable = { + let mut state = self.state.write().await; + state.immutable_memtables.pop_front() + }; + + let Some(immutable) = immutable else { + return Ok(None); + }; + + // Flush the memtable + let result = self + .flusher + .flush(immutable.memtable(), &self.epoch_guard) + .await?; + + // Record stats + self.stats.record_memtable_flush( + start.elapsed(), + result.rows_flushed, + result.fragments_created, + ); + + // Notify durability watchers + immutable.notify_flushed(super::batch_write::DurabilityResult::ok()); + + info!( + "Flushed immutable memtable generation {} ({} rows, {} fragments in {:?})", + result.generation.generation, + result.rows_flushed, + result.fragments_created, + start.elapsed() + ); + + Ok(Some(result)) + } + + async fn do_flush(&mut self) -> Result { + // Step 1: Freeze current memtable and add to queue + let _next_generation = self.freeze_memtable().await?; + + // Step 2: Flush from queue + match self.flush_oldest_immutable().await? { + Some(result) => Ok(result), + None => Err(Error::Internal { + message: "No immutable memtable to flush after freeze".to_string(), + location: location!(), + }), + } + } +} + +#[cfg(test)] +mod tests { + use super::*; + use arrow_array::{Int32Array, StringArray}; + use arrow_schema::{DataType, Field}; + use tempfile::TempDir; + + async fn create_local_store() -> (Arc, Path, String, TempDir) { + let temp_dir = tempfile::tempdir().unwrap(); + let uri = format!("file://{}", temp_dir.path().display()); + let (store, path) = ObjectStore::from_uri(&uri).await.unwrap(); + (store, path, uri, temp_dir) + } + + fn create_test_schema() -> Arc { + Arc::new(ArrowSchema::new(vec![ + Field::new("id", DataType::Int32, false), + Field::new("name", DataType::Utf8, true), + ])) + } + + fn create_test_batch(schema: &ArrowSchema, start_id: i32, num_rows: usize) -> RecordBatch { + RecordBatch::try_new( + Arc::new(schema.clone()), + vec![ + Arc::new(Int32Array::from_iter_values( + start_id..start_id + num_rows as i32, + )), + Arc::new(StringArray::from_iter_values( + (0..num_rows).map(|i| format!("name_{}", start_id as usize + i)), + )), + ], + ) + .unwrap() + } + + #[tokio::test] + async fn test_region_writer_basic_write() { + let (store, base_path, base_uri, _temp_dir) = create_local_store().await; + let schema = create_test_schema(); + + let config = RegionWriterConfig { + region_id: Uuid::new_v4(), + region_spec_id: 0, + durable_writes: false, + sync_indexed_write: false, + max_wal_buffer_size: 1024 * 1024, + max_flush_interval: None, + max_memtable_size: 64 * 1024 * 1024, + manifest_scan_batch_size: 2, + ..Default::default() + }; + + let writer = RegionWriter::open( + store, + base_path, + base_uri, + config.clone(), + schema.clone(), + vec![], + ) + .await + .unwrap(); + + // Write a batch + let batch = create_test_batch(&schema, 0, 10); + let result = writer.put(batch).await.unwrap(); + + assert_eq!(result.batch_id, 0); + + // Check stats + let stats = writer.memtable_stats().await; + assert_eq!(stats.row_count, 10); + assert_eq!(stats.batch_count, 1); + + // Close writer + writer.close().await.unwrap(); + } + + #[tokio::test] + async fn test_region_writer_multiple_writes() { + let (store, base_path, base_uri, _temp_dir) = create_local_store().await; + let schema = create_test_schema(); + + let config = RegionWriterConfig { + region_id: Uuid::new_v4(), + region_spec_id: 0, + durable_writes: false, + sync_indexed_write: false, + max_wal_buffer_size: 1024 * 1024, + max_flush_interval: None, + max_memtable_size: 64 * 1024 * 1024, + manifest_scan_batch_size: 2, + ..Default::default() + }; + + let writer = RegionWriter::open(store, base_path, base_uri, config, schema.clone(), vec![]) + .await + .unwrap(); + + // Write multiple batches + for i in 0..5 { + let batch = create_test_batch(&schema, i * 10, 10); + let result = writer.put(batch).await.unwrap(); + assert_eq!(result.batch_id, i as usize); + } + + let stats = writer.memtable_stats().await; + assert_eq!(stats.row_count, 50); + assert_eq!(stats.batch_count, 5); + + writer.close().await.unwrap(); + } + + #[tokio::test] + async fn test_region_writer_wal_flush() { + let (store, base_path, base_uri, _temp_dir) = create_local_store().await; + let schema = create_test_schema(); + + let config = RegionWriterConfig { + region_id: Uuid::new_v4(), + region_spec_id: 0, + durable_writes: false, + sync_indexed_write: false, + max_wal_buffer_size: 1024 * 1024, + max_flush_interval: None, + max_memtable_size: 64 * 1024 * 1024, + manifest_scan_batch_size: 2, + ..Default::default() + }; + + let writer = RegionWriter::open(store, base_path, base_uri, config, schema.clone(), vec![]) + .await + .unwrap(); + + // Write a batch + let batch = create_test_batch(&schema, 0, 10); + writer.put(batch).await.unwrap(); + + // Flush WAL + let entry = writer.flush_wal().await.unwrap(); + assert!(entry.is_some()); + let entry = entry.unwrap(); + assert_eq!(entry.id, 1); + assert_eq!(entry.batch_positions.len(), 1); + + writer.close().await.unwrap(); + } + + #[tokio::test] + async fn test_region_writer_with_indexes() { + let (store, base_path, base_uri, _temp_dir) = create_local_store().await; + let schema = create_test_schema(); + + let config = RegionWriterConfig { + region_id: Uuid::new_v4(), + region_spec_id: 0, + durable_writes: false, + sync_indexed_write: true, + max_wal_buffer_size: 1024 * 1024, + max_flush_interval: None, + max_memtable_size: 64 * 1024 * 1024, + manifest_scan_batch_size: 2, + ..Default::default() + }; + + use crate::dataset::mem_wal::write::BTreeIndexConfig; + let index_configs = vec![MemIndexConfig::BTree(BTreeIndexConfig { + name: "id_idx".to_string(), + column: "id".to_string(), + })]; + + let writer = RegionWriter::open( + store, + base_path, + base_uri, + config, + schema.clone(), + index_configs, + ) + .await + .unwrap(); + + // Write a batch + let batch = create_test_batch(&schema, 0, 10); + writer.put(batch).await.unwrap(); + + let stats = writer.memtable_stats().await; + assert_eq!(stats.row_count, 10); + + writer.close().await.unwrap(); + } + + /// Test memtable flush with many batches to verify memtable is cleared after flush. + #[tokio::test] + async fn test_region_writer_memtable_flush_clears_memtable() { + let (store, base_path, base_uri, _temp_dir) = create_local_store().await; + let schema = create_test_schema(); + + // Use a larger memtable size to avoid auto-flush during puts + // (auto-flush would race with the explicit flush_memtable call) + let config = RegionWriterConfig { + region_id: Uuid::new_v4(), + region_spec_id: 0, + durable_writes: false, + sync_indexed_write: false, + max_wal_buffer_size: 1024 * 1024, // 1MB WAL buffer + max_flush_interval: None, + max_memtable_size: 64 * 1024 * 1024, // 64MB memtable + manifest_scan_batch_size: 2, + ..Default::default() + }; + + let writer = RegionWriter::open(store, base_path, base_uri, config, schema.clone(), vec![]) + .await + .unwrap(); + + let num_batches = 100; + let batch_size = 20; + + // Write many batches + for i in 0..num_batches { + let batch = create_test_batch(&schema, (i * batch_size) as i32, batch_size); + writer.put(batch).await.unwrap(); + } + + // Flush memtable (this also flushes WAL first) + let result = writer.flush_memtable().await.unwrap(); + + // After flush, the memtable should be cleared (new generation) + let stats = writer.memtable_stats().await; + + // The memtable should have been cleared after flush + // New memtable should have 0 rows + assert_eq!(stats.row_count, 0, "Memtable should be cleared after flush"); + assert_eq!( + stats.batch_count, 0, + "Memtable should have no fragments after flush" + ); + + // Generation should have been incremented + assert!( + stats.generation > result.generation.generation, + "Generation should increment after flush" + ); + + writer.close().await.unwrap(); + } + + /// Test that repeated writes and flushes work correctly (no accumulation). + #[tokio::test] + async fn test_region_writer_multiple_flush_cycles() { + let (store, base_path, base_uri, _temp_dir) = create_local_store().await; + let schema = create_test_schema(); + + let config = RegionWriterConfig { + region_id: Uuid::new_v4(), + region_spec_id: 0, + durable_writes: false, + sync_indexed_write: false, + max_wal_buffer_size: 1024 * 1024, + max_flush_interval: None, + max_memtable_size: 64 * 1024 * 1024, + manifest_scan_batch_size: 2, + ..Default::default() + }; + + let writer = RegionWriter::open(store, base_path, base_uri, config, schema.clone(), vec![]) + .await + .unwrap(); + + // First write cycle + for i in 0..10 { + let batch = create_test_batch(&schema, i * 10, 10); + writer.put(batch).await.unwrap(); + } + + // Check stats before flush + let stats_before = writer.memtable_stats().await; + assert_eq!(stats_before.row_count, 100); + assert_eq!(stats_before.batch_count, 10); + let gen1 = stats_before.generation; + + // Flush memtable (this also flushes WAL first) + writer.flush_memtable().await.unwrap(); + + // Memtable should be cleared + let stats_after_flush1 = writer.memtable_stats().await; + assert_eq!(stats_after_flush1.row_count, 0); + assert_eq!(stats_after_flush1.batch_count, 0); + let gen2 = stats_after_flush1.generation; + assert!(gen2 > gen1, "Generation should increment after flush"); + + // Second write cycle + for i in 0..20 { + let batch = create_test_batch(&schema, 100 + i * 10, 10); + writer.put(batch).await.unwrap(); + } + + // Check stats before second flush + let stats_before2 = writer.memtable_stats().await; + assert_eq!(stats_before2.row_count, 200); + assert_eq!(stats_before2.batch_count, 20); + assert_eq!(stats_before2.generation, gen2); + + // Flush again + writer.flush_memtable().await.unwrap(); + + // Memtable should be cleared again + let stats_after_flush2 = writer.memtable_stats().await; + assert_eq!(stats_after_flush2.row_count, 0); + assert_eq!(stats_after_flush2.batch_count, 0); + let gen3 = stats_after_flush2.generation; + assert!( + gen3 > gen2, + "Generation should increment after second flush" + ); + + writer.close().await.unwrap(); + } +} From fc3b5e22a07ce68e5e15cedf3292685d172e70f3 Mon Sep 17 00:00:00 2001 From: Heng Ge Date: Wed, 21 Jan 2026 21:02:02 -0800 Subject: [PATCH 02/20] stage --- docs/src/format/table/mem_wal.md | 488 +- docs/src/images/mem_wal_regional.png | Bin 566176 -> 570804 bytes result.log | 7761 +++++++++++++++++ rust/lance/Cargo.toml | 6 +- rust/lance/benches/mem_random_access.rs | 585 -- rust/lance/benches/mem_wal_write.rs | 11 +- ...mem_read_benchmark.rs => memtable_read.rs} | 0 rust/lance/src/dataset/mem_wal/config.rs | 131 +- rust/lance/src/dataset/mem_wal/dispatcher.rs | 85 +- .../dataset/mem_wal/read/memtable/exec/fts.rs | 88 +- .../dataset/mem_wal/read/memtable/scanner.rs | 6 +- rust/lance/src/dataset/mem_wal/write.rs | 239 + .../src/dataset/mem_wal/write/batch_store.rs | 29 +- .../src/dataset/mem_wal/write/batch_write.rs | 348 +- rust/lance/src/dataset/mem_wal/write/flush.rs | 68 +- .../src/dataset/mem_wal/write/indexes.rs | 837 +- .../src/dataset/mem_wal/write/memtable.rs | 37 +- rust/lance/src/dataset/mem_wal/write/stats.rs | 89 +- rust/lance/src/dataset/mem_wal/write/wal.rs | 783 +- .../lance/src/dataset/mem_wal/write/writer.rs | 851 +- 20 files changed, 10809 insertions(+), 1633 deletions(-) create mode 100644 result.log delete mode 100644 rust/lance/benches/mem_random_access.rs rename rust/lance/benches/{mem_read_benchmark.rs => memtable_read.rs} (100%) diff --git a/docs/src/format/table/mem_wal.md b/docs/src/format/table/mem_wal.md index 74cf3ab72cb..987b7dad5e6 100644 --- a/docs/src/format/table/mem_wal.md +++ b/docs/src/format/table/mem_wal.md @@ -3,9 +3,6 @@ Lance MemTable & WAL (MemWAL) specification describes a Log-Structured-Merge (LSM) tree architecture for Lance tables, enabling high-performance streaming write workloads while maintaining indexed read performance for key workloads including scan, point lookup, vector search and full-text search. -!!!note - MemWAL requires the table to have an [unenforced primary key](index.md#unenforced-primary-key) defined. - ## Overall Architecture ![MemWAL Overview](../../images/mem_wal_overview.png) @@ -13,14 +10,15 @@ scan, point lookup, vector search and full-text search. ### Base Table Under the MemWAL setup, the Lance table is called the **base table**. +The base table must have an [unenforced primary key](index.md#unenforced-primary-key) defined to be able to use MemWAL. -### Region +### MemWAL Region -A **Region** is the main unit to horizontally scale out writes. +A **MemWAL Region** is the main unit to horizontally scale out writes. -Each region has exactly one active writer at any time, using **epoch-based fencing** to guarantee single-writer semantics without distributed coordination. -Writers claim a region by incrementing the writer epoch, then write data to that region. -Data in each region is merged into the base table gradually in the background. +Each region has exactly one active writer at any time. +Writers claim a region and then write data to that region. +Data in each region is expected to be merged into the base table gradually in the background. Regions must contain rows that are **mutually exclusive**. Two regions contain rows with the same primary key, the following scenario can cause data corruption: @@ -32,7 +30,8 @@ Two regions contain rows with the same primary key, the following scenario can c 5. The row from Region A (older) now overwrites the row from Region B (newer) This violates the expected "last write wins" semantics. -By ensuring each primary key is assigned to exactly one region via the region spec, merge order between regions becomes irrelevant for correctness. +By ensuring each primary key is assigned to exactly one region via the region spec, +merge order between regions becomes irrelevant for correctness. ### MemWAL Index @@ -43,14 +42,16 @@ It stores: - **Configuration**: Region specs defining how rows map to regions, and which indexes to maintain - **Merge progress**: Last generation merged to base table for each region - **Index catchup progress**: Which merged generation each base table index has been rebuilt to cover -- **Region snapshots**: Point-in-time snapshot of all region states for read optimization +- **Region snapshots**: Snapshot of all region states for read optimization -The index is the source of truth for **configuration** and **merge progress**, but region state snapshots are for read-only optimization (each region's manifest is authoritative for its own state). +The index is the source of truth for **configuration** and **merge progress**, +but **region snapshots** are for read-only optimization. +Each [region's manifest](#region-manifest) is authoritative for its own state. -Writers read the MemWAL index to get configuration (region specs, maintained indexes) before writing. -Readers use the index to get a [snapshot of all region states](#reader-consistency), then query each region's data alongside the base table and merge results at runtime. +Writers read the MemWAL index to get configuration before writing. +Readers use the index to get a [snapshot of all region states](#reader-consistency), +then query each region's data alongside the base table and merge results at runtime. -A [background process](#memwal-index-builder) periodically updates region snapshots by listing regions and loading their manifests. See [MemWAL Index Details](#memwal-index-details) for the complete structure. ## Region Architecture @@ -63,14 +64,13 @@ Flushed MemTables are then asynchronously merged into the base table. ### MemTable -An in-memory Lance table that buffers incoming writes. -Each write inserts a fragment in the MemTable, making data immediately queryable without waiting for persistence. +A MemTable logically represents rows inserted into the table before any flush to storage. +The in-memory representation of a MemTable is implementation-specific. +Conceptually, it contains the same data as the corresponding [**WAL**](#wal) entries. +When a MemTable is flushed, it becomes a [**Flushed MemTable**](#flushed-memtable) persisted to storage. -In addition to the data fragments, a MemTable maintains: - -- **Primary key bloom filter**: For efficient existence checks during staleness detection -- **In-memory index builders**: Incremental index structures that mirror base table indexes, enabling indexed queries on unflushed data -- **WAL fragment mapping**: Tracks correspondence between MemTable fragment IDs and WAL entry IDs for index remapping during flush +A MemTable is optional. Implementation can choose to write to WAL directly, produce flushed MemTable independently. +A MemTable is useful for faster access during read time. ### WAL @@ -198,11 +198,11 @@ This field is updated atomically with merge-insert data commits, enabling confli Each entry contains the region UUID and generation number. **Index catchup progress** (`index_catchup`) tracks which merged generation each base table index has been rebuilt to cover. -When data is merged from a flushed MemTable to the base table, the base table's indexes are rebuilt asynchronously. +When data is merged from a flushed MemTable to the base table, the base table's indexes may be rebuilt asynchronously. During this window, queries should use the flushed MemTable's pre-built indexes instead of scanning unindexed data in the base table. -See [Index Catchup and Read Path](#index-catchup-and-read-path) for details. +See [Indexed Read Plan](#indexed-read-plan) for details. -**Region snapshot fields** (`snapshot_ts_millis`, `num_regions`, `inline_snapshots`) provide a point-in-time snapshot of region states. +**Region snapshot fields** (`snapshot_ts_millis`, `num_regions`, `inline_snapshots`) provide a snapshot of region states. The actual region manifests remain authoritative for region state. When `num_regions` is 0, the `inline_snapshots` field may be `None` or an empty Lance file with 0 rows but proper schema. @@ -363,257 +363,73 @@ Here is a recap of the storage layout with all the files and concepts defined so └── bloom_filter.bin # Primary key bloom filter ``` -## Writer Expectations +## Implementation Expectation -A writer operates on a single region within a single process and may spawn asynchronous tasks for background operations like WAL flush and MemTable flush. +This specification describes the storage layout for the LSM tree architecture. Implementations are free to use any approach to fulfill the storage layout requirements. Once data is written to the expected storage layout, the reader and writer expectations apply. -### Writer Configuration +The specification defines: -Writers can be configured with the following options that affect write behavior: +- **Storage layout**: The directory structure, file formats, and naming conventions for WAL entries, flushed MemTables, region manifests, and the MemWAL index +- **Durability guarantees**: How data is persisted through WAL entries and flushed MemTables +- **Consistency model**: How readers and writers coordinate through manifests and epoch-based fencing -| Option | Description | -|--------|-------------| -| **Durable write** | Each write is persisted to WAL before reporting success. Ensures no data loss on crash, but adds latency for object storage writes. | -| **Indexed write** | Each write refreshes MemTable indexes before reporting success. Ensures new data is immediately searchable via indexes, but adds indexing latency. | +Implementations may choose different approaches for: -Both options can be enabled independently. When disabled: +- In-memory data structures and indexing +- Buffering strategies before WAL flush +- Background task scheduling and concurrency +- Query execution strategies -- **Non-durable writes** buffer data in memory until a flush threshold is reached, accepting potential data loss on crash -- **Non-indexed writes** defer index updates, meaning newly written data may not appear in index-accelerated queries until the next index refresh +As long as the storage layout is correct and the documented invariants are maintained, implementations can optimize for their specific use cases. -### Synchronous vs Asynchronous Operations +## Writer Expectations + +A writer operates on a single region and is responsible for: -Writer operations can be categorized by their synchronous or asynchronous nature: +1. Claiming the region using epoch-based fencing +2. Writing data to WAL entries and flushed MemTables following the [storage layout](#storage-layout) +3. Maintaining the region manifest to track WAL and generation progress -| Operation | Mode | Description | -|-----------|------|-------------| -| [Initialization & Recovery](#initialization--recovery) | Synchronous | Claims region and replays WAL entries | -| [Write to MemTable](#write-operations) | Synchronous | Data inserted into in-memory fragments | -| [WAL Flush](#wal-flush) | Configurable | Synchronous with durable writes, asynchronous otherwise | -| [Index Update](#memtable-indexing) | Configurable | Synchronous with indexed writes, asynchronous otherwise | -| [MemTable Flush](#memtable-flush) | Asynchronous | Triggered by thresholds, runs in background | +### Writer Fencing -### Initialization & Recovery +Writers use epoch-based fencing to ensure single-writer semantics per region. -A writer must claim a region before performing any write operations: +To claim a region: 1. Load the latest region manifest 2. Increment `writer_epoch` by one -3. Atomically write a new manifest -4. If the write fails (another writer claimed the epoch), reload the manifest and retry with a higher epoch -5. After initialization, read WAL entries sequentially from `replay_after_wal_id + 1` until not found -6. Replay valid WAL entries (those with `writer_epoch` <= current epoch) to reconstruct the MemTable with 1:1 [WAL fragment mapping](#wal-fragment-mapping-construction) (each WAL entry becomes one MemTable fragment) - -After initialization, the writer updates the [WAL fragment mapping](#wal-fragment-mapping-construction) as new [WAL flushes](#wal-flush) occur. - -### Write Operations - -Each write operation follows this sequence: - -1. Validate incoming records -2. Insert records into the MemTable, creating an in-memory fragment (immediately queryable via full scan) -3. Track the Lance data file in the new fragment for pending WAL flush -4. Optionally trigger WAL flush based on size, count, or time thresholds -5. For [durable writes](#writer-configuration), wait for WAL flush to complete before returning -6. For [indexed writes](#writer-configuration), update MemTable indexes before returning: - - Insert primary keys into the bloom filter - - For each vector column with a base table index: encode and insert using the same index type as base table - - For each index in `maintained_indexes`: update the corresponding index structure - -### WAL Flush - -WAL flush batches pending MemTable fragments into a single Lance data file: - -1. Identify pending (unflushed) fragments in the MemTable -2. Start writing the WAL entry to object storage -3. Stream binary pages from each pending fragment's Lance data file directly to the WAL entry -4. Write the footer containing batched data file metadata and `writer_epoch` in schema metadata -5. Complete the WAL entry write atomically -6. Mark fragments as flushed in the MemTable -7. Update the [WAL fragment mapping](#wal-fragment-mapping-construction) (MemTable fragment IDs in this batch -> WAL entry ID and positions) for index remapping during [MemTable Flush](#memtable-flush) - -!!!note - The region manifest is **not** updated on every WAL flush. The `wal_id_last_seen` field is a hint that can be updated: - - 1. **During MemTable flush** - when the region manifest is updated anyway - 2. **By a background index builder** - which scans WAL entries and updates each region's `wal_id_last_seen` - - This keeps the hot write path fast. On recovery, the writer reads WAL entries sequentially starting from `wal_id_last_seen + 1` to discover any WAL entries beyond what the manifest indicates. - -The WAL flush behavior depends on the [durable write](#writer-configuration) option: - -| Mode | Behavior | Result | -|------|----------|--------| -| Durable write | Flush immediately, wait for completion | One or more Lance files per write | -| Non-durable write | Buffer until threshold, return immediately | Batched Lance files (fewer S3 operations) | - -### MemTable Indexing - -MemTable indexing differs from base table indexing to balance write performance with query capability. -Rather than maintaining all base table indexes, MemTables maintain a subset specified in the [MemWAL Index](#memwal-index). - -MemTables maintain a **primary key bloom filter** for efficiently checking whether a primary key exists in a generation. -This enables staleness detection during search queries without requiring expensive point lookups. - -For vector indexes, MemTables use the same index type as the base table (e.g., IVF-PQ with the same centroids and PQ codebook). -This ensures distances are precise and directly comparable across generations. -The centroid assignment also impacts recall, so using the same centroids ensures consistent search quality. - -For full-text search indexes, MemTables inherit tokenizer configuration from base table indexes to ensure consistent tokenization across generations. -Each generation maintains its own corpus statistics (document count, term frequencies) which are aggregated at query time for globally-comparable BM25 scores. - -When a MemTable is flushed to storage: - -1. Indexes are serialized to disk in the flushed MemTable's `_indices/` directory following the Lance table index format -2. The primary key bloom filter is serialized to `bloom_filter.bin` in the generation directory -3. The in-memory index structures may be retained as a cache for readers in the same process - -### WAL Fragment Mapping Construction - -The WAL fragment mapping tracks the correspondence between MemTable fragment IDs and WAL entry IDs. -This mapping is essential for remapping indexes during [MemTable flush](#memtable-flush), since indexes reference MemTable fragment IDs but the flushed MemTable references WAL entry IDs. - -The mapping is structured as: `MemTable fragment ID -> (WAL entry ID, position within entry)` - -Where: +3. Atomically write a new manifest version +4. If the write fails (another writer claimed the epoch), reload and retry with a higher epoch -- **MemTable fragment ID**: The fragment's position in the MemTable (0-indexed within the current generation) -- **WAL entry ID**: The WAL entry containing this fragment's data (relative to `replay_after_wal_id`) -- **Position within entry**: The fragment's position within the WAL entry (since multiple fragments may be batched) - -The mapping is updated in two scenarios: - -1. **[Initialization & Recovery](#initialization--recovery)**: During WAL replay, each replayed WAL entry creates MemTable fragments with 1:1 mapping (one fragment per WAL entry, position 0) -2. **[WAL Flush](#wal-flush)**: After flushing pending fragments to a new WAL entry, the mapping records which MemTable fragments were written to which WAL entry and their positions - -During [MemTable flush](#memtable-flush), indexes are remapped by translating MemTable fragment IDs to the corresponding WAL entry references using this mapping. - -### MemTable Flush - -Flushing the MemTable creates a new flushed MemTable (generation) with data and indexes: - -1. Generate a random 8-character hex prefix (e.g., `a1b2c3d4`) -2. Create directory `_mem_wal/{region_uuid}/{random_hash}_gen_{current_generation}/` -3. Identify WAL entries to include (from `replay_after_wal_id + 1` to the last flushed entry) -4. Create table manifest with `base_paths` pointing to the WAL directory -5. Add fragment entries referencing WAL files via `base_id` -6. Remap indexes using the [WAL fragment mapping](#wal-fragment-mapping-construction): - - Read index entries referencing MemTable fragment IDs - - Translate to flushed MemTable fragment IDs using the mapping - - Write remapped indexes to `_mem_wal/{region_uuid}/{random_hash}_gen_{current_generation}/_indices/` -7. Write the manifest to `_mem_wal/{region_uuid}/{random_hash}_gen_{current_generation}/_versions/{version}.manifest` (using [V2 naming scheme](transaction.md#manifest-naming-schemes)) -8. Update the region manifest: - - Advance `replay_after_wal_id` to the last flushed WAL entry - - Update `wal_id_last_seen` - - Increment `current_generation` - - Append `(current_generation, {random_hash}_gen_{current_generation})` to `flushed_generations` - -The random prefix ensures that flush retries write to a new directory, avoiding conflicts with partially written files from failed attempts. Only the directory recorded in `flushed_generations` is considered valid. - -If the writer crashes before completing MemTable flush, the new writer replays WAL entries into memory with 1:1 [WAL fragment mapping](#wal-fragment-mapping-construction), rebuilds the in-memory indexes, and can then perform a fresh MemTable flush with a new random prefix. - -### Writer Fencing - -Before any manifest update (MemTable flush), a writer must verify its `writer_epoch` remains valid: +Before any manifest update, a writer must verify its `writer_epoch` remains valid: - If `local_writer_epoch == stored_writer_epoch`: The writer is still active and may proceed - If `local_writer_epoch < stored_writer_epoch`: The writer has been fenced and must abort -Fenced writers must stop all operations immediately and notify pending writes of the failure. - -For a concrete example of fencing between two writers, see [Appendix 1: Writer Fencing Example](#appendix-1-writer-fencing-example). +For a concrete example, see [Appendix 1: Writer Fencing Example](#appendix-1-writer-fencing-example). ## Background Job Expectations -Background jobs run independently from writers and handle asynchronous maintenance tasks. +Background jobs handle merging flushed MemTables to the base table and garbage collection. ### MemTable Merger -Flushed MemTables are merged to the base table in generation order using Lance's merge-insert operation. - -#### Merge Workflow - -1. Read `merged_generations[region_id]` -2. Load the region manifest and identify unmerged flushed MemTables from `flushed_generations`: those with generation numbers > `merged_generations[region_id]` -3. For each flushed MemTable in ascending generation order: - - Look up the directory path from `flushed_generations` - - Open it as a Lance table - - Execute merge-insert into the base table, atomically updating the MemWAL Index: - - Set `merged_generations[region_id]` to this generation - - On commit conflict, apply [conflict resolution rules](#conflict-resolution-and-concurrency) -4. After merge, the flushed MemTable and its referenced WAL files may be garbage collected (see [Garbage Collector](#garbage-collector)) - -Ordered merge ensures correct upsert semantics: flushed MemTables with higher generation numbers overwrite those with lower numbers. +Flushed MemTables must be merged to the base table in **ascending generation order** within each region. This ordering is essential for correct upsert semantics: newer generations must overwrite older ones. -#### Conflict Resolution and Concurrency +The merge uses Lance's merge-insert operation with atomic transaction semantics: -Multiple mergers may operate on the same region concurrently. This is safe due to: - -1. **Atomic update**: `merged_generations` is updated atomically with the data commit -2. **Conflict resolution**: When a merge-insert commit encounters a version conflict, the merger reads the conflicting commit's `merged_generations`. If `merged_generations[region_id] >= my_generation`, abort without retry (data already merged or superseded). Otherwise, retry the commit as normal. -3. **Merge-insert idempotency**: If two mergers merge the same generation before either commits, both write identical data (primary key upsert semantics) - -After aborting due to a conflict, reload the MemWAL Index and region manifest, then continue to the next unmerged generation. - -`merged_generations` is the single source of truth for merge progress. -If a merger crashes after committing, the next merger reads the MemWAL Index to determine which generations are already merged. +- `merged_generations[region_id]` is updated atomically with the data commit +- On commit conflict, check the conflicting commit's `merged_generations` to determine if the generation was already merged For a concrete example, see [Appendix 2: Concurrent Merger Example](#appendix-2-concurrent-merger-example). -### MemWAL Index Builder - -A background process periodically builds a new region snapshot: - -1. Load the existing MemWAL Index to preserve configuration (`region_specs`, `maintained_indexes`) and merge progress (`merged_generations`) -2. List all region directories under `_mem_wal/` -3. For each region: - - Load the region manifest - - Scan WAL entries sequentially to find the actual last entry ID - - If the observed WAL ID is greater than `wal_id_last_seen`, update the region manifest (ignore errors since this is best-effort) - - Copy manifest fields (including `flushed_generations`) into a region snapshot row -4. Determine storage strategy based on region count: - - If `num_regions <= threshold`: Serialize as Lance file bytes to `inline_snapshots` - - If `num_regions > threshold`: Write as Lance file to `_indices/{UUID}/index.lance` -5. Create new `MemWalIndexDetails` with preserved configuration, merge progress, and new region snapshots -6. Update the table manifest with the new index metadata - -This process serves two purposes: - -- Keeps `wal_id_last_seen` up-to-date in region manifests (since writers don't update it on every WAL flush) -- Provides readers with an efficient snapshot of all region states - -The build frequency is implementation-defined. More frequent builds reduce staleness but increase I/O overhead. - -### Base Table Index Builder - -A background process rebuilds base table indexes to cover newly merged data and updates `index_catchup` progress in the MemWAL Index. -Typically there is a dedicated builder for each index. - -The index builder workflow is expected to be: -1. Rebuild the base table index to the latest state, this automatically covers all merged generations -2. Read the current `merged_generations` -3. Update the MemWAL Index atomically: - - Set `index_catchup[index_name].caught_up_generations` to match `merged_generations` -4. On commit conflict, reload the MemWAL Index and retry - ### Garbage Collector -The garbage collector removes obsolete data from the region directory and updates the region manifest to remove entries from `flushed_generations` for deleted flushed MemTables. - -Eligible for deletion: - -1. **Flushed MemTable directories**: Generation directories where `generation <= merged_generations[region_id]` AND `generation <= min(index_catchup[I].caught_up_generation)` for all maintained indexes -2. **WAL data files**: Files referenced only by deleted generations -3. **Old region manifest versions**: Versions older than the current version minus a retention threshold -4. **Orphaned directories**: Directories matching `*_gen_*` pattern but not in `flushed_generations` (from failed flush attempts) - -**Index catchup consideration**: Flushed MemTables must be retained until all base table indexes have caught up. -Since flushed MemTables contain pre-built indexes, they are used for indexed queries when the base table index has not yet been rebuilt to cover the merged data. -Only after all indexes in `maintained_indexes` have `caught_up_generation >= generation` can a flushed MemTable be safely deleted. +The garbage collector removes obsolete data from region directories. Flushed MemTables and their referenced WAL files may be deleted after: -**Time travel consideration**: Garbage collection must not remove generations that are reachable by any retained base table version. When a reader opens an older table version, the MemWAL Index snapshot from that version references specific `merged_generations` values. Generations that satisfy `generation > merged_generations[region_id]` for any retained table version must be preserved. - -Garbage collection must verify that no flushed MemTable still references a WAL file before deletion. +1. The generation has been merged to the base table (`generation <= merged_generations[region_id]`) +2. All maintained indexes have caught up (`generation <= min(index_catchup[I].caught_up_generation)`) +3. No retained base table version references the generation for time travel ## Reader Expectations @@ -704,119 +520,6 @@ the generations in the gap `(index_gen, merged_gen]` have data already merged in Since flushed MemTables contain pre-built indexes (created during [MemTable flush](#memtable-flush)), queries can use these indexes instead of scanning unindexed data in the base table. This ensures all reads remain indexed regardless of how far behind the async index builder is. -See [Appendix 4: Index Catchup Example](#appendix-4-index-catchup-example) for a detailed timeline showing how this works in practice. - -### Query Execution - -Query execution unions datasets within each region and deduplicates by primary key according to [LSM tree merge read](#lsm-tree-merge-read). - -The next few subsections go through the query plan expectations using custom execution nodes optimized for MemWAL's data model. - -All query plans assume the following MemWAL setup: - -``` -base_table: shared across all regions (gen -1) - -region_A: - gen 1: flushed_gen_1 - gen 2: in_memory_memtable - -region_B: - gen 1: flushed_gen_1 - gen 2: flushed_gen_2 - gen 3: in_memory_memtable -``` - -Existing Lance index optimizations (scalar indexes, fragment pruning, etc.) continue to apply within each scan and is omitted. -See [Appendix 3: Execution Nodes](#appendix-3-execution-nodes) for uncommon execution nodes we use here for optimized performance. - -#### Scan Queries - -For scan queries, the base table is scanned once and each region's MemTables are scanned separately. -Deduplication happens per primary key across all generations. - -``` -DeduplicateExec: partition_by=[pk], order_by=[_gen DESC, _rowaddr DESC] - UnionExec - # Base table (shared) - ScanExec: base_table[gen=-1], filter=[pushed_down] - # Region A MemTables - ScanExec: region_A[gen=2], filter=[pushed_down] - ScanExec: region_A[gen=1], filter=[pushed_down] - # Region B MemTables - ScanExec: region_B[gen=3], filter=[pushed_down] - ScanExec: region_B[gen=2], filter=[pushed_down] - ScanExec: region_B[gen=1], filter=[pushed_down] -``` - -#### Point Lookups - -Primary key-based point lookups first determine the target region using the region spec, then short-circuit by checking newest generations first within that region, falling back to the base table. - -Bloom filters optimize point lookups by skipping generations that definitely don't contain the key: - -1. Check the bloom filter for each MemTable generation (newest first) -2. If the bloom filter returns negative, skip that generation (key definitely not present) -3. If the bloom filter returns positive, try to take last matching row of that generation -4. If the key is found, return immediately without checking older generations - -``` -# After region pruning: only region_A needs to be checked -# Bloom filters checked before each scan to skip unnecessary I/O -CoalesceFirstExec: return_first_non_null - BloomFilterGuardExec: bf[region_A][gen=2] - TakeLastExec: region_A[gen=2], filter=[pk = target] - BloomFilterGuardExec: bf[region_A][gen=1] - TakeLastExec: region_A[gen=1], filter=[pk = target] - TakeLastExec: base_table[gen=-1], filter=[pk = target] -``` - -#### Vector Search Queries - -Vector search uses bloom filters to detect stale results across all generations. - -``` -GlobalLimitExec: limit=k - SortExec: order_by=[_dist ASC] - FilterStaleExec: bloom_filters=[bf[region_A][gen=2], bf[region_A][gen=1], bf[region_B][gen=3], bf[region_B][gen=2], bf[region_B][gen=1]] - UnionExec - # Base table (shared) - KNNExec: base_table[gen=-1], k=k - # Region A MemTables - KNNExec: region_A[gen=2], k=k - KNNExec: region_A[gen=1], k=k - # Region B MemTables - KNNExec: region_B[gen=3], k=k - KNNExec: region_B[gen=2], k=k - KNNExec: region_B[gen=1], k=k -``` - -For each candidate from generation G, `FilterStaleExec` checks if the primary key exists in bloom filters of generations > G. -If found, the candidate is filtered out because a newer version exists that was not as relevant to the query. - -#### Full-Text Search Queries - -Full-text search aggregates corpus statistics across all generations for globally-comparable BM25 scores. - -``` -GlobalLimitExec: limit=k - SortExec: order_by=[_bm25 DESC] - FilterStaleExec: bloom_filters=[bf[region_A][gen=2], bf[region_A][gen=1], bf[region_B][gen=3], bf[region_B][gen=2], bf[region_B][gen=1]] - GlobalBM25Exec # Aggregates stats across all generations - UnionExec - # Base table (shared) - FTSExec: base_table[gen=-1], query="search terms" - # Region A MemTables - FTSExec: region_A[gen=2], query="search terms" - FTSExec: region_A[gen=1], query="search terms" - # Region B MemTables - FTSExec: region_B[gen=3], query="search terms" - FTSExec: region_B[gen=2], query="search terms" - FTSExec: region_B[gen=1], query="search terms" -``` - -`GlobalBM25Exec` collects document counts and term frequencies from all FTS indexes, computes global BM25 parameters, and passes them to each `FTSExec` for comparable scoring. - ## Appendices ### Appendix 1: Writer Fencing Example @@ -929,78 +632,3 @@ The MemWAL Index is the single source of truth. Merger B correctly used it to de 2. **Conflict resolution uses MemWAL Index**: When a commit conflicts, the merger checks the conflicting commit's MemWAL Index. 3. **No progress regression**: Because MemWAL Index is updated atomically with data, concurrent mergers cannot regress the merge progress. - -### Appendix 3: Execution Nodes - -This appendix describes custom execution nodes for MemWAL query execution. - -#### DeduplicateExec - -Deduplicates rows by primary key, keeping the row with highest `(_gen, _rowaddr)`. -Since each dataset has a fixed `_gen` and rows are naturally ordered by `_rowaddr`, this can be implemented as a streaming operator without full materialization. - -#### TakeLastExec - -Efficiently finds the last matching row for a filter predicate without full scan. -If the primary key has a btree index, directly queries the btree to get the result. -Otherwise, scans fragments in reverse order and within each fragment takes the last matching row. -Returns immediately upon finding a match, avoiding unnecessary I/O on earlier fragments. - -#### CoalesceFirstExec - -Returns the first non-empty result from multiple inputs with short-circuit evaluation. -Inputs are evaluated lazily in order; on first non-empty result, remaining inputs are not evaluated. - -#### FilterStaleExec - -Filters out rows that have a newer version in a higher generation. -For each candidate with primary key `pk` from generation G, checks bloom filters of generations > G. -If the bloom filter indicates the key may exist in a newer generation, the candidate is filtered out. -False positives from bloom filters may cause some valid results to be filtered, but this is acceptable for search workloads where approximate results are expected. - -#### BloomFilterGuardExec - -Guards a child execution node with a bloom filter check. -Given a primary key, checks the bloom filter before executing the child node. -If the bloom filter returns negative (key definitely not present), returns empty without executing the child. -If the bloom filter returns positive (key may be present), executes the child node normally. -Used in point lookups to skip unnecessary scans of generations that don't contain the target key. - -### Appendix 4: Index Catchup Example - -This example demonstrates how `index_catchup` enables indexed reads during async index rebuilding. - -#### Scenario Setup - -``` -Generation: 1 2 3 4 5 6 - | | | | | | -State: merged merged merged merged flushed active - | | | | | -Base IVF index: [-- covers 1-3 --] | | - ↑ ↑ ↑ - index_gen=3 merged_gen=4 | - current_gen=6 -``` - -In this example: - -- **Generations 1-4** have been merged to the base table (`merged_gen=4`) -- **Base IVF index** has only been rebuilt to cover generations 1-3 (`index_gen=3`) -- **Generation 4** is in the base table but NOT covered by the base IVF index -- **Generation 5** is flushed to disk (not yet merged to base table) -- **Generation 6** is the active in-memory MemTable - -#### Example Read Strategy for Vector Search - -Without `index_catchup` tracking, the query planner would need to perform an expensive full scan on the base table for generation 4. -With `index_catchup`, the planner knows exactly which data is indexed and can use flushed MemTable indexes for the gap: - -| Data Source | Generations | Strategy | -|-------------|-------------|----------| -| Base table with IVF index | 1-3 | Use base table's IVF index | -| Flushed MemTable gen 4 | 4 | Use flushed MemTable's IVF index | -| Flushed MemTable gen 5 | 5 | Use flushed MemTable's IVF index | -| Active MemTable | 6 | Use in-memory IVF index | - -All data sources provide indexed access, maintaining query performance during async index rebuild. diff --git a/docs/src/images/mem_wal_regional.png b/docs/src/images/mem_wal_regional.png index 451ee95414f43934ea661869ed14a3c2fd09d67e..5681fa27b8b885b42deaa327788b39ff49c06021 100644 GIT binary patch literal 570804 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%0D{6(@ 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 z z7af8>H5vBlgO8zPb&x6zG?5z8MX4diD21zp)zCl%drrQTPXH}0t zZ3Ff32b8-csMA)u^31)MCsw%t)KeJ#S`dPqes8i{j)M@uf3ci+B=r?5zAYcB!$OHJ zz5yA~m&SC5pyN`Cy`e~_7EoN^Dl_FkQP9xrBY+L!LjSaBKwl;SG)|T&+;M<-Y}+sz z19}XeO#;>)YMP3H0$$&@{B255AA7*=H?N2S0~r*n?BAQL0yvn|6q&qtC-EbwAkyxC zG#Kd7tY=X#UcC5Z%c=P0oZ;Ob@<%IoL=#s1UljQZt62Uvg>F`G8NN$02l3bkhM%nL zA5Q}=O9T}F9DTzU&0>q5ztrVrz_hYwtAR245>Nx7P{&L>Dg~!Tz44a^5|tf1@6S7n z*EevN|D!_Jtsl?t`oT|tV1Mo(SNRE?{^2&ePKuu|IH6qs%jvIZ$d3soe*ciDGC&vl z&rm#PURgTy0!~}CoEEJv^G{p3?tY6NDu^OkYi57GQwIMiyxhYgK&bTO#v@hY7Fi=nE{_Oz8t-ty2_olzP>J>L0rUrZ}@g5z5l4X&W{e9v~l!iBSp4_1_ zzKr}CT^0WJy45ZEtK1dr55XVrf$n+O9&?mtMWJRWOYj%{{Ns?Q2f*{tyETP4knCQ! zb|C$AzIb^zexnK~S168F$0&Ux%n4OZp|Nt>?w`DZCCE44oPD=wTlVLs&EH3nb5TI# zuO)|`F1MJ~a@8q1UoDx&Xc+gk9LLRPYZW&Xi>K;M%aZKFztPoT5II)(U8%7!6UZg+%%PiZyz-!P4%vKDLU4E;(P7-aq>kaH;RQ)8fvuH%RP%G{8U5 zkp%IA+Y2Lj6&W2L{^t(Ef4sF5TxN70+%MPsL@q%TaiENF9ZCL9{(rhZcvUXleBMeA z-DtA|N8kgp1~O_=k-s| zUh~|qAxVM z`^&!qvLCj94bq0lAWj64J0pCP9N}&FiT)Y2K=a-L(rv_s6a;nB|3#**S-5vLK-g`S zZ|9c{VBL4v{V@Gi6Zx6gG2~=Lpnv7V79Ijyxw0yc)0lUwn}8qX51u&;YWk?)oy5xt z^$|{UWc{xHIaV#(DKO=uz?20=T`#QndjCi9@s&ELR^^6V$8+m;r2p?FOTcz+yFnT? z`q6I%ECQRVWn-$zoqqF#TmrT&T_ z4A$Cq#E2Nb_^F>+uVueMAE+YeqRn~E9jt_pgw4SAt$`(Y_4@_)x;|XW?gn$ZmJ(2_ ze&FA1WLd-4z&6=5$d5{;?jT%{_lauPZ@w6X7!rQwZz5=RnIW(ohf_AK7YHlJa^n6; zaDV{@xBhz`Py?*?l{9kvaJ%B2|8Eq6I$d!dfjtl^m9%ae7!I;G|Em3U2LJ`bcB&Rq zAD~=iM6#IZDE{7hZtsEY8F$HV?Y*+KJgoNrYR?#dC}ho$YJ`A;3^d+^GQ)~V{t=)P zogQ=>vm3-Snntb78_IXkEMIg+T;dw#A*#cF5Fxmi3S^O0wCpA@-1fJJeo%;in$i!g zLr@?HOLva=Kh&P>lwM4*RV*X;daFEWTON8mD^>xOrJP{^?Du)6@@93}&vRmE4$xI1cO zC0`BwH#TY$lA#XKtudcQKJ3z(!m;Ma4KGWDnjO5N&5p6_BAEpV_bpcPOxQgDw6 zKC2qaZ(6B3A?(rrh`s0ap0gfaw*4Nx&NhUcQ= zQOD7^^73j;Zsu{0UouWIxFl5B#I93gpb_S|;c;q4gzEo;*j{a*J`p?kee*^)MR~ol{ixes#~sM5@zd(zc?+ zkyHHpiO=6ZuUs+zn0Nop&HuRf@yM)N|2$FSQI}X>PPRXu3zo}2;cT|QO+<`C$4uL! zJN8M3!_LBLH4Z*fzd7qx$$Hk{II~ALyX#8#dvl7LdO|ox4jq@#$c^c$-MVJnNzuIb|dhhAnyG@Th}hSv-X>^dcwY=1u7e5bH=io8*HQ7u+g`jwK_ zA&+);efNH^Zrf{&+KI!8BbMG966|d|L*^J;EYm#J=bavW&=P+v zkBm@d`JMJCS;gxbfRkyks|%eGLU|EV9GTR%DvICgOZvKn*5rPc8nHdE?Ym#9CC?lG zaHx8{?cadr8yeC%z{13F_Pp+QAkMrP*C-7XeO%dRIJXsNuGBl8oCJ2C-Tl6 zmFtHU;Tkz_gW=e5Q^mZ_nd1*qmHlIr8s~RNCZyI{Ed0j6f^SCb!rA#OmRf1Yv{xn* zBgY%2QX>*Q9?a$b^I3;ZY0jdd2;O(wAU>195V&GPEeE5)3yMYo%gj1}}+fL_V4rS{er>5B-$*CS~!!@;! zW(=>bueD;$@Zo6FkR9+b7<<)_?EBZP9>Ik1n_qnnHzbdwpZ}J@t<$DrVbHbK%zCHb ztogrsCoe$*&y4`ero8lCA=ajQr+(6?XtHYyG zzlV9GT)^S*0oi0P7WW=vH^}6%V`~tpb8QcG?g`vMbBN$2QVPsok}S@fNUB)U+8)`>}SVh~JaEJ>_%V<9FBpe$UEaxed|wwoMkz zDm|&(I^mJVz4mSutRvkVI^ArNPd+QI(`>&q3_TtWv#V3B*>cpvrZiW`9K(cX2_`(d zo9Stt5R-Kx?CgdTxv$a1JYXYJbMTWfB0b`~_&6#VjT-io9pA1!Xpu2GHLRu#8=PKM zHs>}i5$An*z!|^w^X(nqPT^qBT?5nPz``e3jGt_G+tEhV*;>AYmSg25&;a(%rP_XudZUe5_+_Y>9cpu{p zaTCq^MT~46A6KOMt=9uV%ts3Si6;lcnfBFvlW`BcBj+?aWq30zYQL~bHab3@^f_~C z*cy)O^w_OhXG+&1T(?vY688uP{*Qf}i+?eo?L415iIG&cztsYJy^|xux8#|r!TkQW zj7`B~oP**Il|F1vlZeROH>?KQPD3t1iFtqSaQcU{4TZ(_@6L{Y_wEZ9NxwB}TMs5c zaX7F&M#LrUy>(_`rx>^XXkR_-%@zGAjh7bcYRYbG`f3tjykgj~%_Sl|At2@1QYF)!%m>1gBVu|- zk6SA;gA;Z`r$%2WV!S!#*zlc)GYK)tN}q9$!Q6fa+aY7WZonCa`|9D1_LhXlFHV{d z;}s1$?ISOpeX(C+J@ZKJ=X4jI5s8GSGYRf14|o*^$Kc;inKfFmK5|p`vo4-Hd7yXP zOR}0^Z^7i97PjEVcr*{=XKW8UhrCiM7x^w(bn5Y3ypdS(K_TlvJG`W(Fa5lpaNR_DV#Dc_!s`@pM0Weii|q5YJ3J^FM4aTdZ(OB z72V$B&E%#I%}Q)m>^(L7&W_hr{gjMR?&P{{p&VVV4fbv|POE`J@c`z@;(4djiiL#H zJ_Vajp@o`HRET-fE7!Z+N6V1oS~>rlUVFfk|VxHuyEa@BA8x>d5|RQMPiuF*Gg(1WJ9>z@>_ zl6+riBi6sQ^hOlc(%vqbGdjA3q`LVHiU_3BUrs4QP9Z2`S-|vYm5|DR6d*|FnHKvG`yu*DwSzAl%t{IV$rab zv(Fc!yoO;bFFfmrnwEiS4YP$`a9o*99S4ZJj73yqf=%7d_gxzj-L+&s<0M@|3f_+x z7F_bQE(S~Nx#31|ie}o@Xz=%8gVrxG$*#1mLZtSG`$zT%+mhwbbOnd2 zMBL*S?hyMJn6wxp9cUjOfLV+#34tOp?1Vz4Y2QY@i8r&2;x12K#iaU-v)c%M05dz4 zwC&T#Kc{lkWbBIaY%V3ea2G$Jmuq2O+(W+nuzwQp2XaVpSP0;FJoPS+;3;Apv0uZK zLs?dc?G0b^HYrc#a#+jPx7U{T`)b__AaWFtQw$h??4+WsDchDuhkc~pOC53Kl&C!E z{pbsy@B5ZhRbrMW7u7jB;&rG^z$x+h&P|%6KL7?lqG+mnKTKtsJIN$z>eI~e__eiv z?rzqvguyMKKP-mI6qj#UF;;u@MxP+=jM=rl*AMPp@Wo?^Ec4*sUp9p*g{<3% zv2>wTTjcw+?1tl_p?zxC(q$sXdKCM(G?8ncgfWwIZYy+4F}h;SCR%C02K)oJV$Q|D zEQjXb6|qXorMg&^iZE@55^VNeLZO}WIJ2jkczU|O)GqJYj-{hBJG$ca+M^bGn5YD| z_NVP;s?R=8W4kS#K5R!n^M?IN&+IVK7bLMN$uGl|+8UIUwzes?C0ndNk@`ySbKJL# z&bg8lA6L?n!cN(9Q#}tkFmhkwI?w>KW}_nBCCAE_3TpJo0W9H%uZ+P^rNc)1zNMvF zShO;xDuS11qo_Ll3bG_)4VjpLo+yv$GSGk-*pMF}dkHgB$ELEgqCNCoLqmgXpSIWS za|`)w@@wC4GA-e`>E*Bc@L~P*`#my#o5wSDPF}>EqzR|Es>6JzzRG&dA5Xop?s33+ z!tikhw1up!U2@!K+})=$VwlSoGUXe^_(lI^f|y4bExrCPU!I+cv*0OV->)0Drh|NA zgT2R;y%)YHdo`dNukOX&NWNLsHNsBvNHdD`YafzG=fk{{T)KP#nCWE~2Uua|VERyJ z&WcBm9@W5WYK|V9a-vdMa%+IQ0Iy+@PQ7)oG?w&-D8{2g!iIj2i7mkarFDSEOI9(& zANE>cE)b{hPR%N;MaRPC@Y#XX^M?6E?S=LM!vL$L?-^=M+SGbI{(o|c3Jc4wi|L1M z2;;+bI#o-Y&|P-7pvTEX32p|ju@}I`;F@2*zOvT2b(c(^w~O6pyR=*adphaSVCZZ? zx(xoxs61Us{^k96jFwh7-?ayJ!F;#}y$ytOjy0v@T3$~@o=*U#ive$8c6igSgD%!x z$~(k~B6CU9@&IwZQM4OH9({kysQ?nl!aTI1EJX3y`-@h8QSY)&x$v_otoyajZ7W~Y6@liEJOKjJ$PSFsTD1s(P%Bx!E}Fb<}V9k4sH+cVrFHv zIcHriQL}r=uy9kfERh%&>&`XCp5%E7;PLo$b56`_Q_fGR z8R~W5iL>c13D)^3Es#9%>+Zm&=;#cqY&MS`*MW zm!vESnTEPLYLg=2O1xT;@b*!gheUvII5u7M#tW^WWMz1{IDqb#Gr<^uJQ_y5B`}*4 zK7MJV?ujO~kdRBG*EO^D0PP5Q<2$e>hPBI_Zn~?FH{rHY*@%xdA2^mZfV$+QYhf zSb$s8!zPLgf5-Vzzuc*>p`j71p>-%cBxJZX+}W7&h7P86{}-6&6i0GlgsDPs>P)XT z@Kptqm*PB|y_3_Lfsr*KA?GigL28ArUJuy0DdZTwy;PcrazVCU_WMBfNlrD>63>#U z38w$Q`Z`x3U9#3qmcqiqpi@+KJe{|#jqOaewbR>UZxf!@($$L!vfwXpn zfm!u8=M>y|_;9O-I?;GtWn}_NG&H2k7cesw@?&&rF4judUlJAn34S2lTsqz*2Y$gv zfE~*|OVfEOWXiu_>yfHEXE$UcD&9p8f@>4@(C4VQnBHsbOM7uws+B5He(xvHPE-W9BoKsOEtx#=MTG6Di=}q{jQ7m7 z8%?5ETih6pnikwvcH=*+*Q6ZQUR4Ym<^O*gCI**Dcp#hhi3$8}W?O2S)J>Msi)*k- z0;CJe7jc&vN>8Z`m)|=6bb=s~Au3i}90sJj!0sf)>t#a%Y+3kqc|o!ooMjm(j!GUg zAR;cl6@6#9R;iPvHc=4KzPUvRf9LqQY+Y*ArA5^&aCT!psc?x=qxb%S$Q9hlVKSG<3Na(Bu!s zxob;o*!Ot%QHnKyh*1!h^kUhb6V#pLAa>!4KRt+I88CO~j}F9fHHq$$*+j;D_>=WC zK`v#JVeflldM{(>Kt8ynzBRQnF}ptmzVOPUgQ8+W)=P7IrwnJMkw-^^6& z$7-t=X(&zkLaw-gqUE}Ll$Kj`cY7Mo7b{~*DFQ9G2Y2duh+9bIV!4W>2oo!df`WqT z%rn;7VS70mD$v_FER96q@AQp8ZeE`47Q9o_%~eE8g1JU-Ok$bAv48|eky!7zjY?n8 zqR>%4ooVTv*ocUTBr16Yg|Oa3NST%DGQ^ON z1TGp>k3))sBYOIMGmOqJ#`Y`G!Gtj$ojupaA;PRoaa6?^fzkaZ^GVup^66Pvmt|@rNWFC8>uu*9;#fm=rXA#mW7XkEHwWuf#DcqSN9BN$ zV_12Hqe3DP>y-*4#HHCuAH{_IOi#9OeP`eOIxxG$1>%`rX;;)jjq$OrI{vV$7D?5L4_2!Rdt1O8tJ zV04{2e$C~d5&(wmz_aSqm;kT1wiVFLG4PzsJ=hHJWB|eTM0e1TU>~G&sqGe0pQM-5 z{6-hzp2N~^fA{A@vxN=C*wC$<-GnBd8;q=Op^K?<drJ9#d+Lb;Ca;=3GxFcQ;{q4b zMn@U%AJ}g>`sMX;TG?RxQvfug{4HUdgJC{^52zX$8BGE#Bx|FY>&w%nR4XnZ2&@?Z z(Oo68_8Z`Ee07aGB(FGHr|KK@9bh-d-Yp?e>Z3dJEi#=OJT}bre+D zrn(;i+OXH7zE=5%V?JQnl|2_pT(??z@?$pONnYI6Xe{UmnB5&UTWeP$ELznU^M@Yr zeAe498MOu5Om|4X)cAi{6j1!>a9|!NaubcwLpoy-Y$Ge$fIeDtD}2_I@0u}ku6BV> ze+-U8KlH_}NEKxtc<-9N^oQDC`ukVr3<5<@-;W;QUT1)8jxry(x?gH-&>FrYk7_Ns z`2Z9v8)nk&p7msIy008?7!+bUTFFk+<-Y@P|HVT6y;-+~PW)Z=9aC`#M2WvqdF z;iu@snT|g!xw~c%CtN-NZ@Cs34FX4>6^Pi%xAzY4)MN_?4{OKEZ&RF~84<`k`exTZ zqo3`3m)IrHy-R`*90T>RLhrLHf~tz0ZtOv_gr4Cg8?ucVhR?(wYl$ZNnm&N z9bapI5vZ*;fj%p08jwjrkS%ukFgLFTBU1!6&xsIvFCgra^y2B>4n*}k`8v{%4FIF_ zG%wbXFE6%I{rRiN4I@sEKZ<|#>Q%z!F1N-V0|~38DEI0zq7~Y!Jqnzi3#vi(Zh#v8 zP2|buY^x4LGV*oxHhYA~TCS}yzy?qzS%IM8q>&(Oi@Cc^?o%r%7vQd1IX1CvI+$5- zx_8URal~QK{S;A%mLrw;Kq;*Q*kZhqCi;HM<#{9mD{lrKm9mc{z;C zoGY?{OU|giBuiW7>i{4?JsWuA(VtTl1d!PUS%-t3%mNMrBarr}CidMoaOng%Cbso{ zlO0z_s(9HafDr2HfXON&3tu-ww@fMJJNdV)w<_LhJvU2SxmA*u&c8mirKL3e0G6@C zV^Q65aZ^2H;g{A0W%g&3D>;W(dYK^?QeH8axjb~^q^)+_Ct9q3L%Z!+_d~mv3<&N| zbf%8|8WVu|w4DZG!=Nv2033Xw1i;lg0BdFy&{cS6&WEqvS_TJvy|8v17a&?E1_BDS z@JeBUZ-6kd3gPZf!nW!u#dC)vY+XayUIc$_P@h#24=^M-%1&sr#WivL>qV8T2m8`p zeRN&{lS8_&+tS%texXe#8}MOo*v0_9yrK*s%DEBZ%g{*T zydr*MB?7*41iYp_zTzptMWZLP|M{x}h)c8n_HO%uH>ckWP|Tq{vw)7Hd$45AJ#=4E zRI6+E6^)>?BRzqdb7ui8aJt_ebj9d`-nR!a`ZtG#;>?gdFcg=1h20_@KoCDVgB>vn z9;ccClBBGBjY^!{I3g}JX*c>b)KOjz93KtRr&{x+PrlDR4aCtGfUMh*tY+Y_E=vExu(flAT3$`0$@eyzhY zM{dX`0H&kffjwhL3=YOawuM`@l#q>~IFU>38u1TgakyLva!{X`O#&sKG4 zxaQl|Ab)@hA{ZvXTvqIdBPTEzp8wA7)|gxkKo0UCpHulqLuxrjfM8~{ z_vM51y!i0e$b0T3a5!lDyxoCcY+n|>wgH?!n%;n`a2f%i3DZ_`b{!p6RQZ4cJoA-2~Rb}{EUpKK6C4hn% z+FK~z^D3T4s$}N-pmpMBIQ#@Z?>y`2#gL2`Gb~Tdz_2LR@Ndz&#>VYmvNwvXj;;HH zpbLrNHiQetfZ$wRX%QAbuX!LJ;CTbtjm&Zmxn|CVh$K9V@0+q2?|;_;xcTequIKI5 z_5ry1A5WusoSx)#Do>rX$R8WD%jU&jlvXz{=76+j89iU)eW~EMgfeFaWce=~V=RY&7 zSu{R+3;e`j4V^t7D!@m%VbuHMJFw3T6kS^{N2Nlc1d+|7Se%97E!8*JUWUEe>6yu| z(f4rj)aocNgr%bM0gzmAZzC%gYb~uJh@{G4wV0&S2u zARQqH1Clnt`|M{*0Q%zuzds8+!I>ySZXR+_$H#Sid-ZKw(%wx1du|YyQ;N(DGneP5 z!R!QiN;QbYMxEf1b;Al<0T0j$gk{gzQ*m@%v$&)GdAZ@X1ng~& zOu~7H^Dd_b5PKmoytEugJUbpdl+3}iC=HmKn|A=Lf4`WAMJphvS=GeIbkytX40t59 zAip8fZ}d(!=<|zT-zIykG5J0Ns8?x659je9nn=V6AH8n;kpDo`}GW9YWVug#q11aHiy^fr$ke-qwPve4OTI4mQIk5(57uH?7VVVCX6XLYJr6pooJI z4Q>Z8U95soDD7yzSt3Z-<{2Puer4V?T?Nh)7l7v7c<^=|!0cO14t3c6z*h!xq<)z9 zK?L5rwT8mG?0D~}Ut&N(qM^Qyx!)G+MyVJj-fFX&TRXC}(uC1I+V7$g_%~~Qf*(|- z;rWBB7QGV7QtDHXXU4SAq)t3`=zDaOblNDf_d+_*(@}&Tve$0j7Wkud9=0jIXxXS^mlr_ z6lG{y@+0zE7SG~dbAEBToTpEf#|%HAe(fiRVcEsGGN#QtrNX)@FEO_5yV{U=dm>na&-Y9|z+ZbA^+Z`ye?%zp zM*4FuprEDNZ}VlKxa8f3wDbp>#?~Q1yR~{G8k~FUQv?RjodsgP=mTdY-2Bsl_^GMu zIb^4?qcm!yiZPNFA=}$JOKM(TUV-&82c63<(64$VUrox`%cca_qTR%l!^v};)Hq56 z_=D$Fa&m>TYbPk46}@-zi(HpB_7lfW$L4G^S1rAD+fE!BEL^Wb2o7T~6A-jMUjOz} zPd-XY?cp@PUL-Zv1+>Bpfkgt1HX2p=2`J!A*bTS)xJNxVoozk)IUXq^ z$#?5{8etzjUnm{{(9jyMD9Yu3#-h92k+{wgtRPe=C@fq_Q}ITLr>LTrV!P06{2{S6 zu94* zR{`=utNGc9+N@25%E)I!bec)iWk)LpSIa~X_WhH9k|ff;)1z0*(}9*==_DeIRxK## zat&7y9dFe=&CJUC80_%5_w#JWYGQ^H&xwQ629+dBNBVo4dKqPTj`C%c62F9~eDye=eOIV>CRYSd?=g8iZbcxB@-+d2x3(VBZnlY3 zdhtO4a)m>{os#94SXK!t?n(BE(ofZ!OP=&Ub@pxJwSLeI2+vLC{S$JPQ$VbJyW4k- z%FO9tJ0S&ol0<=>S zYAZ+{S^XtgVLAhN0R)8K4m=roh2jf31T7jPdt6Uy%IT(U^xC@o^95qUdjKQ5;_Q!=vHP?RgLI9lJ>jzn*u?E|3?;vdw`W}{}A^XLqG`5Bb17;7iaD~m4exC;Y zA#}FkBo}>QSQ(6okvGMj{jx$LR&Mw6ke4%~>5G>Jn1oVrQm+_oDvpCZuJfmv*n@Y} z0};L~+hFsKl9cWe#CPZkW`6&prXqpCxuy>vj<~y7A!T zZH|M_-t6))$^=5Pwi{1hp%}6y&1|0)Ky-ikYB=~#8Q5%}}MBl65T^fVFUB`!&bM3i4pzJZ&dUZfNBUdlKH#Mz{+adkn10BEe(XVgI zA-}LT0le{{;KM~JaLyTfb_6n}O`C(}b1}*Kbi+c~ z2e?gY*LeUAE+cq6&m5~$&A=d+BTCtXdy(L}Dm4WnKVZ*wq91^rW{kP=dj|j+7jzHq z$c6>yrT(NCT%xO=+_1O`dF-B`*{ij6rQ~Eja9wLh-ZIJnRaz&afVEusmLm(wEgow( zb>I2@nV_mxw8XZmO=;;Y;Ev|&y;K@|c&v61tYNUiR_(Z*GEZj5TLKTT-#|H%2fmOu z`k}jt-X%mRnhq?IxVOJw7b1zXSP9t?vn-cq;!zK)`+Al~zxLay`j(TSkrVYu+^_;1 zm*aNg*ObClYi>}0C}BM?N;EHonkuG#XljT1TD!CYb}MTpFu9?F;`S+G=Vz2>M7ZHD zZ6_MtzuvtO+vSEKUCanJ_f*y# z15xB4S=UMtdlL4IY&gj}VIhjpEdYi5B4c#%<{S!@TzhK7ii&|~BiYg0uM60Qqxauy zIbFVLByIl@K46RP0QI{HZmY!KCBI)4sWfhk{L<>x-tUhmqqtG#VJ%8L0;ANU({J{P z1VWlZq#t1GZ_YA^+vs(oOCRg2oxC2c2b<$eiYGh6w)Pc?H<>zQ3<0A>dXe#WAC%*Y zIc@Twd?pCaD|^KZq>In^?H@0Z8FuNZx%uwWi6ssyR4pwt|#pzw0xCgMNX)aE#{_05`iO`-4|s;1xlQAOzbA_gn6CB8fgOo+wyeC!SV5 zJJFtK(3U3U1rcF)bB>L7n||sLa8O7i<_Xb;xU^c$2Q$w!l&?C7k9DD3P{ZE|X!lI@ zFm+3`3Gt{cZW(b?7XV@h{Ra%7#R@1~g{%@HyiO@p40V&*>GjLc&G zU}0Yw1c|MmxlmGy$1!_X@MmR(HMsJ8=dLo;{T-l?=24Bbr?5`KIz*0gomY17nJ0*A z)WAd7%0T2!Ah!b1o836Gw$H}JruFPF#KEf}59gcyLa}q}bH^A9Imo$9sm#Jn(r^9M z<;M6{tyYkD9qy z8M_Kfs$yhpT#7KjFL4K5{;os;R`u$f>E5&(j)~h(nhxHK>c=e!2j-bi|7TsIi!QrE zW4QCKxh=**laZwtl}B&Svu(*tfao&({hWbhUcFvN|HInV;JdT8aa|jc0!KA;db~kw z5O4hTiSMOtm&XyuMI3OMSVb8arhFNPAX(WX68YzQiVjA{o`#S}vf}e; zs}RtD$2=jD3~il0oKv@(F%W7C%#w}>O{|Bz*bd->G8Z!6KRyM?{B@7O09_q8f86-^ z-Ka7oSKC2jJSYdpPr7cjPjddi#mYy%(U72+f&sUuAR=E_#rs?LNjnb&j9oU9pPJF(S5o~i_&lBm>-6r zn0}AK{>m}6^8SM-^nU<>YC(4?iv0|(8tvD{VKIQ`@*DRkV-pjhz&KpR&%eJo!j|X= z?p;J%$DV?XYhxkOoxv_LGw(I!7Z!0pb7mADw+48Saro7S*9ZfRWKXgl@Y~ ztnu6(()BoYY#k4?R4T-g8X(Fv&K4R#G;8bJd?^?1uyd&bi)tY6DbgZl|0+in|w_IYk?HZ zq(R9oQhD0G)~#{R=%syrCMN^k;3n&&mBGtupraO1ZOzH4S96}g>z(W!p*35g)*GT@0_4=Fyrv9tcI zt8%im(XoN_z#XvMA z$MR_xD+>xs!48>i$0LqU+m;nATpsekt0`H%dh4-QaaRYB=eDya#-Q5w(} zL{{%}j|VoqST10!jK<`2@PbNN8V#JI2F%n;?bBM6|bD;B(%=r|jEFtZi- z1e@O-xr7p>fvD;toO@epH_B2TdHzUWTTUnrw4_i=5zjbWFQXEbGn{Ge#lSRL9We$b z=K9IVOOVjsuNb9h2rQ996`TEXj(TVCSbslS(8lWoB_yVs|CuC=n%|9T_`g=*hxozE zq26dtI$WUt!%7h$%+>u+?{uI%+p3|(HoIO8JZIyb;Gv+a*VuQqkR-f0rlT}=2qNto z$LcIa$b_i2-X2zQYbf%X?6_FHdK`S)C>ZqPyP|TWTmWcM0n@6!belxq@#m?Tht0Kg z+kmlB^OXm3?h9N$M>{qxT6lu21gV#%FW-x$Ejze(s8*_l_2CifOZ=7#!iFhlNYAO{ zzUdHFBn%4e=%a?DEw4Nv$r+fwF(0{PH}%mK_sy}XD3JtDYjjWhJuTI17G&%?uM;E? ztzN~+p)@E+jqK3@ZBL+A4wSK}#7n7q`2dxbsN6gXw!n5Cd|*xpQgbf{=q{Qcf~xve z%45L`tJj5+g;mb0$m$4#Q=xA7QiKxj$kQ;gZiS(&vrhU5H(C0Z#5S$BK_MBSE}5d7 zj;fYn_>M}~6i91B2EqNgqIFXHH(9F)7hC)MA@F{487~j1!fbRghFoYuxgLZDI>uIk z?4gZYyvO^K3I{_`dKxPFQlu1C4+7uZ?agUm86J5bx2;7Q(sg{RT@4-Q5l^d0Na5-} z@>k+P+~tAbjy~wVK72OL<%O6~%Qn~oD5H}g1HCM$o@EJlQoN0V0PJ6=95Y}|#Z}U2 zcqwT)c8Nb5xh#m0wF42i3rdK9K9`UH9}MNnZ}y#qd~|4U*QpS6qXHJ)Rw_Da^|t%L z`@BD0{chdaiP#IdYs}^aJlcIH9$ZU+bKU{>3Q{c^(1J&n?FX287$rh+Pe_=JFGxBdP9;jG9+8UF(KqqQqr0#{O2e9FY3{Uq6q3~^udv{ zh9DW(rm#I5H$pYX?Tcb;#4q6rsex=5S4<6*q&j6N zodU;+Lkc2NWHg#QsLnow!V^1!qlXfXWyqK!cEr=b|9lZqf}DLCJMRKYLF{Jm+B-au zz@zL)+9=6S>hf98yuZA;%VW0xyBq&r&HfO@RASXF!P8wOs1dOe0ynvt$|K5v-4uU3BGD=Xr4R2^9MRE2*gm$IV1Am*U zB@yZgS=g9Z2uG82oc>jMNf~|UzbVsaTgXZ4?x(W(U%hjpj>SaLa!bqQykO>zKw~9| z3;bY@q1wL)O+wTlzddAFL&&Q(ztFKD^sd#JQYZa34NH96ug_@gM#%af_>PlU+M~#= zUz$oW!X^7fF?7o865K|?Wqrv_XjO$WD0|wP|Ii)r8-bQ~hCm=h#j=Cap~Y>Xdip;O ziHdrR6)tB~9Ja!PppWc-+W5tH5ofstbdBAE`xJRYoC$3@x&7onI~og{jvIytZJ*ov zU^ltDmAK`E7yh<+@h6ehHGqXO_$13k7AWiqdajGh6D0K^(QNS20MskTIh4~4+4EA&|&Q-%)5~Pye%bA#r4Gs76d_CQbSx>aA|wUGf2NN3{nyFj|Ay0k6za>i zPqRKyUaGeKqH>@(4TJ;mTeSs)o<yXkrBEjsI_Yp3qKz2=@El^wA2+1S=Lx zmrq{4|Mo=ct^nb5!)&L8@x7p5H1rFn?LSS4xKKoEhH-*NJyoKt-1^V0s=r#e#r{-# zDXO&pvvwyqH@#pL(T{Z7qBRv-`WdZ3Eg~e zYYhzzXOV5_gLP`u(PWqy-4NJw&FiCt!q7_g>@AR5fNZo-&!243BQ2C^&^kPI^e-KX z15(JnM!xS=>nEomS^qs)Vo3qlHYVw#$cMk?{Wmqq%gW6Rh-W=K@hD}N!LzcKNDK}DPM<$zO*eT=$m zs9gUmDOxfnroH>X9%<_6OEj=aa}ewo`3(G9{74ZX5r$5((_9;1%~fff7MiUCFb)jC zzlB*KO6V_UDX>>tYgTeOh|d2y9{#$cAYixpu_gzFUQ>Hiu8;h5|E`B6dJ})b{Hzp*n|b$MK*1>5{)+Fqk4$eha_VB z^l*arDXQQ(GWcSTCo!jj*yhF9@(k zXsk?Jlne9UDR}ga(m!ZoCFGp{U@lyW_;6wqlYe!Dji#mUfj@1|CO-M|1J$KQk;K#2V~cu}r3P{UBgt-@U^hT=8S-QO^k^YgD_pWOJ>IB;?wuw^Q@B0rTK z`o#M*87ke*uAnF6O?jgFS`^7M2pL&XUbRdcuPE z;C5qU(wlwpPSkDfD+*aT#Mjx07T)}oD@_kNN$aBk!xGuQOJn`UYR+PN@F&mfy@}=) z#g8ESzmtn%(U)vB?p-@o-^6Nf($?dyv}3>f>$R6OPR8RDtYn16H4pVCCVn6c7*{}> zPN@7RXU4cboqdM$amIp$rb~+S@~-{ddgz zD=&mB$lKB4KiAGXW%zwy|CI=$VQw5>edw$IJm=gy9|_K4aY9)-2*HmLb4(IIi;gY} zeb!Q^(&c7@cf;W~xqH#-)SaLft5Udp0gohsc|K|PgoWj^`RbK98AE&D={hcoHB9R= z6e5zOB4dN@z_NvJ9LQTwB7M}Q~3I4Xbdp>(x<1h7qe8Y%}0)rFHmH;qdi*^vM zAk)$rn%%)6!7>6e>xT=k@0$r*0aE!D_apd|-fY9tr`(}4CRYjnfqhSh-gzkYKG!ui zjfiz?H;Og(oaKu818d01M48*AiADH1t|}^NSxaENWP>qUYT@)D!@*4^)uGQX4u8>B z5C3fZsyB_0?fgz-_Di<~dxV;}`Um$VC2g!Ya%Q0llj!U`2*^Wb7@9>O&41~=8hIZB zso|=AREHn>MedmCS!=2FD{tI5UTfq;aneo*S{|bKZ>%c6uvq1tEVVuRLSGImW?aQQ zUCt~>Xx_+6D6%KHBhR6NA|oapFfpUd9H}?dNiwy6Ls_oLVvnXzi8d@r7w|sJO*E!Q z{vg>k!j2*#Bj&qx^$E=%5fKqrN6v_dMNj)3{H{*1VRVN!;fT%O5C%eqY(7|G0SD3E zhe~|iCTvVLJ0NDRsGS_%dSp$5Y0Z9|A@#6Qbb0e~}HkqyLH>rfN6&8ptMOdf6ie{Jh9rCR3*JRLKBd{j61?vbgk%YfPQiTJx|mh$IUb2EO80#=%yN`mU2Ke_!3mK)^r3$m zWW4lM=jFx@&Z~D$Jh^RxHKANK3@(a>Tfp#n$fY5+MOZVmt&B9*yR8kat+mv{`DD7z z?lMa5VO|ESM&Sivqaj{4Zd1U2TCtv$?P0NN_k=U)+TY%qYClmYf3!ftUCMb;U zBX1v~xSjO(tIWZCU%H%FrB;g0HFl)0`4KqVtG9izONMB&DDMttnSx6!ok80R!19N+ zD|JppmU#id8hRv-ibi75R$-#x+#1rqLAY1<0|R7;>x^w=3g+wSS}|Q_Z)0selTjWx zworEi4VOuzMkLbs-f-?!Dw_=B=<>K!wzF#@5|YhqhT=;X1G|xyW)F@XIcc5xoQrs0 z*hUWf`(O4830Fo=vas^>9yB2|2#_94Cwn8HfvlD4P5Awqo@wf?Q*d{TH?l@3L;$8r zb({PF2n+BKs% z1eXb|5n(B>b6&<7f6x%8{97z^aKpELQBrP9ZTNPS8V;UG$-(@uf3m}-6IPq3Y*w0; z#xMRiRtu2NWai2$ArmhghIc_v)S%L*jAn5AkQ{tH|FHiyv-IK+;N}3oW@uQ|XU-Fj zmS1*lmMcME$2g@aD;CIeV7i}ynfdSuecoB60ebQ75j8d4=kpIO#$_rdoq03P*Tq-qH?fi;|9JWA_*1u=b?H#d`)oU4z zc0!#f|E?U}J&QQL7&)qwgu&pP(aH@z%vp%Ypa>})xvA`QY=bdeP9Y_7I}>;phKkRPyQ71YC=vUa{Jo=+dq8^+1A+`kw=(FH}2Ol&Akth`)K5}g}G9w-2Fo(^x$ z%6Q}I*skL2$SpsaWs+pUBlyh$0@yhJymhOb%=)kDlH~9aD?zn@;eqjjEqUvGZv*ia zP`pd9@%4LgLy!NcS~EO+-sjT2tz=GSbP4{RtTG5cfK7%6-L-i}x|@93I-? z8h-H(3-W+*r86dT^kGor>?!(V=x=*iolnEcB$^)6veVKZX)mo962 z_yh2xgB3(71^sgZ+jYLTc$tec*|T6L8TTXT?9PIH(T+DMM`yo|N<1YL^VEOs^=^Es z;`Z~TN7Jng#2C65b*y-K+xUhYJsZPOUmr)P8t!kDwPpM_`v_mgaZm@gPjp&DhiORm zY!Qa274LLTrek~Y+u?QB*!rISH3G*LS3*6#sP4E>2jD*pg($f@Hvv3ma17F}~_jGhet=^1Y4vY@C*b zJWSMol8>`GtLThS#PDIwR_DyujmHUaqjg%;jpU>-!u10*#dVv`j@5H9TV4gt^8(4dObm{+>Z`$ z1}WCX!eTO9KC@_Z>Yhe9XY`1`!~b$CQw z?_@_eS)16&a7+Y!|56xkyWSwjv~ox~Yq0p-wMo{Divbb>VmsH^5pI`ZP$3yOoV)b(1p zp+CJkR*c6Ua70N0HinCxhkj_LQ|64bF{MNeFN=do{N*DWO~N03 z9Du?Ueg^2msJynAm-+*%MtgzsrVnbKIYqT}M}2LF?y29;#Q3X=`y_TfWjS@{9L2X_ zx%4>p3dqTP`YgDeLIh%U`TGQI00Wy<-TFBVw`QsJQth^wCy*3|%AMEZo#{>zPvu3) zd-yj$|AIN=7XVk4UP)=OHoek-)kk%~gL3dJSwbhjB*8ViMY)wxfUp7qu1X1v0Oq%$j3U8Mwk1CJ9B=W$~UUKq?IQ z+KTGAyclCB90Y)@L|q%%P;ei(@0u{7fwdns6$kO0+AF4(1D+i})sDquO+JO$x(G%V z%q>A{kmkrlxRR|~UfYJ2U60xzGZ7j^vzUFgzE#`?eUVTaC+Aw$|L)<)iQNdi8sXw( z$x{|~rSebNLTS!WcmlXVFx`FHrzjD=^#~B*SwoNy z=+p(#(XoUg;8)_aKeh;qLr22-d8x^LxaYJ>@5PYGMAQVSLLa>~^EO_hL=h*+=_hdD zqu;(J<}N^B>V~Lgm>mJL`gU5HxQFb_Ifus>!5sk@AHInJJ<(GX03&TVSMUmP~|8dZCie2In1ULuYs6hxNMi^MVcO_uWo zWjy{M4|VfA+sub|GuqDQ)Iev$k+)}8eIOyYFPzxO;baIL4C`- zlIVtm1UdJmdjdtzgoell2k1aRXdMFvMgwKgBo{9Sb*)+)3(yCcWvI#+Y{14$YNm>N ztVpOJYgXV^HBsV`G8Q0{;8eDVD3x7ze9L)(;%cxclwaA2S)8by!63bSVuP=(1F z0I6p(1B)0+(sqc25(8fnAieGtOh;x2^ggh+-PoNBP5nY<(7tH}M6w-YO%^%=8)cvs z6ZFDX!MVDN%GXUSGG6E@h)6+wc|&a3PQqw$E>ucn2}9~Spp=P`&F?Tkm~O#W@3-+f zNKgl&!@PuOR{T^EBdv;zDMA)2mQui94hun47z8)7dwet|c zcr3gMCq^r=;Ea4p44|o)JNtD(5@mw|0Fnq+5nD~tM(b{|N1dl(F!$i&X1_fv&zfM?@o#De{t#V zNqd@}m$x_p2GKvTWOl#_b@OyUtJCToZD;iJzrPT7RXBkP@C!yz_cZjE=Mp-rAw)h6 z{W%v=Pr|I`(F}tN^U%_}<>LS2?7Rc1e%r_YaZp6EiHtH*b|Smept2>atn5NM*(*-d z)*xg?B@!ZgRz^c8$tFiRGL!7}yKW-&JkR&{eZK!49Ot~>_xrxDeZ8&>mkZ{pQ{K>> zQfCyVf@JffqgZ6Dt=4DVuIR$_hrg;>6YhhM@o61E3qL?JO7F=L_O zTim|r+rwqV?sA_bOWF6U-!2=@%k<5epJ>z@QhiE7KnSzEB(d1r@t?q`1pA@Khb)# zpp3Yx()yjWGW_I!Scm>{u;&(I3Xz6h_hu|9Wo6u`iZJoUAsR~5w3XUtw2&O8cozT* z{&IWban)O)`%04D9q=VDOc#Gdib0RW%LyLEm>fRF2*e?*E3E(hH z=U|HTd3gV|>0p9J^ywQ*m2vwJ$Uw0>;(&(E-=W)cwi0(SP3=`{1`G% zDuGqg<`z9d0%y7tGMq|x(+dG!MR2=aP2s%OTfUvu#!M;dF?YI4n_blOyr8+ovuW2) zQ!|M3Azm0YZs%J>>q&7+WkxE zZ9_WdlRDgE1aEHD3SGoW8?XXK);<@%HfrvVGj%q;hwY&Jeu+wi0ugZxfR%d)4#xC5 z$BPW8p|gi#VssKfS(%HsMWV*8vX~g0pGas#-Jna1XPucCoO7<3oK1a@oz}Fvb})d4 z;r#!v9&K+KZ2xLsWxbYu%%|T~rin_>V(J_uC#VShanT1OI+j4uTXj9oHsI#RS6em| z2oeAj!MuX%Ne~(_EWOJYX|yN3XdrF-2xAdyC`ARfkVZIPD_#RA9O>gj2i`L48S1UJt+LU5VLBNV-t^)EP&hSjZaCqSd^sH1#pAt1(hbETRh-m zF1~l!ieIK~0=%LJ4u)vsV_9|J3wgVLf4=c0oPIV$sO5*LOR8cB?(9^&7qM4*X+-_~3s(6QWPP;B>MaHQb2QDz_+m8SgI zVI}QOxS;5T3^+2iv-5A#;1`hf|c@^`GZzr?z zqctb;Mmn~~QA1ry3r}Z@g^Z0f@U#N;CqaW1>UTpoBe+D=CZChJ7HnG&d;;Q0Lu>0+ zf=GhzY-7TUp6gtkAgmbf0AumiR0P{N57*4m*Iomkv>pT?l#k4Zjf&s#wX-V_5~Y_2 zzP)zEtHu)c?Iw!VSS8eSjmg#iYE`=ZqyvT0kp;FX>X(sYdlo!@^@VAnm4x|6%?dRj zdLdg^k;(2X6PPpZiKh3u0N|mp0D5WoJ7DJ0QjF?@SWLaeQM=-4Ft}(Ckl6sha~I?& zs<%|4Mt_75R*2MTDl}I!47m1m1Tkz8;(1wd-!Z*76G-%d|J*Yt0*&?26YmV7bDhlh zvMYMKzkBHcl%SwKR{P_Y-qy(Yksiu=`2y|14mmI-Vu)`LUjQLhg8ELZxY|GdZMS)r z6lTmz2L{4X29B{PR}Z$;TCPu~!VYW5$Ci3Rl}+R`52SFGZM(BOP_RVeoSGhlKSy^J zgC26lAk1yw=NS9!W7a-ucLvV+7f%9~tGL);Qr@wvBzrhQs+wbfu(1cBrA&e4vVEk3 zl|iU?Buspl_(kq6#8Q?WOlLqaA6kZz-5g#w7SdejR0N+eWvWUZcZ~AdkG2Pvv%JjI#;BCZ zR+j{~7P4GdgP#~dUa8>+j-2?`L5+C&|6k6IcXe9u}K@7xcBuPo5|N%!$%V~8Ia5Q=~DV1NKAmeC%s3xmA{(|_C{48P$ePb za_Jq(@?|n9U||~(-Xz*|_u>?6flcDChaSe9+kH+*dmI2WcWl2E%kt-PK%aNdE1odw z2d@7JNxngC(n!mv6`q?w-UXaZGijuAUVB9F+98n2X=oFF@`f$Pbux%_3%g#zmr4{W zQkQDwMJ?rpmBmr>vdHQI#?4pyqtM*kz3fFzk30b_T{sJtr<}-B0uLLDs|ny4H$6Uk zyzcJY!l~ zz2e|P|KsJP-QF91YsrmkDxZYTMWA-o#!>lp0KcyXXsNr?MNV<{pL54G zBrFWs^g!e*D3Vk*6ug8R5%N-r&-=Rf0!`sO>c&4rBg2cF!XALgP&yIo;<|4wjNaB% zj8>HmDt>{e(}iD3!1{KnkR!9MKVIf4w)pjkNcSx8pM|~W+Pi7QJw`whi*(CmN{&2= zijab|G2aamr`n zuf_RAU>ex9>27@?o6Qgo-Djiwc&)sX8+hQqP~fY&@OKP+#p=LvfM@%Oq!k9Qg)=m) z8CQ_H!R;%LlGiKfi<ALKQ&I_)9pYIYrkY#c%nEsK1Ejv;bJx3q`nK2N4f_((n~0 z5weRck#o&*%4NV3rBTcMU&W zNmN7OYyOxo^qVXSGkN&Am?s0|=sCe$-afKn77#l!$kFbBmi>z&_x6^Z8Y`@_=qSMT z_>t1Q;=6^YA=@(+(DZ}|-rd!4d#Q*aU*{`d8Pv&|A0&W*pgJ;Ch!74y+T*F5sESkT z6-k7yf46fx>t2izd>bb`6E+d`&Pl@T;I)&y^5R#TWX-ID7r(0W`-LHOlz;tq$0B|& z+2I3;${1X8dHTIx4L4wr4W4NO8klFsTu}?q;tr~@&9^m|>3y6)LUEz>f#?W7i`yX~ zHrtC;u+gL1d&KN)YJg_(#Wgaf`$==TVSrt!Y^`YJ{mhw^c;DVSABC$kEQp+iMyU`@ zt(NAN4X;BT+GFuvBj0rO4g8C>m_Ie;bR^gu|5ikxxzat?HTA~T)G9*vpxT=tIjzMZ zoBeNxE!_doeHCGqm8Li@yxOkhV#qW$!}v)vK~W(VSXTE=T(UjAG;%?$Ljl~OLux1F z5n-gnW4tIPu+H#x+EX3A*8w}@oR9k-i+bwYL+3!~fU|3#`49#X$Zm706)znqq7rX? zI@h+AqW|9@A8gI=SJ~Vh?kFdwk_r7Tg2xVE#G}(7LI7aM_k#0|7sq2t-+bMKtb&Xg zhJ@+EBSzD`5O)$x-)*?~TJz$q);z@4KsAqu^%y;jpuzsdyO^b1M>iN6m}YEqOF}~} zyoxF%m5Sp7_psnL6BB$dMsqHmn*}oN)Myaf(l%hVQl`x4=*r2A0W0I(Fg9xckwq8p zBWQrpcSIqJbteRD=l83=|0#-buCU%m#A)Mm1Wr1_>A~w8l{5&hgN0V{UgphF`gFI| z-try2RPV!8EcIO9^vYGY;}p^)1J z1vCl7wYkzLg?v9!I32RgjBn$Uj-`Id%icGcgG2NUw-XXF;v*V`HJo0Sbqs=lr1{v; z)Wk%ni+pP2UYXnByR>k%sqjLFuDF{v;m8v=>R`&JAc4>H4FR0-b-HN2lX>t23__|e zaRiL#TRsPCsk+P(m=^E?taj<8w5js3^5=Ya43gX)te(KcMU3_DuAh~)`xl3qR{**Z zo?n+OxY4mb2#+_%M=`npydFIfLo^HMh~kf%Gy0`VA(XzjnipNUrK$)luc`Ej_37Ah zC`mCas!}hl5sa~zc83w9Ks6%)m2(XyqVU-l^jzb+%?8X^(aE2q^;Ix(Y#WMyh60%` z@LUk(EktEi@+p?n9r)1c%S}99JY5yXzj2RAkHULf1mWqJ5t|GtK8j*jW7%KE5RXja z>E5pM??kzizT2zv$`gnyXIdt}#3;#apo356HtA6ztLSB9 z+0O^xQ#E~dqs-vF6Gn)}y-X9lPylqp2oCipH$IGN}bH)6PJjf z+dn-vy$Evjyjy~89`ftDhNt6eETEOT2h`N?$cI6BaCg36=9*8`kNbs-6FW+hzv`E) zF7m(8KmByC7EfJMc=yih^w+i1j$UXf;Hg9kxSg^fG?i_SX+;46Rl=Jhj}XaE6f=~@ zGtDy#g2&p5zrUawciiQr092n_auY7ytZr%@K=TANo}wv`&wcoR#l zv&w{M>kJBeDs50CT(xL$M54th)p#Baw|Y(!SG@GIQL`RQSu_<1R2QQjON0fz?N7n8 zuO7o8VE>^KVX8bACGCO6>3{V_iASlkL`?OymRtw>ILIxzoUFe8se|fX07F9f7wIp;{ERs`*FMCQKv|5duQ5l`f+1W&sHA=RgkPz`!wjqTdMsGZrKuO)i?4sgQNynW$?0wh^rN;2!&-097@ii<@@0@wWFxEwE# zc#5e!Clsshw@2Mz?|$7S{6O{T=z)zK;jKL|7H?OYFFcW;0rM)zT@zCK3&7$H8rYyi zH%yR|iV|NL{C13r;%|<{zi%v*4AZ(`{w_d$y}H5oG5H6WLfVp#lojeNU+0ZnE12s- z+*h<`x$Pm)*OQ)8w+XkiFx|KhB`ZeSJ?n6r4UgG(a-g7QZ5*w|k0y|mQPJO9d>nf` zYB=0#hs~#f2b-03rs3-gvUgpilOk1Qr9hIBLj=OYYnniFFLYWA0}PdLxxwwh;{hp6 zQFD;?wClTzGze{XbZvFX8#LX{$oajJhh%Fc8benAG`1Xe)sGojFE*WiTE#5*{$$ZC zzyLk1ExeCNum=#*1A65y2goHqZ0h1eRZQD07yUztw zJt$W|TZ0J0s{9EdY?8YNC$-MmRKmOin=S^ot3k(3iF*i+#OJ@0YQF+AEmHNn3l4Q5 z7;-4sU+2MzzlMO_;cdcV)Pw{CxZVav8&e3a+cA0AU@yU{?rPjGC^H81s*y99O-j3h z5I?m+rw+2dPQl0JHubs11C`ysUZOmsV@-i zS>%a6KCTFKYNcM3M=1Q#9(837rit`*bx(I&d1sEx)hua%c5GhG$|0=8bm-UoVkk+% ze!yJ%?W_C;<-3x{Vb|lHb9^B=bU}D6OuZbN8sIxW`z_@<@ZkYb2zbXs+U;h7ijeuU zp%I5CFrinvCZT4jR#PVi7U&L{tohN9Y*N6lV&` zlq0VbLjH9_Y`1l&*j4y0-f5G;r9QZ`d)to6PM+jr_6F9`R?9rmQHc@ zeHgO~sOr@N~__UfGA5;P}#1$+7>Xk_Lf8YnU~#jesvR^8~o5_8LYaXIhx z1x#xGsiWkpQ#x#gVKN@7K8C1vw4AxQiXEkYo)ktI#&j;7WIl~1hCwLIy;YIa0mhk1 zN;t;Bp@WcW+Z&amK}%DgA@)^Ql425pGe+?WrN-P9m1#K{65xhQe^Cv;eUz1!_Vsvx z1Bz@U5@$x27DsEv&3E)DvpXAjG!p+XQ*_mM*43m{*6xdg~DFM><`Iv17U7{SvoZ7Ze{_izPI zzh7iBHYeW3ejYq+PEDm68^!Tx^ij9{b6l?mJHP_2$;7{_6$dCQ9oerY=jP@z=|QW9 zmKzDfI%j%a6Mh6$|4No_g8=Pq`f*2LA!2?ZKQ{3K9&FbHD>>hk!x)3snBDgCZ}iJ< zwT?sR@J)Kyv0Es~A<+&g!O^Qo1LQp6j6f!!Kd4{HW=L{yPD02}YajvivNRfi-nikBcq1We#Yj!kH=M+ zntZ?TaP3M9VlpgNuAT)^D-$0WT5!suBloG8NA{!SO_-1!X6q}^myh*IH#ZEEt~^{h zLRRIj0Kf$12wFreSYB_eDh0(YsD@_oUuw@~I{-obYf0j3PvY8P?vX$#UWR?|@83}| zOT;A1br4m$*lw4bAJl(MbJ>1+K)?L1%nJzOv6;ZrPRc{5Q_v_65nejRA&(L!rjLl| zd50FiuliCBC188<<+{MHVMpQnz)@2u5<{7d)<$2%>@zI>S`{~eN;FUa=2=wXv8VClL4W4 z#UL*?a*nTFyze^KMQH%SMGh4tZXYQ^0S-}t2}LxkbjE&_%B=gD?bM<#ZX2ZV^z%5!deDR>#-M5>pfsX$+ zE#qV-gj>pJiS=yX!K{3hMq>&j%ol(vzR}7o*sBqSi!6gYtSqxc7#eU1fYTlGBW~qX zD1>Gm0ydDUtY?@gTf?U{4Rs100Y;GTMZ!xCJ>^128 zIx;TmJM%URfV(a%s`0%dK34<0aYvrRM$i1BaM{7%PDHX=M^iyJEtN34#rreqc77i{ z??VS_qU>3XH>JIVIIxL9gdlKho6z9wI%DFJf#pr5gWhE*N_}x6F{9UgY+;w=Q8i`Z z2z!_iu+O^76=pbCeX4oGddkRm{w>XeTPhaisCKGyDU^^Aj;bh7eIyE>zW~JlRt*?% zP3y)TY8U3iVMV@ookUo+5&lqKD+O$;HY#{SuLCZVIj_=Y{Gf}z7OF!^$<67F^ggt} z969`A{-!Q)N@SWZ$DFT4P*r(jxGK%6*Eq>jPuU@)Z> zN`D2-TIp8Cu^@MVSrWo!{d|e)UsiB+IT# z)XPiALvhhqUJ{Sp^$$rJYalO4I_Ml&C(uEj{7ab)Hy{4$@lDD?x{PA$$F>WLX1!Nt zpBTdCqevSH{T6mM4UjP0ew*DFaLg3(rS)|Di@#SHZ&4kdZt-b^Dj^m$G2}cT%87)a z;>u3g;GORl6l=%|=Q+M7HG%(mN2U${*ay|L&@5;txrv4PrFl*3^5YRG(wF(A5D8Nu zu$UecZ7EXZ&$il3f17viLS0ejiB2dJW<3XUW^d$DnJ+4c7w+YEuI5-&4&4^reZtuX zRb)h|u`_HaX1BOtT6q6WLCk42kzmST@ne!pT_fVzbx*rVHg2N@P-3i?qWF99$EK%^ z)y$0{YP#w1p^mDYM;8t#b(Bg}=O#vZ1Re_n;w;yNVs1{rmG&U*ib@I4@NS&1cjMf}@&h}ZSIsH)i_8vR!DgY94m$F#q9glyJeQ_9_|QSwu0tWlJf z$IH$8u1Nbz*3@$iB51D2F3EBc{*P60Q$GgNa2&+tVHd%|{E5|;Em7ZD7-V`y0$@~j z)QOX44x*?A3`z;`qzkUwo1Q8YYfT~NN zIDUL7$8G2L3n#1yS(@~Bu=K76-qXF4?zX214qT#?l?}yJM`&vYvyb>C9mNDw1zx6l z!%vy`Dv3Ktg_cfBi!NMA?SxjiI{8fjIkN20w~_hx4s{Ovg0JLL&#PM{`}WR z)!LyDL5DZ?Yeqx$o1C zG90jbchOUzvzsDKV^K}r-D_CysTVjdbL-R+%;-2lj|bnf{=nQ!QFEz?(hDnj1*e9H zQwG~R_QSZw6y!jh`SInou>EPK6&YgYkI`G}nf>Loyb=AAO$v+RhKb{5W6p){119pX#p3ryH7gI#wthPr8g%%H``Iqg zSMhaFcEA{5+d468wdhgrWfJ(M1PnTtpT|OmCxrCua2iMUe9`jcpo~QB@Yi|o=Ts(Q z;p#fPV`vVZIs_z)iXbG@i0ozOSKF`O@2|PRmi<>N0jn;F+<(3;X!L;`EXSJxK-pd( z_)|*$ilLk!n_sEcm*vg^A4NZ&hUM6araqq30XQbzk8{*bdyid1nByWyOEtoAxdZh9 znkV8fu>=_1Y?%PpNp7LWcm9ay+f!Y)c0`Yz>Ymjrg0OBQj_nZO zW@>F7Lg?{XTl&QBBMWwQA{EAUeYXlat>LJlV&z@=xz8*=#KmGjSlP7zVeX@lRs=F=Y;EIa|eN2p7jeVDU-mGP07LIzFjHIxg0yWh)^y$$*p8|Gi zlmBWZ-!G|2`#Fg;WF^EmgH z_$mCC2TX+zat$Z0>mY^#cY`8{@P9NEeqY17=d!k1NNCuiu3BM_x%Dl{*!`RQ*V5>} z?2`X^o#1;aHo#J`)6PTHEPfA_KLU)eeG$C)|Nj5Fqsyoc1(WYXqZZd4!UihL?CLXH zy{mPSb@j`zGk>u0D=5&B{HOjQ8HKY>MH$6j7F0+%&Lp({cK^X+DEfD-e!{Qo{txQ~ z_SeD=SbfvbXVSlS!k6C@FIFGrzuF<##Cgn)^=GX@0GfohkvkU;Ig-3zJqqaL{+BWq zUHM)XI8hxnYn5VnbBg}I+qC}kEvW|NS;+ zW%w)`qukXlZq|6eC;z9<#Bx#m^toWpwasGtx-EgkdKt?<|J|m-7zF?7=_OAoGUc{{}+*cM>*DC-5QMWm?y6y2Mv?xJ$ z7ly#y1y}9C;Usg>pQ>Ew$ZjQh^5=d0sZ+6ZwXqp~%iT)r9?|kXY&eZSdN`P@NXMY;gf0#M&5wq%MpeWAF zUZW2PxS81EI2HugxX4JmrY^9)hzvj4E9wbvK7zf!_9ZJX{yN9Yhw?ui_e3$cP%5WK z&f&jh4!(<_foJte{5slypFi~OKaXkEvUq5|3}?yZf*dc_>@Y@Z{bK&>e=J|^fBs+< zG&%C;bpyZOx3_^MYs0S#T6OvUHwUu_<(FgHCY3%@lIZ;YwB_UU-z*mT&dnecrTnzl zs!_BKllc5!ZWF%)1enkZ?SZd~1ML5YdxDE!yLG%2><4>^M}4aTVwkq!|FTY?X>#C% z*Mw$3+G*XUhlBF}H!+vb)9<(S(;@ADf!ledw>(@2d*c7R^4B<_Pv%}s>t8J$!5My~ zAo>$YkyEFhYX$SB&giK}gUmSo#!<_w)-J`aK7=Or;@vgH@rvPJN1du{URi)VQ$(o2iP=Oz64|Qfymf-7;~1IS1I+Tf~;N4^qEcL ze0BE(dbI9LU6-b~f{ks|2G5S3=wlKvbtzkQckzL)r(xqsd6gc?v;sj`qowd49pe#S zOBgre?`=AfX_1@IEFL#iXfo*)eKADTE4_D`7$L2H&GVvR`L<JvW7wnSoZ=k)5k z2j-;uc*cb8D1B39JrH)3yDmohdQ#=g39oaynL#{l_z+6x1Kf4J0=T+rk8ON)U)@9K ziEiNrJ2Rc{1-ZT_#dy>x)&;fE6V=0|9SPon^z9SaDVKZoT+&>&ZvTKa(f$L|L^hjY3hcv-R>||7PJVVnrY5g?#4pnXQ;tR+89|~Y_BTezQ z#kn2`EHu~O+!Wk3iHnEjz^Mn@oeqCLcvFGF{UCQ;y+CerO;o6p)IhTQ)4W}nLoEJI z0(B_@xN}u5Vk$-(lc`IUPSM(`bJvv$;NqL&y~H{A>Rubf3qQ#{_avLrvi`F4{xrV2 z$bxf90pFxkk}9RFoM<)0$q7cmP7*2;@*&@(uUi;~n=3zTF6E{rYUfsZ=ql6@WLY1u z%o=oW{Fe|Wvf&b^p!9!oQT)T2K83B~X$&U(PFm6kbH8KZ1KhWxLZ9z^Dx}hL=|fLE zo&WgGx(5O{lPVczzK0gvIzpq-bpuCJ$p{^R#gp3aXUm#8WW8Hp#trEAiNcjpQ(akXGv_t#am zIf?ZpLonM|BoP~HhvNvQZ+>2|L3x*%K#`gsmW7-kOP64*ZC(^qoF|AOYvW7gSf{tH z!5kdiQ6oJ_R_c@eT#-X3$PxHGF1-YbEs}o>pyql@a&zuu^V_92+^n>#J@PukCLWtY zM(_^8tKk-_JXkN&CuQi&HJVR3P3Rs)KS zIu6k#gW(^C&3!xfWv;Buj=I|dxRDdLS$e(Cek}>IGYcP(6wA2$#NLJjbBM_w_ECX| zo@#A=n+Ax9G@^U#s0Uvc)fvRxcF{-bK1HwkAhdD2BTbVjr8lB*;7O-^ZvhNTbAEmn&UE7~f-J zaZ#XMzdL`-(D>93#pbu(TsoqSSsAObfcq_Noy|i}GZeO*P3bk-`lgTxo+a*FwWQb^ zt-O4oaDQd-uTL+~sI&`@67l`G&K7UD>z50PBNG(I56)9JSEbPGLGD|0kD=R%?SUv} zRPDw|J}p`N^h-x-v%u#&#@NOWQSRB0ayXSE>lQ}~{rE7ad~#_Q`xnld!n}|14B{Nb z*IIQ?4EAl{gIz_mp|)fjnAz$eupmfFRE^ya4?OyCYyzy*CJ-Fpt&5nJ5K}3uOd(w150mB?-rHDe0q#gt}P)2B#1_Xr5a+Z{|=nA+8czti78! z)*H~)U#U1s{zI|+$AEGXS385PcE#ECy0t$Lo<)XOJ0)Hj zGq9q_@i#Xe-a`O7f)3pK(RSoVSF!j%=N1>Z--K5a_uHjHjooU`t>bE@TFYXpMs}I9 z5|<&|`dkhE%CohWk!Tm2k6Wbq#Pv3azoBfg8hb}tKdI6=`A+X$<_8zly}Y%oC$^n? z7UGE+ruB!FznRY$Ua)x_PvJ$ffPfI*lG-Phhmga(Q3%7n>GsEuV|H@*`W z=CtSHr;z$qft4k1ohX)bbW~yj(dQ+c9%~xb{dP06{sbE<@rT*qNoXuvqI~va=9BO4 z9joRYqan5%Eho1i6eSCquVH-?Z(vAo(Nk^3YcOy((BN6;=}3Fb#a@{WH_=!IlBj8$ z|D!^EIABl93VF3vcJ z{_@`5jv#uXh5ch%*3Ee7CBjM8<_c-i7-Lf7IptmoCf@|{0?~{hI1Ji{o9ryU8p*r5 z20G=uFB+iY*YX>wo?&i&F>Ms;BnGvL8d3vAgQt0-7axV$85%XhV&**Rl@F|Mmd+&1 z2htNy#yV-=b+FqCVJ5=1!0}xwv8QnHN&$8T;nwXnh3w7Q(=&W3IWEFHw8W$HG`w}u z)@-eICb7xyKII2vi^&K^L3XE&NPC^!vh2)a-{LfC3Oh3tZI{P|99N-THA|N_X<`ae zPCt8gX%K&|b2>;c$-8JtyUo8_Q!mm;s<00Q-c4>LI#F8& zey}e+Cz6x-p3dKidqZB8%+2P@1G&N*HXjMVJ9!MI@`&BV;7s%~@$WV`S9@?0y<(@5 zTTSOi9Pk6BrX5RF&L)nJo2#cgTpVf{j_*5(!3hUD?WucLz!mHynJJoa-DCIHCqci~ zDEVlwcR>AnXD)6=R660$;l8*_1;nFr-peSqJ#F!|At%f-6R}+; zY0djc8^@hLPGn*PnWrQBF>f5U&eSP6#3|m71J7Fx=bUdr?fW z296nD*p7_r8}f*+!;?iatZ?c<^o<_cx|w!kIfr6J$7Js2$ID_mnf+leNbl=qW9G}; zl40Sod*KvIb5TJb7%k~n>`e43y)!pe5^=+lVs)J*WknnMQXla&G-EFPm5X@*qd}!V zXZ@9l*g;YG`2lMsBj3aE*=?5z=6Jc^5lT7}Drm@91ntg56rA9nkCw|M_w(W_VSBwv{XRyOVC+V_$ zmw#^9f-zt5KpYtT@iCV-TLwNq4}v$OxQP*;K~d?!PIOFut|opXwRNUDLZj_i4f$PT zBB8^d#Bpr%0>`L72W|hY3bW?2f{`k0pNLD%IprM<_Z(u3S@=esDU5THcZju2h>egN zZ#nX{;h9g$SSxdlMCR${TzMuJC3=55!}$(+zRYgiNb#MoufvN)LOr(4l?e121$1An zEWDj>#DPx&(`Fm-LTsalPv{i3gyqMbR30s95{^~Dx9SGH5f!@vBP(b~-lqM&Z#djy zMHq2+o(;IZi5(lxSAPy;CA*bh66|8WI};mQBYtC-iqxC4my}DmvfqMof#Q-bmpaLe z=^8z<%T$%QqKa?FGkiASXh!ruNv1VdP0v3L5zh#U-*HONyhsgm*?3E@$@aN;0iAiP zP`=Pp$-TrPy*{4(KUxAm9W<&*`qJ5~B!qKh8NC{%_ePYqMmE$#>I1CQf^V!~t5qK* zqakPkM|!N4e^?6bBn`-A=TR-IiX2(24@maflvS~<79i>1|byo$-ccWaF#`+-=}v1gU` zr5+e7rbi}o*<)36JY73mXK8BfvX77v+-q?4t~(W3dW)nzns>D-^-+eafPx&$(U5w? zTFV*0ImY=~M54PGgDW8vRE<3zw)%S4wPWZ@k=|qTA|VWp!!A6LVU(Ow)=K8X3~sMn z^%%(d(s|(~dV%X$5W~(e!AWZoi({=s)KHh{;rVj1A+slM>> z>uubllyorQ5DOdrAx8YhH>${b)teQ1#pcxi)OvM)%&;iRCnH2zZFH!{g^7EO)NdE$NYn`cmVRk9slu4f)9EPYBBX2gk)a#SE92 zyz_>edQjKVJR0%`-Q;Y>ZwZRrU2+Q}I$x%H#|7G#raJ;H;^C=sA4&YFJ7(hVg||<{ zEjWor>WZ(!nm`miV~hFmpu~w^r$$Dz9XzYwn|!J_j7)zL`^e zSqNq?&-b@54yO2d3+qNkpi1p{>r&HZf)+b*_vdx=OA<^R$|eFUjlovE;^aD^ZqN9N zz48oqqcSH0*#?Trf67bnv15vCSxM1dw2!_iB_D_p$3C%^ybbO%*^dq9`$`k`#6%1G zVY_g(a$V#UN-UJlO59NDM!eq^r?e+*uHxj)_tBxfw6AqrOI7pg0;6``IBxXzVW0N_ z)h-{B%r0jC`hF)Kh}}qauQ?u8yz|DsS2A5k#1m7!O0!bH zlg<_K@-`a0w!^mbBJ(TuimjX*&R;u-Q|%fH8Z_TFN>F}4>}2e3_Nl5rHfE9A?y(yPx0eJ% zN={IqAB|{hoA%KzNjW>HhGbO*0|pfc{7%0l?n72_A8yy#%%7_xP{np*#%kJF(+OMh zl3zHckhSsCj(#1&K6Kwa2xrT;6A9m5_NjqV{N2Ibl=CpLMHoFJjqY z;IskXq8U3li}}GIDVSb)EopSxD37`t)KmPtfu(k>V}BJrRW@+%+?16*;o<|S@2q}O za71!-A5zlV9^mfUH@28++$5Q)mn_}bI%w`4Uo|GIK{h;;nnyvcY1VCF)9euCG->I@b|>4TB@N8+)ARLR-Bn(@yH4@Z6o0>0CH`i^%_;C6Yvf5VniQ2@{G+o| zm2B|n1a6`6QUgVD(6Fc$XZZW*qkDt8kJkYnH9BjgH|%M$?8{s`jy)BNYu3h)Np1SF zd2i5x*qi5baeNG9ZNggFljhtuC5~rb2G&;zvV>F>; z%J6BjklW~ZsJ?f6gxuNpbp62?{XnyqpDmm zK0@!zHu~Wf9mSWc(NTbh@Y}cMXf$w;k!*P z=4#U8TxAqDN^e2e89ZSckXa*9L9s0sGG$?+8pWN>U1w!V_tn{zHB z&h5!y-{No(b}M=I<%FEkoITY>SE5dSv!H(Vjx%#;%>Dt#AT9UzD6IF>pt*_~A?4og zf`?X9>{ETMvXDxn77^3ERQLI)Lbh^OX~)OS<&ph2N4{;qAEc}-HJT*ea}S%z4mikB zT{e`SI8OdhGa>$=qrlB5R?5H`yVO6D(-7sLwS5o?Gt;%RX;wGdasb^~t%AFbuJJ5P zeZr?k<737BcfIk8sC723$juo1;@YwkqvNz;Ke4oX_DXWY>1u38Nv~mlqH{bplAI7= zky{+>g>9}pd9zOKx)bk~k9nNU&)Pg1$=Y}uSl;bbY4{fOnTpY}ix}iph~dB*4(ouqkBJ=E#? z?eO-;jf@!P*zQw3x7qJRU_E@{0E?>w3z>=_?dU!GOQ8vNUW4at_L~ygnolWwWXDu7 zMh&ReD1WPH75-z*Rx(bm2*I<{C3h_Ywk*V+P}v(uY}ljz&I9w|n$qGR>p5da zCab$SNeTbvFu%iY|C(d>j$W@W~wqF~k~O@sV!cTP|CneXSm8wH)MB_Y*(Y zPiELb)$bJq4>10EpxoPCYUr&NVk>iKN`N7fU}cS%h$xJ zwt5v#8}8n;^)CU-Npcf*BR?#mmF!*f-*t@*8YB*M{Yid!HRH;>$7S@d*k85k|D!-_ z@A|pr#4%}w^Cz6|rDJgK9)}2b`D%kQ4$Ht!x)*HR*4cY{^eZ##2g#=$j2uBCUg}Pe zhdaA@s<7gtTDHq%X){sYcyo7Th)YC!-K-J!$k*)Gtv(t%mYGbp*Zrhc_ZJeJ4TxaQ zaj8iN-$T*z8_R?(r?4!yT8J)g+E1QqDpYwau@TdXk8PbYO_}PhAGX2Ki$}!Gx?sr5Fv}~NF8d|UXVOOalKS}6cz!t}jrOlp zkKV!Kly?xyX&Is*%bxP!v3&#OLez&USU9OkpKOjf??{@&PZ5mezW6Y3&n13)sAj=u zQ~3YljsLQLJkhX`Fpe7+oR0tt=eJd4Yh00^o`23t9rKbd3Q{ZKK4e!w$#7-t;#`iqy%HcSfMXRUlNGoTnaFeC>E+MDdxzVa zF}HLno*k$d{n_UCh!RsOl<2sAWx$T-1^E`U?P$=t^@87)EV2m!7b;W!efj_f{c#BnG{{cK|0o(6(4IO zPXs>_XV*s$G(u$wHna=A$9wERvz%cP#}ASB&ly$jkrQkl3tXi+NL-Dbz$Y4DL3yLc zhei2E*X|C^VEj$1;%> z@zXY!w8d4;i6etGgTlV!*r#rV&&q5JWU?Zk@3ved3`xH8F_{a=Jqk?rv;3{Hb0)Rz z%En$~Kg#Uw(-Ls)mmf1>V6sbTZ1=a#mn?Cj6#dI1J$`R0sG0!wxr&DU8;g~GfK?;> znGW}y@L+w1gNj_t=y={0%|tl+wb;6$xu-Lq?m!|fnmKH|wl}0L z&=z9-#||@-#^ilNS|T*->~i$JNci)XsvlaisIDQN}5{RR#1(L~nKb2ljC zw_ofrV4q6g1tSA@-m?iy6eDJ5ocfMd$q;8Q=zLm#67 zYYsDhk9SCUm`4%((9dU`1<-&>7?hOMf=*JfNioC;kB~9D~4@0_%7oaSRQ6@U9e=8~5ZUt2=<1a)D&@ z-A#7uQ&1!L$uG_R!biWWXqz@{#I)A41^nFryF#yOzN|z z*rJ=>t*aiqK_~Wys&qwlRQZo4DT0l#RKK5|%FY`c0+ZRb`xGKY%t+|^wehcuHBtu+ zCl?I!F9p(3s@3sgKJK-KmR}kw%LE~DsH{dsflnyZ>Slz_TFHU4BesVm;5pBD(32cZ z0duz9oA4u4mfc>hQ`S>nCq@*keR3ARhL$d5jJqDTash)kjkCpT}9Uo8>ek`X3}Gi!ShU)7ktCbDxy3 z{*mDod@SR5$z2rkEaH7QcipKg@x=v;Cqk1d4sG|B{l6#i7 zziklOD`ANrnh=pY@A_(U+wy14>R~^F^9={*yHd`SyXe~voh{{7r|7xGw!u4v<~TVt zV)C{caStj^Gk*f<5eJuOItgBqhOq-3t1*e!S`uO9Nhm=bvGg?Evp-Ako*9~5=sPvi z-ciy=L4Bk`>i4!tx@u z8)FH>Fk@zZ&&Seom+$v}fB)QupN&!z{tzLfa7G8R>7b;SFPX?p1&@G#}Xo?EV|zP#uZyV_AcHyNTT*>9-$Cl)|BjW zS2G!4Xu0|Q`_b%K+rIzX>U;deQazRp9?Qag<0UuE>|bRWurBDERRhzdfStD7bJ^0p5l`obqLz zO*V<-b9lGQ8$pl#MPOJr&&cMG_zm!XL_;U2yd_7KzcV423vX&u@^b8-c5?l|qQPop zSU{uieSjhMlSBazXt;N)La|zork$9&o0ekc>Jft%>;=KF7<`eh!>YNPdG+X3wsWz5 z>_gw4fpa11us{D~+;aw3pmMT-SI9d-0q1Yp#)V^C(a|Dh4->VN%naYU0OkR(+6=RF%56MXZ|MPO!m#l?d* zfu`Lrj4`28X&dSG@m-tB{e6#@0~R@!uDJ90qn4A3OdET)wt^vs&e%GE86B8(=1_E&_Xb5i zMCV8(UwGNfG1M1^_39m0!y`egW}tRxP@)zvcihSwAI!x4^3&6dK7%a{ARj%3-gaU2 zazJmA08L1e=`1Z+R~u}Mf7U5Kl+`KPc{yJ-=HplL-BLAbf!L@v7}wZTwl*W_Jn%}T z_lXcTtfs57A{@NKNUYB@CWBtQ33!pJTkw+vpBzbL}(R-Q%e)ujVbpP#{0Hy^~sb*9BAU(yq zH|y_Ezkj>+2TZ^{hG@*6t}tdq89&;O&I1`Y`F?(g1#Mg}7+dw!a{_b=82Dba5q zyL=fkF7o#<8FjJ ze|V+`G|aGZchS9XkKtnd`Xfc?`vNxJaP1xbA`g#afC_KUohg(Dl_EbM{(ty==C|N;{x^;Lcl!ja2^`eHUJiV*@NIc(zxS6d{nIX?*fuJEx*)p7 zrNUyD`gM<|a&OkU95h`4C(1d}D!sParZ@K&w(r!1hO0P4YQ8v?n4!t|(>^>dzt8o3 zwHwR7xS(?62cKuQA)_0e9|GpsqV#T>8$a4)rDB7>@yjKj!Ty_LMya)v-ig85@ zuA28N?rgsV+WOWOu;2*E#<2(3Cz;MXr72Ya3<6ZJdrJpOwT)9Nn%y*33U z-AaJ;Hh8C|`$uu79y?;XvCr#=_mkVT{+>Tq9c_^WTB7Iv7eKYDJ#pm6k(8_Z^{1*q zXixt1{qG-(y8}eu-|;>1`yEpJTm0zntF_l(d3CpxjsU!Hi?bwulg1{>53>eW|K~rx zz{W+`t~e*qr}V#Io@kf8F|c=%w~GQQX2`{jCiBs1H`d00=qx zNu7Lq^QIfX^w@E$Z^%^Do+kDG{pcW>Is#;>Qch3uPZi7md`kcDMv8H#!Rg5kz0qEK z4s#;BY(DHafiW1)!7`r2wrBb{&5q- zgFUN7oKUqTsJc8#P7U4=hKY%rqzxZTj|yW66G7;W!SQH ze-?vR22`vlQ_T78&GWS4BAy?}1Q~`jKB0nK50J6>frR(>d+X)N{#?Ps70dc478JB@ z|335ehgwML`m_h&dh_wOZDpT_5LHvxqSU_JQI45A5a%XjBu?UetbPn#kX<%Go5 z_ym-GH?}}r_gA#uKK_%L^5F$HRQhhg(UYzWi{FO$tY5;vJPwG|&js77hqC^$V`V^X zv~U}*O{0Ytvs2V)ouB$m2>*q81@S}@c#_rK?)E=ZR{m#)2jG>EOa6<}Mj>n5BL?#S zZ<&6OF1xK<)An7~R^{?P?8t_hTfK|lH!ctI$Rp25tmDRc=M_2rpU-^3$fd4%!tM{_ zKkKsp-K_%=JWxR&y_!}}45X4lBS_^o#fJrL|IyJ{_i+B=AFhP}yA7az-}RP1E1`H{ zqnZD8!HmEO*893Sg#y0#=Q2r1xc=b^Nipz{?KNAxFE~Je+zgixPOVUUUxt?q4a7QcxrCRa56$?3{H{EM7n5 zEwy|{*j7*TDc~AD-~Ww6d8}L!d2x^Lqt-1|&tv4>9FbLG8_3|Ac^OA+^7`|S$@4Y6 z1kUv3KQMm^<|jZ5+ZMSq{)51`U5*zz3D{X@tous$L51|sSJv*h3{M>3VEuFyKT1~~ zyds#j+w3*}>Svk^H>Izi`xG>WTU2#weO*)RP#)!{=lr)od);bYR`Y^9>BpBZ|MYE; zC;4R)$jol++v*?xMMk`uA-AAQxq=3XDv+@E8!*tuA^i_#<2=yL(pyfX{&Y_j#deG{ z{g3NZyaFM83m@@P;EUe@>~Bx`Zz16N9;|*$ksYW)$4#B0KkiG@rHWHOZ~b2ygg|@! z&0k#=SdfM|o82E!6L#g@^3*Y)8jmxJN(tg@UByucsjc3f!`D%k`~) z<^)56`CsI5W4FG4OcH3V9+jILbq1FuH_iSe;9!0K%3J`#IJkZdL$5@jgTGS((J#CD zlD2+V(T`OsKKxI&2c+5ndiwnG=CyA@1l0eoPXB%f)Q^ar&AzeM?;G1Ej<}(9)d3;v zxJMcT2&NP{7|(2^V*d7i8n8S+Wug|ocw1`qmEtrNH~d4R&rma-LuH(hLIg1VBQRlH zbH@b;A^xko0IlxW#uuEZ71D$N|ANrql&e}1qq7ZSb zURe&u~Ik@~B?@?!QlU{!ixVYEabpiEkIhK+*mG zwMbA}0W8Ru`*(u=R+u)Pzp9mfmgTk2e^=vP10a+=Tplg5rgXfff9?4Hwr*kZ5~%Uz z_q}}J&r4$6^fRUF@AUJ=Jy?77UdUVZuycdZ8W1M$+2}mCaYg@)C;=gXJ|+oOgM=hE zvS%1X>h#+v>noUP>U*>scmx~;OvjgzzB(INz&ELa+Dd%;m$g6s^Ckib^#gHkHt6(_ zD*xn<_t^4bete%)nUFjfHj?B<>PiL5tW^`LS}PL;?dX1f_+JI??|j}hB^}2LK|=5J zCzaYW^|e)1ZWP+%?(bXs+&i46dMcfmJgM&?i=FfnCQCYch3hHa`S&Y1VB!TvQze1EhT63t zGpbZ9<@nt&ftrtZJc^*LAnLmcK{zC{vaa#YZCuiH$X z^WtQL1jWg=6Ykl9ee1v8z;9gD>)>hA&kGi{Awmug$1!3?|6P5+x33x-r5B(bmtVVJ zSOm}I8=K^R1QHc_fv%J|H6JK&>tcn=iz(w&YCJ*^=fdMxn13M3|R_ZebB^eViQ>elz#t9gHx6L@wA)RS}Qp*Rb3IPJ@} zz{U}5TIoXD3S<0b4yu7o*}KE_X?2n#esQx zEl>l6OUVVa2Q487jqk?@eGS1RNjJLjO2d{A_xS~ps)38_| zhP1pHCk1m-)GsmB&;UdVaODnfs%fh_tK$l+3uQ}~92xYNRUS+3zhQGz{|w!0Q6dcr zLhSWGKq9+SZg>>6;RUW;{3*6^L)$@&gL&&zVe&}3L3kL_4W*CGDJ*~H*gAuTrA$SX zOdqn34#>=UJNv8=tw0@N6jNcIEU|VS|Kg2dCa@GKy#Twn_*l=$kej(t`>Uq#m#<37zB?fR92 z|5!nd_D}K89sm1EtLK`@hzW{1plU|~gO~B;fG^;^jq5p=94N>j)ftBA^tszLe#s;c zac`Td6M%b6#1ZUWA1GsqiFr%EGfgyj7 zfQ$9HQ(b1uWc=(QQ03#1n9vFNDjvUn#?WP9?% z`1G5Z*Nb0elyzGdC9S5MHZ#)Pabhi@V=+$$sX10t5nfD8CzJi3FzSeKFOB#Y))&8; ztqp@j^&ul4g7o!mvjoV}2xR4q`U`Ls&xqmQ4Z&KnJNqOyFY-n--H*&%? zA73a?QMuuQ)7WfmSZHtV`gJq6O1fP3y$T=Bi0eR@H4t22zJdA5bcvLKU~bk_uCV7q zYTh^jY27hBAv<#^@UVw{<;awNmeoaST#{pc`j0(xz;-v8dxgF@hd1M-#pKy`1`SNN zId1t?B+GQ+jeVP7e{{LS@WYnC25FgS`-)UyU%v;t)yAZLO*7P{yOnMm+ePC?ad4bG z7st$)A!nu|Gxby|QMf@tA$oS!qlKiY@QQhVEr+e-+1YYf@6|q|i%Le`_iqz+ZRe-L z+~k8TdqX#)1R3`_FU7!g%iYI5#NG(eIbm?)sUg8sm?8BvvSR)r(jc@gO~11?>ARB( zPEawGp=}*^^Euiy3nsjdMFkJO_H^;^-%@3wi;ONzDRHo9PudToyWl)DyWD0%K0L9& zXeP6Z#-287GB{DZG?+J84db#edzO~v*_rdq(h9M<`zL?f6uIh0dQERXfgs+App@m} zqSPBSnYc;|Wo7fjGq$H07Q0t?@?4*d>6RC<`o-@>`QAr_o+)g(qhjf^6zRBkmu@n) zr6Y9PNt7A#d4uR*8Ons3sD{1N>VB{}FU}fO+hLtFG4zJ+t)E{AWhgo-y7g=my?zo~ zv;|G1XfH*-3TsUnhw8K?ryetWm}>abEm8cn)!2# zyt&C4z}&WNez;7k_h*0bi`Q>V<3FMD;EXTZd%X>2RX#8<*qN)`@!Oab(uI&N#KIpr zW!{o!UeD%a()pY%n3tP8u8gaVl$A=c?R|C8z_(o!x{j;jSbH>U(1)XT@1tX6HPGqD ztlau8W+|Z($B&ee;9HLf>^%i(1>Bod$~*&N?BUtbud7d;u-exQd=L9Qg&YLqT_)v2*M@y*=!z7EWU zWvC0o1NNtu221Cq(|!STY5#g9eipp~=X14`G_fm>Jh*EkqQt(qjAuF#%b4!>?QLTH zS*@&MC!g5Ioo$V2R&L3TRKNY^vr^^FS?6yFUQ!9}n+x-)D=9X5S7+EZH$ABOlu1)A zdt~8Z&fuIyrUoHgB-N6Ia(#i)pPUF=xvBp(G&8~Z?htjx-3(*hm1p0N=#Q92H@dZK z-gfvYm(1`};@5$P$;x0-Sl)PAZcEqlyl^+=TjD(~is9M)qA#Dd2*3Mdjvw$nPGp=2LgD00Aj({sw@m1%)KmQ1lEd?Ta{8{VKws5`gT7n-=}L5U%!EwqfFFgv zLb0EeH4JH>ta#yDv=k!CZJP*c&*G#_EoqtPaFI!>SP0?k(RMkn8_>5$+X7>Yw5>d@ z3+tlpE!7gsTCP9Dme^{nd@zGO&7e#lOx*4?F9IenJfmI>!tB4c=U80DM5wT>n?cTP zLeGKR(4h2O9?-@?H?BF~dgTw*kzE+o+w)dsN9&7+Cy9`$JJflmvs92h9f{4zKr(S- zus=`~6kl)I^35B){EJsMb zCmbCS21d8)yT4_`H?wN0kgx;;^Qq0{Pn?fUxA8ZXFu1O9Lnjz{Hf5I=lnb=^v%t08 zjj+_Ke8*ki7?%Y{Of$W|KRIbw4Ij@uhi_ft#!wpUsmx}{XW3&z+2roQ^D#}CkmyU& z%UvD>sE+Lb+>DVH^6-0|bJcz$|^-9kQRmzMp@f2TA-%7^1gmL&Ee?UqbZx{ zo9SjyITD|3>p@FWNHUm7@!@kT=~h)VHX5;%HP50kKTT!gPWi=;zsajl zt-y1qcFw}B-8B9tF@`5Bxq?=d1ka-#2gZQa$+eLYuqt2NhR=xf+#mcv^j3ANprEMd z1zY2n%x@ajETt#Qp6|pq(A|OPU^|#&k)isGuYG*U%I%An`6tum&CZ8VxF=+rZtK_r z`sd`9hOyXKfzr9qT~60k(=1Qk;o0gbrZ7`V9QPGWdI(#t*$01JY}P1`D;<*;>!mk1 zNm}NnGqq(}Ti89gYYBp|Q5ps3hot4qU8`}HX__dRRwL-9AHR0MgplUEcAQ>)ERQZ! z9h<#Y<^0Mxq;KM7Ux;>GbKxU+muGd3PtVB=m%^PZS6`@niKLX-abzGv7@x%O6}XPf zz4{|A7L?y-jSo;Jy1MRCq9-P5uZf4~jrPl0A4?_mU?MFGT&!ZlMAG1D^#)h?y%bpW z3bGVzoFX}$rcXckFreVx82yBu?RHJlP+}bbbdjlp3b>yLT0Vbek;%5`VZ|3F0;JMZLQkEt90shRthpT<6K3dmeMHEoo<+ir7-WGF5fRvFz3bBbCgX zulJpL`mIL5EOA-+@U!V|v)D7%q+XnSrmME=7wQb0nbTIqFL`rsNxLClOe^Uc3y8z7 zYd!u#+yG*l6pdDVDACpI`6K*6`{GruSu!OnZQZL^Y^geZD7b)t9eywO2!Zx=F?4u2 zaY%qLEO##BvKRh@*Ujz2@*;OF;F>+hih0I_?sBlR85!g13BmVXbqj}&q1&oXJy3)( zov2sU>>;ZLv8Ik)XwLNATWva2_&9u%N$Z@+=F$3{hzcKhz9XHO<+o2Qd!hc{7x(Lx zJD;;^7qsF%D{jOU<>Xen4`YdO0qwKhU+BN|ZgE*PoR{S`$^XdtR*Y8c7ZA)S9|}`w6L2(G1yZ7uPFQBT8e*sAI~)QM=w?%fd&S!cXVJ-hw}m-m2&S2P%tdn+1D6gbAR zUskDyv`Y+Gda~U}xW;#XxZ6z8SzwjQPZ@khOQOE=Whch)>3lxll}zPw=@1SVt4G}i zpW`slN&hI-RrFgR+%jzbkF4>z2yNk^i$@iY@McMm?Qrd$Ui$n=pDJ5odp$eT*Jilj zd69PM&SR-Mj`SIs%`!$lircn?0XO!|@lK3T;Dar{3TK@dQ%@GK%Jnz|W^O%rg3k^p z9P2mP6(rS-b9K_Mp}g|#m?tj~2ElJ^ICHCiFtRl{fMeK)h#RW$jg-rmqTj=UFfW3u z*f-Myg&Q&N#SoirK1_6;>wRU{n9dh1Z~OU*d9%xyM88#Ki-SK~;s}TV^zYRQ;Rh<2 zfsnf2a~+T8)(AZ8W;ud)6}H9*CFWabmCzBgXit4PH^-7lREHtoQLEWO_T<{&!-2A* z@+RImTt*QO70mZe*dc~?shm>EGoq6B!SCMyh}p>V6Ec*^yy16DxLOYDO9Kk83bu7S zSBfJRhq!eEMv#VIe9xS|3^1bkrKObtLoq{L_=!*Hv3XR@;svT+v1zN{Zx74N8(8gl;##*R zZS!tXW~j5>ny$PQ#Cm=pJIB~OJNBfs;|pOh4^H&t_)@qcg^{fhot4p?9zzVl zU_8_B*vH=B3xwRw_Fl|wDnGb{nJA5%v3_V-_@Qv zl=xB7*YsINxnj}d&;pG1Z1P`Q$OcS?f`ZnlJW?NuU|Dj=k1yZ3_GbLzps(lbnRiNc z@t&=y!bFt|{`jt(@yDlI$f3*qa^<6aZn%|3cLC}GznChs=lFT^0rTWUXaG$Z7*>{; zUIhm1fWsnT=c7X%!l=aLe2qY7*O3`dsX@sIi7fnZ4HUxd3`!X#T#CvKigJo`0q0^mqjl?h8V9!UnZ7#UlSJKAN z({^|osWjQxl_ZRO!R9_9Y~CBRxcdYG@^~qWoykGZpF0`u`fDO4swy?n%~lO zG|Q7p&ie|CQ$*L@5>CPdIiF|7{KCcD1F)N^7*UQ-hRUyAZD9yXkK}%Tm2X_7z{>Nf z2xv;7>2$Z|_lE?>?D~MRWs@!k&Z*xn#)}=Bc$d*#;1A>=q`NJm^@GmvyObZ9fME1O z2S0SU#ALRw z`_Vyojejz+N+zG5rEMA-bQI(-`X=2-=O~5eP@;Uo=B}m%bKGjF5WA$|z;zpiR zo0$_HB*(@~yNn2HMadF$Gr6+dQ%)0f(^LXuoQ+pOFAxfRo{CI|nFg;|7g!fOS)IMB z7{};!HRF_1W!cB|s+6mj!cTqteVcY0f)1m=uM* zCLlCOs6Ql!vfhW0o+vp%4t_7m(f+*zBR#qQ);)XGaYJTv(<1#-vXpHr=5L)uM%r*>J#8Z%wQ z*>(Dn@jRN^PRy$l%jDx(RiKdZJ7bz#A2D6R%GBQDW(|1?nS8I6PK{k&+)Jn~o`-Ot@NPXtOCn?X)FkodhT&{(H8(q7uHM5Y&_UQI|l}nG?L3Ml5vBcd) zU*28}G7hm)(8!j&lKsUU)6egfc(y;Md`c^(FR_gMmefUb?FF-~r}htZ;Q77uy-EoN zawgWFo(IrtvkExmX2>uod9<>Y6D z3Aww`PUO+C-74&do$iqPYLpWoPX%6e#`9eQhL&cKivbZH$j9jA-18KD`$u|VUHVLQ zEo5z}3(QhUDm}D16joL025pMyo#}Zrnu4buZ-0-YJL!**56nZLsDXQnATG+kQH{`+ zfj^j0Uzh^dyixKY*wJZhifr{?cEl$qbzPc`VW4>vfJ*)$lWAqeNnzT#hUx2Wq4!b+6{CWPs%Oz7@vH#d2k z6H7ZIB0UnKqr;h{8Fe1g=jN-~8SCmxa-p`}cwBdL2-IBTvel;Mz0Nm|1hH_(rj@>T z52<~OcGZuQRJ8#(r&DQWzN%kLQisj-Z!u|3F0kak9Ep5BKzLD>3!Z}}l1hd+0MurFb^oU(S5GdX{khEiJo9Wu#sg#K>5OaHIUudWDHfq4L{2<@d)vRrXz3ejzzgE=w4~ zcQI-9XL-`Xoj;%H&ad%7N{=!*V;px*K2lU>RBKrRw2GF;2TxxuReAw9S##X$R(#zB zJ657tcioxS>p)2r8*iukP(fWr>8UE#8A+YbmrjsJrEp~J)Vp`*1jFf*X3I=mnZ0xS zGo9VvEZ2326j~Pjmd`D0T`DdQ;E7%B7A9|tIJ>2Oah%jaBtj1A&EJjrs!+Lf8eSEo z(hkYq{H=2ON%Wc5136YF9^L*7nc9Kklb;n%0O8S!LZn-<@9>3OgY*mqqcV}j4qnv4 zVqx+W&_8)Ys)C8hmeSU-t~LCjf>&tut-8s{jnRk~TqHg;-@#wZ)_59c_JTGin!$-| z`_CN-+Bc-&kQb9w1W--CiiALeeR=>}!<1=E#1Fs6e6c$YV&0ruRy!_$br31Y8!s}J z7hmILkt_Z7AFBIeK(D#d80u?M(!2uNh}!~LV zo3h)luN)=AugYeJqcf!4Oc74>uRerZ z2#&+&Zbe!tlv`QAtJ8R|oI4_7@bzBwyHUg?mB=TJSnCu-aom1jEyPwaW#_AtVqz3i z%v{uU03lGV5%InkW(p*wfBzuaeeaTTRgsI_Jb7Uv-0KQ&5|o8+}$w%ok(5^@?Bzxff=G5FbiYh zx)XzaUvqE@;hMCsgsbslMDv17%@Y>(Vp3ofkLILiBv3R53ZN{S)>@_EO{v>!qY1#6 z5{(T+8FREL8X!ak=ISTZ#Y)o5Wi7Z}Q}AAgO(#IuHE=lqy~c4j!slj>RCD4sM>wl*@$0t z+B_T?V{GI+X*bBx-;wp&kv~$h=Ug!3Y{L6(QpCcVoA>ONO;8~p&h0ccPk>K< zB6!OH#=O4b7^G$6l#Wa*^Qzh;~a4~L}omp)eUuj+JS!WYT zY>*HayIE3ReHR38z=PQ@#B!Gp!A_BDa|6Q=pvZe#AXtqy{N99PupHzo|Qx+Veb)p9f>m@tiJei05L?-NFe$o!h z+1u|_!E`}RkW1XBYBBr1G#MbLe&;%5-3OS=$E?w^C^z7@KH(_L?k)9gb?SMx8j9OC zUo@|$lE%`n>PlHrrU1&KAR|BJC)^S&MYJP0VM~JebR+i_E@M~JdmUT-#8Iv+ruk($ zNZo!HGblB?%|Jd#v`}_3%a0(+5kLwCGodxydkGO%>|;6$zTq0WJz4jb9okV#PG9L# zloG5u{4A*_5BEA*C+L!L9qMb0{s!}_$&FzsmQ-5HZU!c3fglopTWo0T50z_Cq@FRI zpnd$u9j}%kP|Ro;(^xy*Qo@|V`LN$;Q^AcgTNl^yO!OOfb+R?u)dsWpJ5Fn-4tBP7 zrXZih#9dmLKDDbb+Xue$^i%VqgaYA|ia})phy|=l&Yz1n@0%)WsKRj#s_v<8Kit{k zT-!x=YenGv`-)~h9=bc!_GGJdfekxg5c~>U*EZN$8v+aZT-AeW^cm{pyG+NG4r;F* zGNjLWoL#m&R>ujDMYM$o`>z|RHsG=aLuEQ$Q6pozHEkCaEEb|GJ~D=hex%zD`0{IN zJ{Du7OmaA?3zpLN;~xjkXsN1|f?SNSsvj>qXUDrRgajA&>3j7J4XB*X(db^U?-iV` zdW!AeTw~Ykak4eOvNLkV-XNth@CB829cLe1#eSpdo(mt7)iO7|`JRj8+m5M%IvrFL za=E)d=^~O&{;)iGK~B|r%wJ5i+k+Ty?$2I&VpwUNysO$Q7fnu9N=*^GtgvbCDybQSCGT%vT9*^`F)DJ?)-XsVBS3{>KQrq?}~R&ML!hNck`lSeQ0m{PbDm>iyf zX0vSdnE;iuy=uKv+On{s6k&CTg4^rl*_MlABDq?-&fgSF^wwOyNyg6fMFkWswGqj9 zq)Mb!4E>Kbok4v7{E_E1uqrT010Ii1_BvDL?|)Hz2}*1H>^6!1pMOqphzCojVnwWQU=I&HPD;}6>RV?|f3;x}8ZgnK}BccVOX^?3`v8qx?x9j?t zld!!nn|D_~>CS8BS=ge+3oyge59en15KdclQURAC3n247VXpkIMGNhCQy#k&11I3i zcKtgj9H-NA39&pL`vTx$4i+5t&gu1%-2Fz(o*z)ZoX)w6_}g@YRF zAY;Sa3m+s)oN=lBLN=*u39?3)+=K~C7MmS9UEVBqiXi2G`vYK~+=Wn(K#k!Q4plqZ zXm{H~?R>@JX1U}y4#0O8^DtMWb}4hIGBrxyQtZ8F_Q5Jwqf$ecN+azGcewjDp2OIH zQn6VhvY!SBOpCEAw-3qM7*D%KDhwSor|<@RG++ybC{51h`aI9_I4RPB;Va13`oHE>UDe>M(&HElYXJ!oI5$7~m;SH4ACLg^o+JNPwj`@es` z@8h|qWqNsait^L-(r@(Xr&CtWnGmqxGvL0+*mm54y9At@c*Ezhi74au!0{b~fM zm4>`f&VYLL_s^m_evNh@UotXppf-gePzbdLjLf}KgGDsjvY0BJnsFW{3v*KK$B#HKx3aO}~H!NO`GG_=D1wFBC`LChT4Ad=5Ii z4SU>tJIdinI_=ma5Z{^@FfCPH^fFp@dn(#X>h-E*BT%T=s?~9!y3) zqb;5lJG_|DmWd4KDj#da7wQ^ZT|Sj}T48a~elfW(5(*PS-Aa~84IEdyZ_Rs__cpzI zE?$Y9>B%als~_2eu5^WxfgwwSHA?(pfeAauX7pXUFQB`%)$T3*0cFa|S;rIacQ3ev zpaf^;t&1GMAoT{T?s2Y{1?3ox0_@&fVw|!b8@MhpqN2mf{#a1)tKli(m$NJQZr zm`I%p$Rz4DraRE;<)pGCcyHtqroDAKClL=J5Mgbp8D~66y;^c2;u5N_(lTUw+N*NS zl2zUxo?dL7`tTU#emAYmdU!MY8;bdeL#s$(0zbQ9hkYxj0;%}S>_VnBM)SlCtgT7u zaF~tkR0slzIBSa2!0AvXwGgfMK->_X;AS`=)#Umfn0tOa@%}?m$X^A` zr*FfoV{!-P&mwegpsA07@j2K#lkeRZ!Xu_U)2UVFvPs;49PoLXMHS5}(krJOpJ@|? zDTY%HaeA5fbJg_DvauG{ri;0b)Way}y3a3lqdm?=kQcp=Z*FBiJO75*IYZB$8;)Wx zoi^a@YJauNoX}4n6vWrs!Bch`lgWT&CMrGMWM99WoZx1K6-q}GI;uHKebwl5hE@!tyUx4jB~zaL)fIzBCngFGrvmrf~M=-4MU7UE!DZZVLe zpQ@UZNIgW)NS1smLWuR$DJdEtw#mxzSLL6G`9*T-mS7TlIZZzF0-kgB5`m&q75%r|e@%nN^X9qZ|# z|FuFM-zY`psahBm{*vzeIn8j1R9Wriawg8R|7LBQuvq zjJ1|ONv*_cXs{OczD%SRU|M?7D+UqE<*)H>f^_6G`@`Ga%bgF98iL$J@;=qRPLuRc znR=L%(AKo`(2&dYhmI)#FsZNW+TyAW*!ni_B)ds>os@erDKn+03n)1%cWf~2R@b(c zNM>0fPVz!3j&5MD?nnE7Jl>hZ?jG?otXI zBw=K^9RQDx!^Wx`^Q+4URd^70KVy?~wpP~|^Ju7>DV>vavgQ6D7M?BJKy$Vij{6JdO^ZC4WrwbDUC*$ z<76PT2NZhA9##Be1My206k2=3vwORG1!QNUN>U+al$8f+%WR5$W5*J@&HJOSJ{80C(mMla2zfZv-sl%I`o~bPJ@LdlJnAXC|Loek$3NKq{Bg za9*yn3;V2_4rqw=06)Na01Am8UmaP(&wv$nql)>%?0MaludM+rD2I{@JIi$5z$(I~ zBpP1446}T9C3pE{0gB3@6jdq_;bY>4{`>)F(Voynv!@)2F2qib)q}7~B08&8XLIdo zUhuW)#$W~&1-)gFAU$~Z+#8jFW#>v=2ra{$f>N{!VB}@dddDG+C713`uvO* zACKpN2wg1NVW|YS-;6ufcn^--(?J_EFlU|2?Y_W-SLb%uFp1OR6VAs3_IMur`1yG3 zg4&U$ao0lpl8BN7#`&ra-x02bHne&*b_|9)$laejci{oxjJ*)0lWp*?SYgkgxGhAzrSOzLcqyzzcO^=sS(Xj~-~>&M@_zO|YpZbMu;bW~pA&ULWk)+q#buW-OzZ zK}hEa=I8*m25`>8(c2;n7x#Wt*F0RqekxCPnxAPj8A}`ZV2_gs*D1e4s0A~EV?D-* zL;^Qju!`DO=F}6!2AjKFSJLZRy)rB1E%CLMpDcakL1QPI?xr-jxtIV20InqvcP_4b|uZ3SYLJPPa zblFw(@luIivbrFBw`@p3E*dS`<=)r-xm8|jA@v-op??wm)+WB3d4$^Y+CkPs-tx0& zqlfhP<%@ByF;!w^nDTu8j zGk(-h@N~dIn1WN;#j)sc9@P_013tB?ZZl;A{V(aTX;t`Lmw1&pKy(a~I`GyH_+*FQ zwgp;a9H)j@7sLpFU6(m|xjtwHjWxg8|DL`aduA3igmj1eQB`SOy_(b1S6QrWKi*8@?`bv+jC&p>OfuMO zu`3^GI(FS`en+rU(_M<>6EB?jS8~BwnC5IkluDa#LKr|dN`kUTfMy)bRYuPg65Gq4 z$DstYP=J%~T0vOy zMeKTRJ@yG?v2o0rba(PVd%z*bTq)Y{ARyqfpXv3)Me)tPEq(PC$_lKa{kpqd4P@pt z8a0yXGkN>qm`4P=6S~_&G>m3fwoUxjWe+$G6BzBiB>Ut~&gcEa%pZ|%rBa><9`B<* z?3Xm~`1D*HFA}?C+qD2Q%(W@2FMR$q=Jdh>o->wqm;CtwR^6tzr|9dfZz%@iT#SUp zQcqrdHFA%`?Oxv$V9CL7_VYbrDR(ecx0rbG;u-DYO$r&lf}CF`_L1Jyh35^-hzCvq zeidNCsN^`PhXtiWor1jHZNKo_je^|BCv)L57tmbKN!7&qM$XI2FD8aJBM~nG#Jc?Y z@dmCFW5DO6C9$P34MG%(>zIi@K-1=<7) zG3PHa_O*|tl7M%FB59ACdp zV0bHxWvHA7iff+;3)Mcu!5QR_$05L7JC>qI3St$!bVns`abU$d=ZPS(9ya&Ur@K}3 zKuNu1elABc?-lFj7iLybjhYv(cKs1vb^_7cvQosU&+-23Kx?KZqICSCNPcHPXxAK| zlRg2}!p+rTT^&siLC&$yzEvAd*3!4F;eXwHb{|J(`Fw*t-K{SeqTGEN4Vx8nKBso; zLxK*SBezDt{Nb*#QJooA-PFiyZ4f;m8NviWEe9+{hrZkxig`t2g7?>~@LFH%>w)B%!}Mp6Lyu5B za(0xH9;3NZk*ZHFm{mD-So3hn3U0pTJqkg2;VeB>egD;gqJ>;0tjut|n9M-dnX#bU zZM~vm#Y(n=ah5vAo+-xPp0tUy)b~9VBeTc*7=0-h3tjm%x zEP6f;l3RZpwB z{H)ZJOT}J1p1u@C9Il~1FX$T(a)?yU(KImOI1adak)q2j1NaE*See1L44Iiap)QNh zO@PjmhRC~HHHX36y_mP33Pn}P#r?8^RbQGQ3n7b^l`?Sb8ao~P%@aKUO?)4DCHT_%QWBQDY?hP(=IXkqwa+yqRkM48 z8)bx1m^#t(U5@xb&yZ=4N{*Jwhukqb{SLav2hrudiI0>uV%K>(U?eoUZ(gbEk14ks z5CzlLO&SE@#S6VDrPC#52_SRQQ)@J?Lt=;Pt~9p?aM>@YoazBch53Ah^(Ayy|4bN- z5dH8Pi<7aU7RWKkF7efb)`cZxqUWNa^k7IKA#8$YVC*fnr`f)@^mgm!(IFh#6pkA z&+k^J36|k`Pvf9q3i6oG*hEg*>7s|ru?gCBVWXn{wWYUT0n$s=D-28fmt1Bve8e}v zfr&fw(a=g|CfCAJ6g$Jn9=(D)=d6yP%ci748>w*YbSJ*ZsjO&jOS3h%+dT|Gc5xD8 zu|b0o2X@>IkM_Lnmt5pIb<0{kw$q{=N|k70iwEE3fh>5BW281n;_4=eaWBDy#IEOb zI_B5$G*ck=o4>fIK*5@9PVdh!A2Xxc)%MM30zN3FHC*&LQnx+8ua?@{jEj`q-#*>W zNn9qj!DFHf$py^J&Ma1rl?M*Qrl&TH^=|%&} zmT*{}nP11l_II}sRg2H!mOE}xv9qT=JWy(@A$-PXd3#bcewZ06TE#9}HN!DvHh#GhPQIpsmL`&Pj zH{I57rt+1MFy`v#^)X9Twhr+Q>fuQj$6^rC^&Y(wBGxtO)`_+~i_4pTzgrl62Bm+f z5T}{1jf(8MJr-@(tzY(5)amV>;~e~MIuUyEbJmrad8a?Zm>RiORN3=2PGA?i^1g&< zweTu)hH{;q`$+sKUY!6)^13Bz(?myZ>Yc9P*9+c_wz>_kdsdJ%e)*Bo`4-3uH?)ju z&z`9UHK@Y!E57iAR;M%E(%q%}Ykkhv+O2?p4l?&3W?*xIE;}8tZ8I4aEf1D!d|M6E z^f1y@T32}vq8h5q5>?ukA;i%iPQL9o9C0AdlhB9`;W>McN?vHK_gOgPt%ilN@f74T zF{^+MFu=^67+>qH)@>E1ouY$w%M-ft=(Fqz@K5DOJ-#NWAKzTgYa>{0BX8ZUQEmN9 zSAG!V+|r~ABe&IR`6_jFZdcC(~A)b`5wRO3n2xp)b^MxjZmgip%weNrj2rh{eNX4X!LJx#)p6^W~@F ztd5;#E$GXzT5zM=TNw1J2oK_oVA%0bKJ^zE8UPfT92Bw?6+RWpqdE(@>c9oCI3zIi zxZ57*Gd03L2>KI4st zrPxIKFYDCJpl5^Ct`4#H&j*F|X|+09FEuaY(<=M5fIvMFESskJnd7m24tGXsq$!7O z^hatQ(ibBN+tca2tO_w#-=tc-Hum>Lw5PN0R%gqTIwxL!nP)n4!g0~L3i9%2Vwa=U zmJ4;UBGfv6q`@-J6L0KdaBXli7ZO!bCm`XweKVWo^G^Hu6-tN13rdBGwnFn^{GUV5?k+{5tspg+%Gor_O!$^pt_>U-)r zgNHts#VIM?Em7)Qxy7<8wPIhy&;lD(J7XyYT?**OYAaTD+k5Yrw=R?VLN%jjeUgwF z*}YmZF^02!fr*9ggX(yR8TvKX54m(?WkIBT{YlD$L#;}OsG4G)R`N7?`t@ZGD~H}m z3-{*t0DqT2pvn~)XjWQr-ifK4Y->&5h;J16gk1fMGr2ga>#g^?_)iuX?Aq1V&|wPK zbSE}%ip)fo$<)(_1-E_PC3)I(WeKAlX6SC?x1|ch7^r*URA)yzfnGsd8a#*8@00{c z#4d*~u{N^P&$}mT`>CRZp2tF6YGPWa+A}TX^l~wp@$C|%{@6AJ;^p`%4g&94hY@Sf zT$^$&)<`-5n*>5+`N2`%7k1suXmB<6Nr6=T0b4h9^jB~DnaI8ns2VA6qM+NSlzPYV z3wvq&ORLz`XdJZR-0`^IgEUMt%OjSQ^e67xifE+vb>b5?8%8To$!5BSyaz?f4X6N) zRe5G~isUwSEyzMtW|kEXF49ihHFgE9t?=CiM%oXuW; z{ITP=PfmOE4gteO}-JZF!$cLM6aCW-*hb|{8KM`e|m** z@)h11o)`sa+n-=J;6}VMRrbSx(A}IxXg&!OR)&Po^~ayk51`{qWcEofO4V8P@VDf8 zoP219iMzk^DOJTP%ojhtC0vinqEHA(uzk)srPcQvXHW5`fGE=^MU8vNWjq}ndn-RW zgnD~;T;{`i#oufz1(RD0<@;+K7Jl_twTd=B4*5NlC~xP{YfqQp3)oyu6Iyh!ydvXb z5K0bHORlLM@@buFN<()*uG|)yUX<)reWs$-l(uZK@Mu1mT_~!c4PnW&&0%$OrY*s= zo>(a`)3(##YWxnE-@cB={y1zUY|c37?xuDW1jqxINSAGC6*{Uo*Bz)8SStgA)Bcq4 zXbivn9OgKrFeu~b(h48-J2cdLHCx^3I3fPd-O=UE?9LVa_hmp8U}lNY(*ou}n&Kp* zKcIus4wrJ^419zkCnqV}H$aJivn*p|9z-?ZAX{0W7IfGIy%(aa6#-K3Sv~RuwS$iS zu~X)s@Q^ZEe2aRp zBxUQJH5X)N!J&q(iR(`vtmkLkTYzKpH}WkJA`7&=jDJT3OXq@aN%_X{Ant6x{LU&I z?}eHByvNn;6Dgxg-hxjYL#Z;}gfW5qhv9UsLSU9%HR4~$s>odUM{vv_5$tlm% z`tVQ0zx8tX9EIFFq*D_qL$2>;8+Uu(Axs0@f&KEWzG{E}K3Y!ADAAb=AyV0meJJbI z4fr}N(C?;=^#oRO9{2btnkh|{xK%{L-18JJ>VQPpFUe+bm9`240lPXTE9EY21X$=k>(I`D0^`h*Za+ny`XxdNA z2bv8pP(2Zu*GC7Lj;+H*3(8nPrI`Gud4ZR?2o0F2{a31}~@J3!^b9H8{jxp>~vO$HJeaorTPEw@H` zN9@?({w9yd0k<2O^+Zf}*w&)#uRvMw^m*$*hkTQEKLJ1F7T+nfMM*~I_K&pZ!za?@ zWOBSg46Tg1mqVGobffdeSCs*^T6PSP%-Aa)zFta_{~{fA?zB!*?IW)MpW8ESiz4nz zHr%B5QZ?uA!~&C@gZ>aT&qs`9;kaWT)BPNq`lpdf`(J`(w|Xb&k+mup6{rF_6JK95D)f-on zBW}b=ry_GC_&2`0(2lJ!3FYKEPC)>6F6ILIp=!JVH7EjV21l^fX&I_`+ViXe=-%(HAX)n8|FrT!<)0}s&(^o~rh?m008e^hV z$M1De`n52(>_uZy*|D%Bq;0^A-<XI`u{iYKdpbeXHw%Fc&&pPl7J{ zOSm}=y%?o0j`euj+eaJ8=0mEJpUZ|C+EI^cG6JSN#;~&+iSxhBYgwE{%@rhmPC~sF znrtHbtR2m7d#KyGT4Sr0evTD^rrsMSrz5VgJpOW&hc>Xq?Nh}y>Bh-%TyizR-0mEX ziDOSze`hHcBH5x5#Q5BWNfJ0o%Yeg|BPBuTg~v@=@yDEp{CT~nS9S-3hnHE4*=KK_ zKg$%QA~anK6)~J6C3)b(0g|?LGzw2Z3*XWjjOca@^lj**=Sb~I3^M=Txdlq6h=*fN z`^=$m;*bPO$&fkp7cpGIHC0cWV6m^fJlR2hg)h3_`x{k+HW|CrE{hYok z*Pmp%!F7FRmRBa@xra|`xSs5NDX3t`RP}Y>xw9`>WiI!HK+>xZ|C}Avys8}fkg%^( z10XXTSHLbKERq)+N|QAg({o5(byz#0W=o~QX5j)VZ`3Gc-` z0NbLLFF6Gt)mjMI8_BY7-UpjZdVpTfDn3y5wPHT6@z)99U8M7EUH-dRnm?R z@`050IkVjd3M*)xqA7c%&o%iwq3m$%}SEelWfh{g6el$wVJx9WnJXfIZ>Y#p>txsAuzT;NfHHcj-^Py^;Pd~@Z zcwNyEZAhjN9u@6qP_Uzk`MAL=g;sc%kE8SqVY;CT4I}atLCK_UVtlhYuAr$QgK1vN~h#|UyeO^XO;TNvnuvB4x>ot8hkUxIy*cau-DH}Rv!vysrU;0q9H>oc{J)aO0^ zdo)XZgSknivbuj>Zg4Iy5sFuCmU_{Dwv03!wM(j{(!zprrdKV?S%dSv{P^(gs)J|h zX)%dx(Gp0qw=SYK2el)KBufaJ?;zVNJ-(-o+}ZFbE9};LX%76hR?=uKjui%cp|*=n zNYOz|$dt6=SB#qLdkxvs>!?qHi~r=bYqzOMTi3QlB-zb3#mRPx7>;-aHA?y8A`-C0 z)2e^loC}`m$XM-rhR-^c(J9q0yI~1F(XpS^YFgJ*kshHW8h-nFE&X{Xv;Q||(@!@? zcGy;ZNe;GRP=4<=NN%c_?Kjx6prD}c#+kH|hZ}wgiOmT@mnpMjV!usNuF74;rQK+@ zPSB-x)MARHm-6^mj@HndrRYMLI5&0BMJ}%Nzi8aq8nvi=B6*|UD8l)dC{zzt<`P5q zwDZ$6UjF+6QPKz8VKKG`M2n^^@baeTjQgIA*FwEkq0H&*?Q)&~XrQk?T%@@^a8NyH zE@?Rq7u#OQ~<^I?ZiJntWsrl*K``Os_u9>d*M<2nvtot;oE%}RPd#9CH$ z0!z0@qs(l>a27V^PZBhASYqYe1;}C?eV7wOyiJrCrTL2nH;rojIc^_c|4n5Rv-R5k zL1^LnKPQ+AwXgrgGQ(-FLqL8DLZets)IpRAqpj)eO2}fP*L9?EgI6RHI<#4|#(Vpp zlVgWdx;$9&7(VgoIWId>y`$FM_Ih@v)7Ouq($7akJ^9a$gg^Z)uy^*K*`1fjD+@lYKXVc3hDjM z`N%K05YGjp%BKz}2C?0z>ay24o8g`H7jPvAtI*D7?I|?=o$2OQ!CmjOQuo)=io@l|E4Iy=~LXZTPTS$+s}KKD^cJikx1of>&kx`(WRX zw&3wf2-aiAvzw)?)ISfjT}wu8#+pmcD}g3CRz@*W^d$l4*OQkkx-aD zWUFLbnxcX%YrW^{l@Y_iM}~jKpiip)4)tAu;X0cto5Und8!|2P4pz-wO zs!N=?-zRI^f%6|MPNeXsbQFN5>k?H|L>~dG0}8?&99(Zc10v7bHm-GVo1ykcj05p% zwrbR5w9>ZCfhPdBzgZ?DbnoB`9i~wErB)6m?C5K9_~{3OCf*Z{S}vi?7wOJeDD;i` zdMvH%PVWGQMvzl`##?Vuv{R`k7zG{4zOINz`FXdgrq`I+Q&g3W39XMIlJc!|3&oOr zvY3X2!WCa!(ply+=3l9#PTX$-O{9OiS8G0{CNYDBI<-kW-#`5=ww|Bq#F@iTso=sY zHk+oD&MY6jo>Z;z8#LcBC~7~)0X+Yz%p}LiZ{llR5B1lXDPzUD_oO#7V$qDPpMv~I z%Ew@*N4jw%!PcD)L1tJQBXB`)P(a;_K+A|D-uQfbW~s-eS1g(PH%C@2O}*m`{CAyL5;)L>x*2AM+Ux3iXx-{s8~$fJCEpxyzTwISUh(h@+Am{9 zMEC7jSFvUJ5%72oF}4+w!V`EXuwmd$2!Z6&|tjwBT}!d5Jn4&ndl zv{jJ!0I5!(T0$02Zrj7&u?FzZ-Z~CI$5CiZIhom0AbLAeg$ zQ*L>G#3Kf!O5?q5rD?YxnMn$~C3uSue8fYO*~h7}I?GS3Q<~Ls%F!ZiUOA z)ai$?UtKn1p~PZ?3<=X`qt`2xp1q#5Yk6#B^F>2MefMoDV)>kK(3n>8K6*$-pQ5~E`Ebnue^-fND+#of5f2-bl5e(P28h# z9^RLw@Bck)C6RY+DA{6RyyO{t||K54OEOcr^Yn+Yl(_-1m zz5Y&S;abG~As5O-DAw=rS7cq=U|SRGT4BHf%2Sd1`(^(~;7aN7I2WI*e~JYJ4oPG0 zK$&K34=#?eWe@diS*M#7mxDhE+)HTO&cLs}JLP>)>Ce61y`dC0HmYD5H^t(COOIIh z9J$40BAVpkySqjVRu$xF@RW=ZN)Dv4YH-4d;2+gBpz;kHIyDi~;=NYm@w#XvGs*I4 zT_NkMeJHP^3DseD)0q3H`8PIuYQMLx=+WNxeaY8XeV565D>WGdeFMwi!fgQ8a_1DoWElRiEPHjB}Dr?K5zZ47kWTI|$*=X8#^R$Rti(GikW+XO!^x}VcNyKgyRweB1?Zt<<= zpgj+;ZY6K{&df?+Hm;M!x>*Sgh!V%yn$AUBj+~{D+Mw#?x{b4{hI6*J?_|lBo{xHP z{>#f4@Ks$-EuAL$J0B$lY%?w<*Tnmv`9u zKi^I!*f8igstt-ns1370@OaLFKdcXbw400eqy03&<6g*Dg9PDF0^Ro0eoLr-t8#v> zaGJ52y?eejX0P!ecu>u6=etum^ZKc%OFW~<8-K%(Fkoo^z>oLwT4+nfX;rH5T$!=1`pY3VTeJG!`*;>Y*ivDcwc8YnfSw*sQdr_pI&^0m*c!Svd zz;tJOzxXTZfnhw%k-k~Z;7^r02B{o1HoEaM@RGd=WBswVK-!fUdafse7NmF>Pkt93 z8TjB9v!_^6Ufwph{j=~7+R*r}fv;zwXPLj>`5g0Mgjowsyn8N6^WEdGS*a~GmXc%a zj+#Fkeano&riE%5@9Occ__$rN^;RE#8)^Vo(Q6wT!z9g5gN`c<_X-Z4_3vuCWH%I8Cx7&j!<=NIa+`pWY+ zNQk2tUvK?X388KLW#`!gbfBmqXNm#ulMlfCWE>nr>Sz&5V)3g-#V8Z3U1-`yWLQue zM#W=J5);-~1$^Z;vw98Y2Y+1xXBZFVORCP*+7U{Z6;TYV$btj-$M_?Z7PMDo(5{(u zgji@fJw9W^k9>)9Mho_|&3vq}@m=|IBjQfOYTu_Hk))a!tLA^m>SJ$xPe#O_;`E>g;=dBz>r==9;BCYG3HS z&u|&r^JRAu(kC>i<=GU^9_pYbzgw;ONh}MbC`OY?8tD4S>-@YoT6%3QP7EBa;^KP? zdS=RleAV{8sJ}lVg_EH`(i-%}zjTcD^>2OqmI2y#2=L;WIIvZyO*t9HkgF*=55R*z zme)l^2dgTujbfm)caC`i6W8Yu!Wri5;&KI?;C-o3l+Z2Be=);fCm1Z>Gjgr!i>-#E zu^ufzVV*wDr@SVotBCLDAU?GS;6^+>kXaBKQ^5Q_%WDwKX8tU)KZaEc0ggJo^0Sko zUf)eShq9p2^U|EnofX+icaomVRTUQPVP@c3;O7C=+5|=cKO_~CEtj(W=G0(kciin@ zj2i19bUCcNYc)fkh<3;rSni2I$_UfbKHcc0lZAf$sMGw(eDC~m`Jj=>GCnck3|!tK z?J+Gj7Wmu2fb||HM__u_W1-thVBJaO$qhaUUA>PLKJn#Ow!DhUc!Q@7f*)sh{G{iP zr4P$}>TcY_$_?5p>`%+}n@GkEh<>q}sdG*d%a$K0JU}iH2YDDk# zz1@x_rL#HKBl#`lQ{Eyer@Hmb&X`qN&jr}oMpC95RFK~t#9i*IZu-_O9bh24o13Fi z5y?q^Fj}ucXN|bTBDbx_E`K-jq=b*g4WlI)Kf$~xy}^gMh%l8LrRMnFvsK8u*X)ti zGz_&ir>70K|K8-qlK#PKH;!s*j6}HFOF>O*x!T7xuCW<`+tTDtqf%*6QGac;sDKqI9^&skeLW=X42&j?D!weABd`Aj z{`uR&Ftm45o|}sg25@0 zo5@>XS(V+AFOtud{MLWP+*)P4FvQ;&FZ5T3MFXj~#~>SYG2ykkJafjc)t_mM({Hst zuU#e@CKmDV(HldG-15u|=p8xsNfq11m0`7NE8;HdbJ-v2yC0br(>q4^)y>qhDFGn$ zT2Up@ceo~h8ZL3|o+T|*%w(EMHVQrhW1*C%tw-cRc2J-TkDHDC)k@_=d~kd<0LR=o znx}c5?`0GU4?9Sb$f=Q@B~%&S2Y2$d`RFFi0n5YSLK{nPe(60??zaRZ6OH1;p=zJ8va>6yNf3WbEx zzG->ATq(uQQJBQ$nCvml<)G_tLG!4$+^Ds$seB`9d>2VAhsziaiB4XoU+qOR8)0`< z_&EpDiDGA5=g{<1mNm&v?KSwj9r)!$=U%5o>uaz8n{0v9JI|~g#N?*xjYJP3_F}d! zDVkn|y5n4aW&o5b#`^Wz4v#}>%|iR&Z-+=$Z-bZ^(|SW*MYly2;b64A8uh14a4pLJ zmp>RH>h}IWDSG;?)z_>ft4nZ!&BwZWW-RHiPg^ZWh2eULCxWZ`uV=q->U65L-Gw4U zG4nmp%l_y1=OtlkvyWt@`f4=e&U$5FSXT4f(`9vy2-usS0|(Xiw)7$oH=n?ytJs-6o1oLV(kph2BvKpKM$>Nhj|n9tb$YS_2;zOw3j7Z~^g z_sS=l?hgZ5D6UBXc2Theq}f~<%MDK%=2y2;fk-6ssooS-3)jqFpM6-*W8e=gh#FfT zNGO!Kaj)5)KhQHQm>OJAwqsfEsTJ|ZCWz74T{UE#loMtUX;nAbnnikPy0E`DohNE; ztoo#qtP_x>xOT07b7A%a`PCzic6j2`Yc$=i)+YSjLF-#~i6J1khaHe96|#q}Wm)#0 zVUoK38NO_dIG3x~hICCXRDX5^oMVGFSdr^^tu+;>TyYk51+)F$b0cRBhh+3;=^=(q z1_sFcYbp^)c*R`N;w7h1kC{?kh*BxkB64SX5v|=XebJzbv3St#)(U^|Lj*tbT<+P| zttBEGtaGL{2fdt}#rfQMMOkhgoH2x@#=*ANthX8?rnSTo z0}a0(rSST>DzY*CK40!jQ7nBwhOL_tux+1NAuU>^WX}iPtGi!MWIcWD{D+$-3?EFR z@4IM*GP-+*W5ovv(MrcK#tkvjgthVA>brm*?g)gVy7ol)M3E85ftQBO`-u*GwmS^{ zG#Q9PB~)rNa;K)InS+C)s~WZdu|XoI7G<+0Jnj0mOdDpsgrDtY706pPzU(yMoqa-I zAZK_-htD8riQ&{q^a78)e;g`E2s-t(fsV%e84LhnWmkPS{R7Hch$h}Y{oUdQu3Frz4!bBSAgLCM+!R( z&V8(MhtwD4;dcJ(jGC2{VM)-aD(7GhX4@WjWF3B6Xp^oqIQ*^ABXBBH{4tu5C#BhR zuq6yx@QL(&JN9$8WXr2rvD1bj8T9*I^7z-IA5XEMur*W$QbtBI{c|Sna5+lw;tm7D zc#c=b_vJTZ(r?WTNp>mk&H0Qxd#QTO1_^2kSijEbpj7@|n);gf`fVzga2R#lbZ@h& z8;zvR%yd>({8w~F-MRRo`Ps&)^3V*02->kyn#fV%>gocHCJqOCm&L($v%gd1#b#?f z@tcSBAIJ|a&Jzfca4xY3r(|a@*2FkO;x)CcsRJB4wr}j#;_65=W9R4z=;bdL>kLGn z^$L1<^ETU&JJ!>zGTa&KzE}iePQ~zzGVW$6-fb->y))?6PaDRe1GOaELU(FCO1>l? z$%af4U%KEz$E@4wMMIT)14A514ST)0CGVt9W*-c{*0{qgdqI+@wBN;sIPW|DD(4}D zK9sydaMVKl+$*_n@4WdKhk99y#7XVu#^4ET+1ck9fS|fvg}x{aIeKiZ6jnHNS^07P zR#3%mORu8^vtdx{PVJ-kx9afAG=fHzT7DUOq__)@_h!OeBpJkSkg(3Qx5#LBkua9opWp+U9SG5Am*6=-7UOz>8tiah50#gjQ9cDq>~GSe46=tix%MTqyR zx@kNj@5Hfx%<_^Io@p%T1Wgn}Lr~|^eG{OX5$6JHf@`7vy1W$=e@wBZyDyVEcz=tKHlRuY5cNu?sN4(~tO|RAuT!Z;d)^;?!V?S!?Y0jb+we zXd#E#+&xiuw6UBaGYw$vg{%j&2`o`B*pfWA#X;lCv}QO<|FjY7h2$Cr{Hb^l3!yQ6 zW}T>-)0rq;wJ$c2^BkeJDKSIvN&u(TEtDHRS{@^p7?ik=m^VK{n2ezL5gQhzyvj{S zH{np73|89QWteE=kpG5UP*d*Q(9xABAGL^Hcq?jKI;}En%7;M%!=%x#p@uFxla$J` zyb5;jK^F13cCU8t^|RyJ!QNt&DeLoJnJL&EM`(^T-$1gXw8sZFEi!*EBS z^LB$5=6n7BO4+V=f8D!y%;_=>_eyd+`6QpF z<7Z{&Ikke9zQ|zlg;scKN6(SO{H$)p!FD(LW7KRz&(|^lKvBe#j zRTvn4gVK{Z?XD%SLtRcA{Wvg*y*T{Wp zzj+%=tTnWj3_p=@{_|I7K5C|*xvRnmRNXK+Y<<9H&y3_!*ncexQJeJ0=bmM$s^9y= z?8}>z{*uXYFkGd5t2mHqG>(y7%}{HB?uQw+(*Ex}J(u98+;29(NA^v?zcvs0RyuYa z0vgF%w)}<>Hs|>I82(qckuNv=D8Cx32kAd$XRIXeO+D9x@m*yBE4XbRZqgjUK3`%n z@Wvj-@Obbla8hGOlI0;s=dJHKH+=fA4>XdlXk+O3lVjEcO-BtDvK3*a%fVAXrR|5) z>)o*URbPO5rf@dghJ)jXn%Oez29B}5xgP8gzJACT^0NeNap8k%l)pslEcTzmiT5OV zm%Xr-VYkBmAC%m3);F596}M9U4&XxkSrBoL7?BS1Dpl}y9czV7c>|3vyD{c=$u)!+ zC3LdBpr~--jkR`tlau+ChPM0s9qEBHanJYJJvs)4&j1PB06aGqM-6<7T!Jm8Oq4ei$kjpN~4v zDl0TIYnc4pBe`aw^Ty9Fajz_|R-hL)&DX?6NhWc8&?y=`qG~x}@B+AQH!~+k)Rqs5 zSqFz02e{p&TpKL^b6AMaBd9ib_?r4%7|TJlq${E^FWq1H%J3sTeSefd3J85uSErgi zH~=iZklzjMxDoMj9sHK3K^7uTT5XqMY74Q+iZ$;@sGHceo-3e*0WbdRSEs5pW9CNN zW|Qldvmpl`s;#AD9jDmbbB&jB#o9rJy|c2(V5r4pF)}i9w~bu&PG%M2gAmxPg$2vS z_)agAF1gGasfWEJjxB<8bAkNzZTa+K4seZ#QMGsU+N_QG{sd{g*14?~wz?O#U9)ZV zpULIl==4y7lPgZ{fSyzD!9SG0UinRlDf%ymfB(W!=PR!c0Wp7Y%xi9CJ%KO3JK3!NXvq#0 z{a(R~Lv?yh-fM+~tNj;vVNfc!7zR)YM(1wyR+cjQpXj{BCZ09`2Q% z+l%($-G#j(TPv2Tf3qE9ufLe4nI^CQvem$Emh$IQyf0eSL|Rn^r#hu~eVupRMt;rW zX-v|S^T^rx9K$1{y(p~Q2dyv0sR%ZQ(~Djjq8@n?sBwoGcD)2p2Zb6vg2$~ z>&zyoQV6i*VVMrjWB~NsjECv%yW?y=2irn?AM;!e-M)MdBl-}0ks7|kR=7C0nD1g& zO#eM-e3|Fo#y^^&&pHHI*Sn2TB%nk*BGh;UC+r7nOn$2wby}{RJJsJ02K_Q|?+l6R z&RbHb2Dx;eEIIu!MuY4wq>p_M-S?1HW*kms0_*)zo$yWCov|HHJt1pmr~cn4E>; zjnT1yYlDDRxYL?+il&a=r^4~DEziNO8}JAwacbC{3o_Vk`DHC!??Llsu~v4-%_;7b z%ldxpef5(!C{gQJp>IFe*Xu1`^FV`(6!jBmf?@Qb+Rzf=xDAhl}LyX)@|{ z_`DgLma>_TJ-E8jW_ukjlGp>HL;r;LdOJ|6>7Zm}wZ7p$Jr}9=hIr z0PK`BeV8)kf%aLl&TU?3!ar_3Fxp2agv6iuQV3hH4^|I7Ov07Ug}xD0(%Gg&EnJo* zQoOw*?kPlC=PcW;UWoc~T;v$#Cna5{*lmGCdWKvDZ22v3%urfRIyl*C_%N^GN>629 zzqghi=iDb(#;cHf2?MKHmsYCzq%u(!ziXY}3287L<-K2=dS}&qp_t|cavotqn0#E+ zxzBlvSSmf@2k!+GS$6Qm8yQK@Pr|5I=x=^9jN*+?_dUI)h=+tT+BW&^onpbZf{2AzK@yJaCQD)u< z#*SQ#Xtu>5Yi&20wp+*AdNsyS0xE+wP2%bkw&ZtH5~;_XW_h0LD*w{E?_8tI-GDb3 z=eg&hsrr9s3D8mTOfkQ&n7v+RrDfv#W#h5 z-_66w&blHFi*=8FACb~@vi!cWB%4hgy?*mq+o?VUlxt6@hIhC>kn{hDjCl(>`Q=Wz ztjkA%^ga6MVqt44ZozhPta7n29P@}jMvy?8uFm>&`Vjr8^_`W+@ ztj*hcNicDe|8c~@u%jN>8CO^ubLgiN#12|(;8%C-TOQN1l+5WPL#cV^*bKENd-IG{ zZYWI@3W{E%>^_3hS}X+7<-d;|QUBFDfaQY{RWXu&sq(}IZn5%7>4%Zzb=0Y*0woDr z7xdN0)j%TO8?lpU=I%OGiIivPyxRcc_7WIy+nal`kaJmPy@O1k^$eL?@HK4tC9Zcb zz94d~8!32{-u+J164&2#y6EdWmV-;OUH@;6zzHeamt&qABd|v?@|8JAK3Y zd8>V)0n0?&vDP=w&j}mKL}-I+cB?1ZCPb&pSFJrg9i}T_8(NmyCA~a|dv4wDefrut zAAJZ#(&itNf0YP5Oi{=fhKeZtNE$gq7@U=iXMSjSH8b4d(O5fDxt)S*hIVB*Ekq9& zTlX%GtdZ67{rk;Jy&{LmlMO1E2Uo72*FKTA@p=EpvSv`1%oT-<{Gu{zLF`79kuu)V zZN4<6_U{f?CbB&WaSLc^E_gW@e({(hf|{kVJ)6dhLA8`{F;L~lRJp9P4}xu|GY_2B zbPW5BpGyns)G+TqHZvyC`i&Id8e7bjlED6459suS?tp%IsdlQpCr^CpahGe)hS5+S zku@7EbjHrlH4lZ&^B-8F{LGD$7mbn6$ad#l&r|%T!{)D6gl=Y~x2NB+Hv)E5&?&?9 zpAuu0^TX{&yk~o=wB{BU;fta(YHbhQ~PTw;h309E| zm8XNL7O0y|7f$E=)jz#BSt4S#D-n>o?xCDq!*@P`Az-U~{^l;!DcbCpNG~{)E>OBX z)2K<IWfwWv6C3$>4}S+wcX~2M%Eh!Qnlb=%0xfX$D=M2fgtgEx$AQ!)5RPe};1Uu?7q` z?corW=a|2z=a#2my!KL~+GR=9rn%NE;x`KtTs%Qf zuCmP7gdqf1DF;M7Et z78L7po(CJ<8{K+o{d3FTtCX=d?X|9Zi?v?Jc5drh+hKuH))b)TpVj$mlD-Jp^}QS% zCQ3e>0vk}>7iek|e&W@3@TOv8>*tC;5}Snk3b6x$+8>J^ouh8;w6$Mr%-tRK>>a-- zk|Sudp=IBjz$Z8NPMWz;?=$e5TV0I71C;^-tUwI@oc$`Cx(w?Fx^lW>OJvMw1r6cU zh2DQX<7>M(?yz%((X{^Yk_%B>33EHUW8Jz8WkROSO8WwBf;EGiT!8O1F~e*G3;2qD88Thk2#1WdPpZT0@$Rv4p9a zO^_kUor=c*wf!B9>$A*9myP3) zCmrCZ!4v55VE(IRdTi(40UIJdjezO1WY^p+WNzeQggt@E?vb0L#xIGedkR?wIB0vW zDJ%-*bWfD{nnCF2zZ^3sx0#C*lNen#JlPwo)Dlz(=V_PN1Y}(C9b*J?Bz) zX|U~p%5@}oSsR`iyu793E5WnA#Bia^qd z6Ug4F8UCqR_(Yy9WM9mY_XM+}!K>fLr~yc)HB9p#m2FV}EI;_a6BzaS%v(7{sRAph zisUTe+px~rOU;7S7m-`i756+d&BBQ0fZ1#84*QBe&?z%*3ihdJb^T;^S$)w;5`stc za`IJWVpwF7=rlLmgQmISmnnkYhH(ylF(lYO?o;nvGdM2RAtUbt-7OznJQ;UbCt!fN}@}0uwbIQq``F>b3pBJoG z-%T>vbs1hMe#dsK6yEzjWbjqmAtRIRYGxrU)&JMnI4&kG+?j5vb2Tj-NiGjgfa_Yl zz2L-Td2q>9AnvXE&kRg>vt1bWg|5z*NZ!a9L&TfT57=D&S)IgBu$T4?0c+jjTAa~C zOIB3mJC|;dv$;p!Z$REz9nHe`3@}yC0kx@>aF>eXti~cH_J%)08_} zhJz8Bn0H&r{}uAqM4Vcfx~eVZW7rST6J3`4y8Zp*^@FP8kninkoGF3n(QL3*>%WKl zxDA&M(hkeu`t$Td55J%Z(S>sn-tem1Qo{W;L++Yjj!7q*DXIuQiT?5{>X{HUB+70g z?1PGm$GdsrJkyVr)X=jX`6$&yfYSha`Bs4}vCUQsym#r(xKK|M*cOr50IHnmnruE}!aJ%Q>YkdC}vrv+gM{)zNpG&pSBGXbhX6Cuh7L z_@P57f^VIi3wWVWv1-8%bHP?>HS<++S(RGY$R2$3sjJawV%VgP#OQNlQu?CptTrUW zezZQX0U6vduTGS43vhk}i_T^a0jg8))$H|SBBvH$!3nggBL;srqmu zQFOJ}{GUe-ahX#&X;bC?wd+*;pcvrC<9)W_aRnX$ScYZbjxgzn_$QTiztF$#DUZL* zZbA;XZtR;lWGrsKG!9#SCB#MmO%ShBlj1g%2YV&+jiO>yz~zyqt8D*+gI~D5bc&4oWxO^QFs~Fy(~jrJ zqjl-r85&47-Ja8b@aZPY=Di!YwPZsK!6sr8h_EOs+w;3haiBCXRL*5w6!2b|U6R!i zQKto5x94i{GEEaP-K5~Uby7Q4l9@=@*{HV7C7U%==tcrxNzZ(%>F%dT0u|vQkf1tG zr%USlAI+{RO?spo4CbAA{0WfrW|4ck!gEy_AA0T2bgw%2O;z@^PS5bAT*XP4ziX?+ zV4r1W!5!X}qNl^JeV%Lwng9CK#cl)O7{Evuq|B`0Sego6Y}Z z{R;HeyZ(OaVe>~GwRBORcFgYdciOr2e44ANA!bP7q@Jg+d2Qi*0Om>I@+3`_YG7cH zeC}laA2InR$e~}%ZYCxJaPfYkh}WWES*Xywm{IT>&NQvKv?SoiD6|l5e4%k7?wgSr z3+;1Ej6HwWRud%c$!7M5ba8KceJ{=1i?&b>RD0T{QDCZSd(cbnx_AvUw%nk|$^ib| z`hUWmD*`SnjkSD!!l_DlfSkm&=>n#b)#+YPDnXdP--&HnAJyxSHZjtEZ#|Rn+90pd z_fPf3!kBlVyCox6$8Z%{dw+&t&kv9A4^!x}8(q*hu7z;5_aALq?#o(BIt|?H-5=Ob zz&>TD{VkqsYFCR>n1^bvHY)Ca=T255YmPn4?fCweB|yawQ5m#Qud= zDmj=*uSuFs3u3$&z_@qow=Pt<(U3SXGJY!k%jp+MFIdf#He{E+cNJxM^6xV16mKI~B_`2eicJqW|2A^WLpfrb_<1=nMNq+zMSuE# zEFfLX_6E`(XrAS@{5BqxAg!cj)wn9tws1RGo)4W2d5>kW_Rr2?W2C-(n8)56sucnN z!PX;g%(8D2F?=#-jc`@fKKW$JjJ95kY0uCCrOkR97zl6*AE|(`t5Qkx)2Mq@la(Ix zV!G;_>!dA}<-nGFeRPwvh&g8jV#}tK7919!Hwybk^#3aYf}1TH5eV5@zkt38w2PAd zdaw0g<*j^Xoha40q;y(EYXJgR#Pb z4F$c>3fa&G2N`B}4yTe&w^mnBYAI*fRRy$+ROJFL2ngy`@Ot0nxHd>wzt9$GOfW09 z5EmY6YXlOq)UBn9JHe^yV?%`d;J;Kih80S}wW9@~0m*JTkGZ&grVT1l+0H}fuf)>V zPyR2)-4Tm&jK8AWsum&Ej%K%&yF6wkXw1#QAzo4b;mfO$B?Z?Wzp*$s0@G#4d;c-H z=Dx3%YH3D*yaP`0VSCQHmT|Ugxy;iI7846)_hchL^j(7Q$+}PIsz^@yE*Rq%Yh|*h zRN$Q+b-Aljap|@tz0p(l^Qze)UYqZl?JB~uFBX;bT(B< z!LubfRa>TUEV|iuM+^7uwQnXYz613Z5JzqcE6(T$JpO;AeRm+#|NpqVP8}*|t5hdj zwj}!!*{fj|vXxOrHg_da$cPFdiFzkHG;l?-M=E=iGD6A>(eL@X<@A1k-sAiGr}w?j z>z=RY^Rf3+!||4K|MySh84-FI@tF+eU&kLD zH`ymA9uvL2xWcH}ske7TY$>pPBFpk{#x+Y{v$?m@K_!e?N75LtX0o#A^@;)65f^tA z!F6?}>~y-cjV0&~lY8Li#O(0ar_*A9v-0Y!k7YUkquZBw@CUQEaS&m2G8`>sCO?t&rxYO=;b(Zq{L&( z12Dh=-_o~aZY=&rR{r~U^?0c{Z;P7i*SLmUKi{=KdmLm$GdNyzfDB&v!H&5n%G@s& zwqSCijqf(g0si#fZh2a<(){sE>GSZRMRUguyMW=McwmL$$x`&e)vwwLh?jdXg^x9N zgv32M*&J3;%G+fgYIo*_JH4^3KE^8T@o2BX#+Frce_%>=4@he#6_1N~@7OOLH|%9x zF$78wY7gaw2wiJjHlBTa<12@5{?d|~`+>W%iE_d1p^l$GR8wo@a%w_=K#+B>)4_(h zxw{nuGb5Z!yUg5m@74wTdtTyp&$({yC_C+Fa<@snqgRA2u($Yy)2C^5tIH*m3U9yr z`$P{Z`Ptt{!W+LcjNd!wsb7w}+^=i%DPYI6TZJ^}~6Imft^do>5!Z_(av+Q(h+GX3C@nY-6A z>wkPdGM#jW-urx2W_`lFpGph0bvie+7jYY2d5bhlF3#Kxe4}+_DJwbi%}vRg&NI*F z5|0Icq!T*#itS+2^9Mx=iDU2e^!=AzAI!hesnJc0;L}->W=(T_Tly0V%b<%tp6Yk_ z%KJy-MM??C&VyJ^f_RzWHY_pN-G)#Dcej9j|PhW2v(nq)*Uch<%IM%i%ZF#D%@f!;gmKwzvmBiv6KD+ay!7`E=4K%b`1$ z0`H$bUg&ZuJ!IrkAjS(+*I(L`&N1e*bAMf#S?D+nh)+0-khPrUR4DuSO+X zoeb%)t!Zpbdix%PX62Ok&R@z%8{_3g__S{@pj#0!itm}7sUD7QL5*AW>;G~4eB!yg zv@Ip8Zf6S9f|X6)d|z!C2r9naoEcPAZtL}K#N+9Zw0@A%0x)UR+_jH!=GlXS)~FUK zAcQz}-q^*%&3(XA$x6PVq~BEEHE`pI3e+qtGK%=WzMOY2x3XVz@F8$YQ{rxmKCW1**VKI5 zwI^QKcymrAyhLB*xORQ7$JLZs;DCC+;e7xKZ?2EERo(nhpgGxn_(CSX82|A{!a`fN zYu1&x-kX>#-Jz8zqw2VO9C_myg!da&ShZ2!t#>c+_C$r10g z<*`QQj@j)ly{?wxqe4bm&s*kS9Q$%fNBzi^w6dEIZhm-V{9^WAQS6wy6NhD=*#${S zg)Gan^PLx_qSTI;Uk$jW{jM>|D2xVfB$nPHBl@h@mN$YC_(h``MTmaIAAUUF<&L$? z88zd-0S?D0f(&qZeOcYByY6}MFN%z7AqyDv1!@iLzny9NK+12@^dJrHKFS)!4h$^| z{7u$)7uO4_OmIoz^fa?9gH=PX8qE&WA8-HIyX2SFpRc1b^!C$4#w(qt`y-xt-^LlS z>}Hr=JkxuJNrDtSS382W?J*t1Ut!xH9oUfo#NXA zFNM&etW78s3`0!t7y?{8@tNLKv-7j}yo96Oz53(VvnJhHZr?I;6m@xDPIO>VAow+Q3oVikrwV39JVl)w+YXwejnR@qX0yWzeD&9_ zbxTS~kRTL(2&Q@%y%n@syG=-c0e-IX_ybCXU4|a^Q?-)U3jdU#01KgROB#tg6slvO2rM}lO`;0Ix$&!THA1rzbYx0F`8)?& z73>C`0uCQ`G})FCPC|yBz_2jONE)%QN=r*e@xF@Loq1M1lN!0i)$=Q9n1}&3%EHwV znA4~KFv%Pn8?&@$?L2}_r``w+u8a*WC+TJoq_|PPk+c<1nF|^{bQG(#BT3&_^JBJA zZIt+Jrxg~-L?{pnSBB~7H`dllY|I)ja%hrzzj%RiE>sT9GT|WA7ij7t3eF~S@{m_T zHNly7^%UAS>`{boy+-*3aqAc^Bx(=&Ny=$H?M;{FbL%eF+6Mt+rjNUOyTmRk8Yi3$ z&I*o%$#-&UCMtaD1OF}L*Ju)aIzfA6yX^TsyFPw+C_p1PGxj#HYKmvN`1X_Dh*ZOt zkRU|aA=)|wwueGElvgh^pt%2ZnouqDg}R7SS7NFtG(cVsgP=XI?@vEi133Zi#DCTu z$(JD}Wz4o_e-Nf09({hdJkohC`tr1lsH z6r&)2PA(#`gRFuAJQ7k+6lnevV%9&4w}Qp7tR!5iI3I~z{}-@>e}x$Et8fEwM_}v`RSO{{jIrB($rmD=smS-^|RchIy6gtlIA< ze7P63_^J9^O+(w-(OvjsVq-tB89~B-8!Z86OzeZ-{vLTBfu3QJIVdSDebg($bL&fj zmd<}jbB>~l!~hPTTIXLO2}DFVEzXyzRZY$DLPl;&lFVL9RRR5V+ryyOV*}bD5Qe8* zkaqU=ep|qedFAv%zdwRkLmOY!)Q@~8{km)oP}2xfCtpTHL{hroPskRhH^8Q@JwZDD zZ=l3zLhMJ!a~l$Nm-sN1Ye3*e0abwr_aX>*!<+EgD2lxK4zKFn5@b7Q4HZOV0t<2N(umq#YOIFq!wz2}Ln>6wdSPD04l2a}b9;E)?Ui^z>17

d+%H^aStJMORp4p3Ba$XYVVNC}<8eqej1oN>K&B>sfgsZo*<53>eomA4a zaXkz$)rbRR)0_a2>U1C~Bz@m-O2K2<21kDf7!Z!QAK_@TR)A({`evKK+16f z0}WsaTY3OWlx>vW{u?Q^B2*R!9>vWVGSyEes?p@wgUCx@8Y z@>;3%4)3$wSWvg2Jz9lPzhz%sK@o>;{Hr{ry)&tPrdeAjh0H*KUF(^anCt*cv7)rb zvx*`5@s*{nCDKd<+*oWBqGIJ|(2#eknWp-c1c|*_V5ko&d>d|{!pgpJ!Js8M9M?2QAv9NgS;Cw>l@_$@DFF1=a2lw7R#ym)BnYAWbBHXW51l2wH5l=8+K@&GJG4)<i*Hp!t9$Nj0qKM~w;Q$Bm)m`}a3c4(GGWjYaElO2&^z`1^=z5Y zE1mi-J&WY`Mv&25eF58VXrl^h5yuNad$g`sVyDSQpBs$|=5?dZQBlb{ieC1jZ9AqT zr#g&_-R4=wria@Xc1$_XNh^tllr=r5iSkVZB|=O7?k%}H3m2E)71|9Wwsp*SERL6M zd8tBz4ibaST1O`sE;^tNH3X6k`)E5!S!-}E0>22}#DhUi^<_O4b1LtSM z8~uM;*7=1P*KW;gc?b%Y_lbE8%q+~u%;{)A*b+p{gZS;x;)BcfCZOB@dSSvJ7VnP& z5mvy1y2kUaWf(Bg7n9LvrN6i>g3b31ggjO=4*r?=DNw>y_w4M z>!d$b?suOhPf z#nyN34#!gizx1MszVfPv(ZJ@ypqb%GF-o3ZA?*u~_eg)n{6IwSR1n?^3SC*+6>49s z1T-+F{?@kF_VeV(&t#)Lt+t}cD#wE@Dy3TcoFE%G^rZDdwCg2* zUA^GI4==tbET`t361Gq15e!z_Zofk7kYgA)FZF@>KkfDyJ=97?adVcqjdsC*>XwE+`GJ^FpX_@1^4Bx6Gb`Ma7Zp~#MKL=iACj3IBmXnq^aA(JMXf6 z>zRhkU!gwt8d@XXfU;R<5E=p5zC-5cpJ;&W=LyiS-gUnN+*-n4A#UQ;AThr%XWw9O zCg}K4h|~aiyAR~W$);|%_KOs&0?DZ91d;Iv$S9g}NYpa8tbRy-sS-Yfx%@z78p_xC6Iicg$(TX|O)O%K>IU4nMCt3WSn%cQek_`@k*O?{<> zJq`YkT9x~6A5h)(v@o$i_lb&LvFstZsIN#8vYxiE? ze^9e*dYjwAv08bmu;j=+^)JeZoc<60oWE;)&DyewMF=^fSulJ*4?86XHRGJYR= zJH5`}Xl&JV(ooPu>PZD%#yfO!@(MZ5pCex0)rhWbxcIDL#MA14(VoI{-X+fyWCY!l z*&uPY9kKscevJp`qi2jUAUJxjUdS7o2B;Z7?w(K*bXmJYgTF!a5WglE0tThWr2_j) zJ$}7y`2-chRXUE;ooo?}!R3i07%|9l$`-aJn;%o|T3RXoOhecdi6GF!2+lQ|2Xhd? z%up!3Osclp58Fy~MF5DRS7<~9%o`?UVbqsJV#c_OjD&nBP z+Ijo2$K7+0w`^IM1AqDb1pSM;1B`iA6{cG!RyvB^3GzS_`Sa=5GwoHWVCbWe+54Yi z@~H}-Je<$JD&lnXNNs$}X|zns0W0D6_xU2U>QeQ(4x?w`vws;ads)WxZKdNz*(tOk zNfATxhP}4AIkC8SUtN9umCq8K3UDT-!E|I9ecc#-EOrRD`s+mAVpyv?hJvug^B^ zRUOWqjm0TYu#aHT)8Kxf(At#$gCX{CV?1nl-^%d=Yo~~&fI#G-rt4#XsNEO7LVQ++ z>YQ0P@8|QTHqcfSl%aU-P*#To)V?->fvrxE7o&!8N$#*F#{$wdwI#=r&^y||0Z^R?4HR`EIgCiNOe(@G*Afyup} zL7P}HQG5z+#`X5vf=XgkLvBE1lJMt0Qtiy9%)bLe|AcJc`>U*?!$k8OC4>w5^|dfX zD6zxll*(Q%D1dU7MN?1DyXSq>?5tOi^;#`1I8`T`^(Q1c<{G5LX^hsqGL!`&Ht7AK?{M$yUB}ot&uL_-6KfT1UWcypab;m1Z7W)Q*-}g^(7@ z(OGu-)@Sq|9l4HX8nghUkOFY>usM7(IFtisDLol~LhIo=a4POd#&vrIVGvOX zgNJ_NJ8RvdQYaP>3kJBciW(n*GJiCFx76selx9%yVK|K!u;_hxKveP9gkmp3~CZY3Ut zm{d)5@HLx`9%I1!SE3g~lpMNwE)h=l0-2eet@G5jty)dbaB~*pJQcdr4H2VI+(wWW z1Yj8G65XiuKk_g(2->tJ9jmD2k*C*u>n6YXb2~0DiGvY^BcM>Y+2^4x6h{j;!A*H4 znub{}UT-HbC&2&7!4OZYxVi=JxNBBHhjSdly`v7sGv|#aa$f|4Dxm2D=C7XahJ!M2 zTq`nX>4zw2w`Xi`&Mo&WbAEFC11NWH0M=po9}UKTh&>i}`gmNQ&{IzbX#ND`6zVdb zTnS}pSb;_W^xU$cXoK6zs>S&8jC4rkWfab@~3m)lf8|>1X1QEP1b^k z04hGSRet4h}xpz@q#NWErj2P)vjn-Z{>p^KKRuco#t~pE$p*Z&7s{XsZhR`9*rVCEE2o-L(VYpfw2Nkm-^!aM^@GLOp2Y1H8CPF0l5d zUSm$h(wJj1+tD!K*S9Lb`Qh>nAEs&B^-f1~L``&Jb~*c$=#CEP_XjQoLvAV*(MXgQ z{bDK4Fto#9OU$ol3mdz@R9AD5v7tH^*r*sR8uH&jI7<&ixr*x|csG*{D98o#CmZyh zIN;DGn;g&vT^mzB>O;UIAYZ5%G?X~}Un*8sui>M+dnYlU8y>R~J{ zi_VY0SS|gU-oV&E&?F0{z#kY??t}p_3WnpYDp%~DE(^_VPfA=C{yFz7Pw!!iQ}2l@ z?0ZiU7DA)kaH2cjoA-<8zRr++*Y?^v5t_>U;E;Pfu#0Jn6qX4>lLwEX5-&vb01Kln zF@Esd2M(^z z?_~ONu1G;-=zut#>W3ShG0Wc&>^`ko_a*3_OJA8-r&uQ=_$ktKu=T};tYs14T2}Z^ zdDk^5IheZ}mwk!%b9m+P{?#Ke-ecAR8wOymip$L0!#&aT?4ec1Bi7sMZO_7(*HINd zn~wi?rKy71@>1&W|e4 zB61)VT-}>Q!}QAyvODS` z9e7qJmybKVx()@FnV3LESNG0tpGijs`#FIbhLrN+E0K2>+h znfxB=2bSDNU&YJwQ!-H%YPY7dJ`*^;fIqz`L@8v!yAVv{OFUF*UyG1iY-9iq8H9Qp zEig+*EOC>S1^-yQ%JpW(Yd7|~?L>pQqXNfIznfFotcOhU2uYggoW44++zMeGX`F7S zJf#u>!nKW@T?S#60bz>W9~8HF&ZtY}j(nE#vrcN{>a*&*5aqbwaF18#vTT)=!8r>0)yT1ntn(hHRkI%KW2uj^U7fz}dlFxdpxtq+koLwnE_EM;AC>V+YC7v_nq| zUt^p-Rvsz$7(%?!sg({!-XF=+Iy1CqVUyKK{>iDGlhRs7@y`Z=-R|E;hSLH`+$kKb z<2EV;nCHl-r0a>>qCFwMp0r-8f2x=*l)g3RE7+Eok1LKxV%+}6nV}NC%a%@q? z;H*{kO)sD)vT3eSF-3I={?3MF-3?GlgtHuEX#rD#OD<4z7>ui&(%bgg^Sw-dI2F(WBqM3rS{KsFUpL2rK232a zlf|zsF8PbhZGd0EoKk7C@$vkPkKAHFK^z~4rDsu!_qn|fz(m=^x^Raog}L6VncmlM z4#x`ti7eVy`DA&sCeay!+8wHGLoXqwiu0M#a&6jS9@HW&TnTm<6ndOuIS_cZa;)GA zySTHtK9r^e1p@&-Q!!9x!8p)K=}c&J<o~qK^Cm^9!Vp`1M&Xs-gX9IoFj)RA&Rs4A(^f>VGYO zG~%)LgehDu1+$Osf8KVr2Z;pbs)?mqJLk@&!)dPfA@lL09>!|9FGjgWY9dc1iAUoa zR|(O_LSDjv{_;5gzDLuo<5t_X+V#4 z(c7=e`{bg}NLp@k4izC0%@m-#k&wZRgz~3%*zb`e-jF<`7sD_@MD&({tGlwpE3&Rm zoiu4G!^nDN`c>S!Wo<}&q*aZ}IXq1PvwX;#Kb{VSH9+{#A}qvusxs007!m=gFPL6F z%u#3vn!3LkX9+D-h5-Yh#U)8{W+H%v-wx+YI))cmy&-q zDI^jH*Vwu{4(c@7a%cF~9MrmaKoVNiAw+k^m_jQvsf57c#Ki4oN7BAt^B z7=!8H;BZB3@$t0>{u{5Z=XlgR_)_pb<_)}ZlFVN&`RYEUWHdkOp_P=N&YPk4nQAA! zZWC&Y)6dcZJi7a1c^&lkdDD4wuYkN*2;BdLU-NR2U0`JiG~(8-o5v^oo%)SbrPPj} z=3PHmPA@u)J)0i7a&Nk4DWTA|K|CYKzr-HORRGpl;J+3J7|T|%v|PbC)2_cwJ9R7| zAy9IPtsSv5E@m5o8!+ zam0K&Y8-O&m$upcB*{k9R#-ICXE>2c8tyA5BgnXm!jJw5*3cFUT1C$U34?-Oq9t~j39 zoa)3YvP`%o^jpmfi21JTU^6Tp$<-?a2M@0Hy|EUhI&2^EgTT;~@! zjJa@#7{nwBF9K0v2jKoU&KK3-no^wJZ?K01mJ`B3>0BPLw$z>EXGT9?PBF0mz+f90 z`ii?F#f?`Y7esX?z^vK3e96$$vq-MqQh|XkrVe}YI5~p>@s|1Wdd-^PieGb3Q#=p% zG8j=~Kj}DC$7m%g$;@d5Cd2s!z3o%p@I1pJjF3115ea&(&gHzZ4_bfhw->VJeg@L< zf(Vc((ymw;*yMIn6mn!hng*nVhm2DPYFf?|+S~YVYUsG^xX(=t%ztmp+wp}Y;z)<) zfEklzo+T(5iR_Rz=p|6bcOeXvrzIR76OM@9C1=+SMux_bRQ>_l)g{-9;L@=JE|-4- z4v+%5GrydwMJX_j4Z7QbOSw$N<@E>#=}Tvb#YW&kOhZpQh{JU?__3Y%O$T1PmZm^M z%N^&kpDUI{7nkc$lv$hz08 zd*lOT=_!UR%++l1Jnyoo4xpRTv0D4#P>o(-R&N@=XU&qnq6?_AhbAcaEf-RG#hB-G zz{#Ru#u`2xa*i&C(VVDrQEss4wcI1>6b_{8>%0&Vb#)|@`~&NK!%0>xAxo+BLy5vB zMv$NNE!cQd+cv?(#z0G`vHl_d^$~Fl1JFnXnDJc;S_$Ufhk73d_&_={cT7nQblvst zC8VQ4z-6IRvYlyVu4f}rdEzt~Qi2b*2M!du0mu4WRSGoLDdxr()!Z5E^1|QG*CD!B;d{^% z;GQ{yo{P8lJ>4pT{P+KupJ7zI+6n23J^Y5?IxEN>8Csm&J0|ZEx6irbu)M?y@wySeA-Fz6Zsg6wPfO2s#b0&^=G$O-LIj$M zW$sgHu>EA0(dpamrhsU^?mr#$)l0P1H7NS+r%8p>o7_D8iwDKV&OSTC03QG7UZ&VhIh|s$8RlZ`02V!}OASQew6$9M>CZi=U zVS5y+&tZ@V2GNicuyW0@i7b<(U25V-WFMsyoaG|S_apXE+ZdM}Dx4erO)Fo`y(tc2 zgq)SI7rUKOyB37Aq1}Y@ z!-8B*7C*JCi+gp96eVwrW()fIw#&}j!R)ry{2g$?#pggRZW&*pd4~S)gB-L>;EE`9tV_#MT^BCUw8+T-?q1k<6D_(yzYGQs<7j-&ZsKPn1w{-_IXAZYMj*_8l!RUkolh`m9} zyG7bz`?INg26muf>(hr@R&}j%5AEJA@38+ik@q>0!6J0R)C-OV#(KGB z*%S@4CF&ntD;G>CcQ0YlyCcO8&W_Fk$p?#JnSSCeGgRae4u^$7 znkiHl)b+*~y@9-bEGCn-u&9Vf2@y>wnJ~o?QdOgDt)F)3%|kP_K`W+m))xOnhIe-t zu1kWD8S)|qT;p~<*HB&ix{$a$iy7zEI&Q*ih;d_(KY~=!7w^95ts!9C0N>;t$C(l{ zD2tGB5`9li=m{`Rqy}HT@>rOe(ggQ(Motp$=j8q}a^Al^HSCdl+}?oA*A>!k2~-W| z#scC==$=bf3-FDE0&)Pi$#kf#R4fg$Uj{g}fG~C7#|Yuw$ka|y!BBA&l#PJmnA?uB zZpq+eTAZ>!Pg^WC0AD>^dEph)mOH;`)6SFF z9|TzK5d(fjwE=8x3x8X;YI7XJ;tggIU3>RI+Ko)%0HQC2@q}Ol)mNyqpi!Xhc$MbGQZESZ8^fPVTR{mrb@BM0R-s63h}5}JeZZp) zk5Q%~PZHNYrRChY4!aP^t}m1%{fN4F^qc?yXYXwfIMG?bAT}T-_`&rpqEIQWO=)NN zChGTt*dTW0Pp_t4Z;guPIl_mLTKbX0MOB?^Kbd9&4nrK2yKZdU$KKcMBd{Gh@g*Ki z-r7$|pMERo#veoT@Kilil#zM&FcPYwf|5hlAUh8o6#6F^RFaGeur?9imSKdIgnW=a z4T++jw%>ZsKeSs{i*93x<^FTv0IGY(b#j1mUp>RO8Ydl^lGv6HGQrlt6?FtAUvw9! ziSvpNt0_eX)v-{oj74#3k6VHZa3DkA#ngcmA{2k`kqA9Oa14cvI6%g55k?5QBadO{ z*UkhLv(!ag+N`?(zQd}(i>Z=|fFPiw{=O&y9)E}UU!ctIM;a}u9E%7(YjGI49*YX$ z|7vMaUneCEz+*l^711e58dMHH*7v{fmAF5! zkY6E!;-NJf)#p+mJ^Ctk!hXy>F>Dj zw`U>dumB9{^srq^V%^^`qli(ue}|9XBxQO&AV?7rvn9ytgL7Cj{{NHFAczCE;qXwZ zlgufod{DSU4D(Q(eog(6w;ukSs*CW`rYa;V{~paj>K|f?p~7QV$I$O+>rF5l;v3MB z@COebxM?)h)}HNgSd-o9F^JLM)6P`QE5Qs-su}#yAPonHtk}%ah30)!t{yrL&IJX_ z1hJ5S!P~Ai7=o+ss*g(9e0scXy|jmp##%zN@*6dF9>T=4dKYNyQ)4;}TUsC3nE;{B zjFZj0=UBsNf=G4@W;1fMF(P@tYn)k;LxgfxcJ^!h{cYs-KebqzLw_gOFNx*5bQP+q zY}~X4{cl1TLgEaAfTRzN{AJ29KU$=p&FJ8L^>XZ%<)1haeHJ#qwg~ytp9MYUIaJTV zH~_2u%fhs^$}TdR|ABLGAORsK8K%#Eh?GUgjWS#BTSxGaDEW<&NwoIo?SW?z0w|rj zh!^U$mVa6W1cf6(nKKowLI?dzQAYJb+yN-ru~lD+n~1bQ3qoXwLhl4%{lhV-Uka)? zPeN6kCr2(43(eQ0M5j6yR5+|(`Cqk&=>XXy>P#$)43~k`{1$@-)cW7Ft%MgG^j_T= z7s0234kA?K@H$vxQs_`(|0n5&sRc&CW;vmq5GZNctk(&S{|-pdEm>U(SoV9+Y6L;< z5qjNgT^XBir3nJKH0GkNp!b{-gCmq!9ElWMC~G)ug#3j%WHmkqv1l6ygm%3J!nv zw5JGVi(vi(Y4ig%RsJR8{RLz`8iVx?$j^lm+vWfuJCCCk6f6o03)OZ{Zs$2i6!(L9 zG?V{%|27A~+NK9|BFU928D`i5byG|{bNib&yr7Y9HWu*;nTGnU!MgJ(_Wp10${-9d zIMUew?y#=*Jh!X8s5iFzCaytudac~_2bIU6~-4>5$Zf8_!b)rqTf#J`tudZGlXC9lP9a(U?zgubO&8n=7 zi(s>Qh}dnq$R$tn{4}q5g83O91lvOvEDAt`JB<|SxDc5du?J&;0Dg}dv+cJ`NjnPa zfy@feq0t~YsT2u@=Z7c#$fPq$5_E`Hs=5t$m<(uP(xxbDbmsa)}i!O#RB=g#hLU?Y{3qKQ%swg9u{|cC}GHo>lAEX5(1k zaH8M9xj@v31Y^7fXdr=ZmV}nDvB0+drkjDI^f&#>)`wtvN8Y}=b>FE9MYqnrg0rN1 zM?zX}NFe6J`ZYf=4GR8tp1;ynF9p)It~6$FD!WIA;zQtT<1)dK-Ic5i=$ZIn@>jlRs^AI7Z?-2)KgHJ6m9t{2~ zym~DKKsE&bw-Q2m!;{iYbHR8bbr!ava}iJDUt(>{@e_`MDX=k-E4+eXM^o13LS(@S zxmOruAEG#-sE93`9k!NQrYP3m-&<>t?vkdQag|@VX6OjGIEnAA&O4!_nG)=Jd+g;> zb;qwA5^O%0KCr_<%6{MLc!V?VU@~|cayjsXT zCy3^&u{4LsR<{KRJ~=hCYm=(n5#spNe<3iS*Ad>-CYVll<>`;)bYHZ<b&>fef+YV*-c zs-B2g6oyKx$gstka#;T?5C%k?lPXuUCYR8_->dnk-Il4v(xC_SM!kj4{Pf7awzs3peHpfRsw!(QW09ije|2XQfUt&qJumQqf}h+b z0z%uP(Ani%819my$T(9rYhtMcHF*CDvIM}K>V$^-%=Bd{<=1hO=B9IqA}rgWvz-~^dk zp`NbB#zt0fxrcUGjRfhy=y}@k^_ztNu?DnIHA2cNjXI@VYXGs~qRbr-#~{aMajGCV zRuE%7wieh#bK>yxpuuyx8}~^~oSB{q!~|f6OTog3ttu3G0|XSffwS#a`hBSHuFxt5 zrmhCA>0ZMPIQLmPwdo~iP;Bj;cz5nVEOZ{K$}}bmR_Aum=dBP09Y-VX6VmQ{WnKPY6B}H zy|WYYp~J7!ye7qUDf06_D`;Trfa@nQ+1`Sro-l|62Dw341TX|2P#y`JKd;FmBuKLHP!fQY{r(3#v1ops#FEf2NTu&&N+z!UKP?DCRtw7w347=Q7Sc(rAwzcZ z{Nam{m-{G(Bt!K7Ak=~TA__KoxZ##H7x@($Fq?l)ofCH7X@#Fc78Mn(xam;enOr2tQ5eFdj zL#tIkg_5el8@G{`|9~3gM5;Z2W>I$3Hr7AiZnXZL=s{5oX=owUb|7)Wpof>?CQKv~ zD!$l8&e2k~T!DCLs^MY7Ss=HT!2}VceN2)(JUn?vPj(bOhZ}<<;{-XZeW{ivF0dZI z;f$~rJ2eM=5Yy4W4xYsx#cGhT2j&R^%Y{^tiwUF$*QFsl4WR;s{jS}1B2UE#&>E3c5APH*fSYTzp)Yy($qIO9zpVP6lKkt1qYQL)V(aE-+^Xu z>()QL;>3w-7s#=I^&ndJy8Y}xPt*w9XeA#TA{Ih9=x@mVE9YRHDL}*qm?;T#?@*%= zh?kte{$EoUgw2o?HTKU1i=gN}axGd)wom>_u~!2Lmy+^>zB4>gd>x1|UQisgZ{%{@ zt1C1^|5V4K>crl z1cLowrci2!^<5jviiCrsKf(2q_MID_8F|;`)&mN2FrBp3($3A&55#`*d<3Cpu$S{J z-+uNL#&%%OE4->E+f;4hhUrZH<*61`j{dZ8dq*;tkiki>fh8qZK|Neu1d|HwX7Zo@ z3ewchAnq*EWmYq8MmK}uHRl0B3k)Pr$YU@l-~pS%KEx`;vz+9yql~qtfObL%L-Mpg z@!)j}sAoukwr1PE#aVR@*s^567tRAjVfKMzkO+!3+)#|Z0Q#TL<$FZ)`Sp^@T#G2( zJZMxoym9-E@)7<-jhfDNOie)CD*Qt@u!znIdXhV+i91I}(?WR8SV(zM`$$SzHXKY7 zaM?3B7dR42V;wI+2POKyS>VV0&P4^-fGg?Speoz&e3}+VCS};XoMJ3BcnEZ~E<_Tp z0NG7nud@&)#bA*esZLZ~ia&fUQ?BLeqalmSqfAiGHdUpcwFb=L!j=}Zxs+2K?MjMw z2?78AS#fo0AH*O{j+cL{fS^nVAP8g@^frZhePk8Ez{>wOMz9Ky!Luw^9Kg0Q`{*Tz zF~Hb~2^TFLo%oy_5$de*?`0HZXauVNnEB#T`sH_wk=d?*8!yO|{}&Z(*tNO|PK`S( zr$5lOO8>4qOISL~9Bx_YLbVw^=gJP&QUMt3S(6sb*RZ#<3oQ--y@sHHmtY=Jh?d?A z*o>+hvjPB;HL&}MzeNZP%2{Oa3w>ce;XXkby2yG0Kl3p@>P+v{X{&EM)gFwIfCoP6 z;XU~oTW%?TY`O?4tkCCaeU-2FdA_a%pM7Cd3#DJRzP?y!OeGmi=wRA?+l)BaS_keu z9hIjTF#r(rENCcII|$YCfJ^PyCiH@-1Bs$THpsN>NNq%h8h(Z`Z-+_zeHOm#uv66! zu#SZ(BP~uTg(xr=tkV!X@@!P$L26Nn`T%kpG+ljgB;QYbm|TNMRvI`o?d;4v7y;8o zjQ8nyS^VJez=610=<}AFqcI29hrNv;v-Nr^XBb;DJQ5nVK>;5`R8Ab$@Bg@v#%-nK z+x*AO_gP)5rUwAhs;u7vD`tK!ic}wJpQD3`;T2#nHo%R9@h$g%3DmS-u{-l?(kTLS z3hBGL*?%>Xy+(5EDDSTLUb!h~082|yo7a9$Y5;-0VXP_P&A@E*uz9g%3>s2E+zDu1 z8wJR4K@a-H-W<_AydN2hLWP^b;=EM@z9^ML@<;Q28~~&CN2;$ zjbm{=uX>1OD;P7j{%-{JE5QX%<%qsCbdw7Rk!S{qht=mUYX-|aOIL~;`p^jp*rGc2 ziHQK^wC~&VtWzhVFb5Hu(F}*he*`I}{kkv}0Y=uQqv47RY--n_$!p~EhI7C^62&Q) z)&*?U=2RY1_>kNkgL(~5l`aZWRFaOCLGHxW(u++0SR7KVYE5O7HV{KIJd!Nu9?Zi! zehlww$*v4)6Z3@`ER^}`Z%(}m-if{fQSrz4s@9L%c<~m4o|`FL z2iB6Nl)C(Jx(AznmsHkD4Hztz+j{(y8jotlZ(vb7fxXJNCz#$viRQxIn=~qEv@_B@ zJB~`T)uWJkG<0V_%x(STl*;jLW1%=`>;w$t5Wl5A8rqRRqVe!Yze6HL`>)fALt}PJ zibkebO0~g^C$tNI(50xP4aAf_ga|bZ_7I7LF%ytk7BCXYL zXnVQABuI=QJhe_fRVDeLcfI~1eN1?~IMWss@(FgNWoL`eL8i-g0%A^#bVI+2d}Q+r zGyP8fIO7;Yn|SH-&gzg{$u`amx(lP_^qgv1p(28UHwGE#a*YsGPs*@ry2p?is?A22 zL+l4n`aRJMXWslVH{7i=AZA2BUyM5;>6UFVAo}6%|!69*V25xy?F^!XDa@om0zHk@A6|mx1oB0 z^QL^Q^R5Qxt-PO4B9M_hgWa;xcLgaM^JFuWg|>%6=exq;|z25*Vb1P@~nzlQHGi&8(?>YIWJQytgK0Md? zuE+U}XLgi^!%j z&}hm|To4&dDjQ)*U+$tS4q2FXEll2m%U$qIR`+1VeWx8}E?C)>vGO$K>P2}v)Xf{% zGXu|?OHb30VBdgn0Y@NUP4_tdQ}u(?ZGKDuk9cnS+FOLLQKoy&PIf=`w9t!_fBk_D zcN=*#r-)^^NWWXQZnec^SK6b6-Ec&S_%{_RKabq_`SI_)HBG4pPV3?3<<9DzU}^n| z*hv4pdpQPop=Eb}Me1V#2F1#3KJXK6>%zJH$4p+k{7Oz;@OaoXanM>9)=?oT(-Hld z3?t$e(3tc<7+W;j+T$ZKT$Ms+&&1zeKSsreB70?a7 zE1?ZM)LC-L zei^R>3vv3Gdhr)Ck)rwN?q8y8WFH_M9fiAJxWT(Q;Wp&Wl%QkWZ)%cVPqFj5)t^pe_^S;UPfH1I}<^#mlZUWrFCFgr7bsNS!I*d%{-i0xGrJ}ida}ao!HT2)k6gVbdn~W)VIlJx>HSBU zVm9HF=x?T!X#}36`lEz6?49xP<-_^|Qm2lgI&WhF3iX$3UiR5brKNV)d83+7qKDjJsX~i@kl%yX4Gr^dL77k zBJ&Yx{EsUz7<`i;AR}1nKA|-*b>?CF>0HEO>I|KmkSApu_Y;m92xC#Jk)6EaOTu8D zPQ5&Qh_2YZcORXjV$Yq}6D*hMF#R#iGXt|*V3Ra-7Erjz$PFn&7a0%rN~a8SQn zi*|p*J(+;HW!IxsQh*7&r(sAMVm}2{Dt<@j_njWN&H%Thm6fFeeASV_{1k z7jZYh*pY-ak&ZgA0a9K*mv$!a3qJ`#kzz4B#@+g#o1Lr-F0Y>+-HFu1;z!}PSQFlF zp0MCg+MY<~Vq(3Cp=lUbxt#RO)TFoOE+X_p|1{ zk|mBC_!L?o5f&y&l{}Splx}K6qMYc9t!(>8WW3LprYv|kNA21>^%+_@QlNFN+hcM^ ziwQ5)KHoFvOA{b!Dg;PfdyfKHNM(tkRlsvxsThJpIOjWJSaX>>CZck(var7*_M3#T z+=NI^$MclAUmexlfv=gK4`*vVy+OC-=P#xUm}-41aQ~@65xr zcUb|SmAuVoew4|kktD>KhbxvgDVAzudt2vQT6Rn}ND7k-VBwfb>_A1A%iFC8p8N<5?Dfz2af6oQu{-X!H$R%S z8;378%)9!;7nU~XUff3a|44iDc&NAkaXizwSz4)ZDT+v;P_`^nZi{S{?Au&xvX3ac zsasM)M0VP!Fm@X2+?(u-7RDCRFl8*EA%yRF&1Q7F_jBLB-yc1int7e`-1l={mnuW+ z$!;g$>kKavu%A^z*BRck@e)hj%r6x+%i-&~ zVPnz0kg-bksd87d={42;3Wue5`DLPt`oeI(K)SmXgBb9w;!Jh+5%>!DTu--$&KTI{fQ zeMn*V`X6v{CUX)`WMByIyG|^3l_A_L^qqZ(!xRXGBtY299yvYDsQV{}go<;+a=*=I zmFpa}hTq!usVt##(QkjrH?^&Cvz;w&x@}GuP5Q1O&RPx!S}i0Roky>;&QDe@+Dg9~PWK{`fjw{dH?Q6Oty>BPlA7)9Y@;Co} zxfftCC8xp=E$Y~Pc^ z@?O(^&~6lXS(OvM*iG$a;CKr8cQg5Qgc^v*WbR9q>nt>GiFRx|c+}A{f9FDv{R~Xp zTtAqD7-(T8Z$Q)f>;nVcrBw-{H1$ER<%^;RvWO6bERe|UUi-EIHvzoOZ;Z%t^ce0= za`~B#x@357{h_hK_ueh!MC9SIeRjr)xLqAF&X!e9xe5LYl=fZ+-$dA$SDaU(*O3+% z`{T%Nm}Tw`-jd5+t#Zl|IbBJdD!Ln*;2nGiyZizR1BE_R_Nu?5m_A4JHH{5+8$VAg zTdmb=&?I)LEuEo|;XFf-U|4!UHLvYw{K300JTnd(m)|XX_Im;%81m#!LnktptQI=u z2}cw?#xJsXvrTf~b~Mai6Rb+7bwij)#>i?EXS9XmAJcsOUScd7`Ev97lAwge$yQit!p14#w@E?Uo? z19Bbf{VM}1n(Tq79t8ACVn84_eRgSxWlALO9-Md#`5U^|<#kn;6z^6qgYKK}IgY1a zKw~&7#|Vb6*Q_&27F60a`iItK9vJpdEIFg4B31lux|jk_{Q?f-^(m=Haqv=GGkm)x z-^sLiC3%8wQ%kWFp=fw=4jViD&cZQa4cZO;UGR*Rd`ph6E;i%v@eFJ)#eLJ9E$`cA zBO~BJ@;>!XqZX5lG73P*yasK`u{W9tAow5%1+BZ1Uvi9UBGOj4aC&=vi^Euw49dXF zO>aNet#}K+rbup#&L`K}#ul`%PDLJFmz=oq>*Pn>KO}T%g-f+(!0GAe==j zbHpbrg%)O?VAxi)J*;Gl$iZFc-uiojiHVX!!$rN1JE+7WL9W0`0-yWrdGA(N8yf?= z#3pRtP#K}Mb;BrdGbEX)SvG9Ga!h;Tc8s^~otM_F_?+ao4ttbIbIJs;1a1xb;l>v4 ze9JRdn!drWttRHi;e-8@C5-dc#qokSyy(x|#LMYEahADHX4F&lPl^z#zYAS-AXZvH zmS-9^r&d=@N>Q8)2ecRE;$Vj3R5N^JJFvTT17){EPB6lBh-a@rbeRAychkLSn!6>w z96`9FgWYwIS9Qi+^qM+M+4?rdU%5KarZW`L0CVK!wGJw7ywlR6GF|4G<9zF0ezI30 z*`_eDH;?Ssxiw$)GP;mFNGO-l^A#eh#HAUu2u*usJ0ElM5^jPI?*jo%z4PAOC)h+G ztM{{Vt^U~La)12zBEcW)zi~-BT{5cQeX9Ecrs?p3+y}!dO)DY;LdCcc7pnEa*#KSO z>j6n2P1Ka6*t$Rrn!Xv`d-FAgFj@V1TE-CT`6x;*_9&=kSZxCM@f49MF_i90?5Jte zgaze`TDRjz9>^HLj4e9_kHXw-BoB?s44 z^BZr;rorzd()oqO6wX`gJV(T^n&?93#Dl z7s)qI93Asc1wljlF@_(cyO@o?fpnZrqVWL}!391gW#wlWt4gyW&*iRqz?Xa|&R96n zTGM(*FyUzw02Tw!=+w7b=c`uaMfQ7NG&>oP2m@sTL&98>Z|hvDLr1~xJT-LqLin=J zCf}47PK7z=`lgdfK86YJVl<3CWXzO=lf1Und%yl;?4?T2$;@# zcZ5xinjW&jK5_$vsd{#kh8jq3PV#<|j^YfftE+4O{MjkCPUqZcVBQW;uc$z{ogkMb zNb+t2ZfowX#Gle!QuEwo-%6r);VaDbz5+z6b*pW8lEo~l&r8(YKZyiCy|w-d{)Ias zj&RaSVvLe1oQ?adMm~Ww+>&Itv*!r*S*7&goDh6!0soNvFsUn34TcJ`XvzqTuq*XP z1N5dV-g{Z??;{r*Zk+aQ9eOy6n)8j5^@xvcNCYRP1*Wm%_R((g$E^0>?%RK8wooS> z*tFOvf=}VVcYmX4EXbCCAeQ2C*6oZ}3>l$CG-w<4@vP@I&IbGp%Z>N|ONi=}l8xD# zgqH@6=^G3ynM1zT11v@ucc}FTnf+~q2i$fx-Cc?&Dwn<SY%)QSon60FQPOeMF z`wU{y(uxH`H%ev{@SOK{M@^2Y7&mqaWky(R;;ZCqz9Nvxca}rPSY%>(%3nWd*~u}1 zaH3DKh~TfT#zrXkoDwr7pXhddZm#lEVjQ9IlKlNHahP)EoNv3jf~|<{gUUWH*d8vs zY{%wO=O*HliW5_vfVph2Q0b_&K&NNBb3Lm|j~|1$iyq^+d77?g@ev{JddaQWC{75^ zd*bOkX(kc56&>JV9vs!PK0Zt(0T(5xnn;%B-FsH#qbl#)?&6{0Ulip4y_bDk$p!8S z9%Dzodu3mphGA>%ErdrmB$1jXUF^`uC)nk!H0~SIbp=N8mbR_haX9x*#ffgR+5t@wk^M=WEcG zTWbTTFa_mEVNL?uvZ!E-PXhrd(~Q=;@GavCvyDz&QrWww52y z8DrdicMxUq#dBQ5%5?IF0Q_?AKKz8jZSg(BexJ&&yb!f{UEI7-_KNf_?j_&T{t4+a z%n)E!?FZxMSM6cSb)fdbTaY7$HY8M5Y@bTp`^=$uvq+nCRDXY2sfjkk5?8jByk(;` zFeooILZMh1l*MWoF|E!q5deNhaWC$*UOfPR3x1PjIv$Fvh5S;ctS9bfPBLl%(oupP zWf*_TT}*KCA9Y*cKHF{D4`Y@RCR9ob4N#kR4Ee>&-kp3Mn@9fr{w?oNu_&#uxtD7N znk;=ui?{*;f*{+WtDjyK=WQS7l_ndN-&Xuy1r{p)dAD|rEP3WK)X*RdlS_q^ZBKpW%lD{beCcb$5lmYSN{G}#!tpOos)u<~@v$&tM^ zZ!J0niYpA`=v5wZS=4|EY#ZrBM)-2Y#*NQp zup4>n=UR1>m1l47KAaoucES3w-J&}C2-#fRQmRZ#ZO%TKbfaa)Kg;DUhn# z5rL?6tNkKq9UNq%WqC9xf<*GQ;-;uXPH(Bl;`vR^dt%T6nohT8@>4-1Hv(#;LHHJY z5TQ~sMHx%Y>CvtnH?^3a8d(K`|JK>wtYqAG_<3fL{Y*H*t-0lnj+5na5L)+g06b-O zkTdo|2>0UdC4G}y$~3u_Tyh}FD=n#OyX8XkQB1HC<*-K_;ZMYcn9WafT?HbW+}`OF z2oMDN1xUV_Ehgeop3#%ho^Ok-G1r^~{IMG|yvH1OpaVIG-SKgpVE}(`-GOKQ3qy<6 zakF=`)JykAId?rIoA|j|)lFH59<)c#m&K)33Y1%7ht1-g&1!=PKICE1DA|F^-hkFw zqy6s9Bf9;QbJY2@deuw7984O;()k6ss@^%4jJen-7#i%X;yNd~F<`@M@h1?Sg zHbGu-sZ27^+VOPtZTN^_f}A?gzI#bZUIuR;Ug^Mt$f(L*5!Jzil~j^e)y(Vd+pF63-$-WYkBI6 zWu*yq7J_ff#Kk%mhb|{u2zuSgCg^@RyYVCU*UE^YU*je}{;IH~yxG$WO~N=^2N#?9 zST;dXbdi*M-y>0N-cSA;zFJ|50B+1ZM9yL)v==VuHP+EY`l28%K#+n$`a9=AqxznLSH6g^WeiYMa&S)t;?2 zFsn80en>Xkp$MS1=zmjS;XZu|$&0R{lB2bjOt8+8yYW^oRq-=H7G4IIOMN3(g1V#X ze85`WGczJaD=fhyN!BuVT4@tHc{+I^9DRHniR8TSYsm#`GN+5S2%)r)-2Fc75oMt& zyalr~we!FP-sHE>jpb`w8{0&Ou>!_wM^ z31t@3Zwe}0tb14}A%Z~qz_>uE4)Gewiv#_(on&ZBn>8*Kl)}mo{elUow-$k-25vG9 zy5dgQ55%?&L=9QHV&gOG4fwcnM*a+z?g^&9Px#8HN`Lfu$ z@Fx4Z?i1;`h}v^zwT2i^$FcFlG9M4PnkI*Tu;@YEF)vATg(t$Wzc}>Tfh6>@H0f89 zQb@c{$XmUY^C^!gj6j%+*zS@3C^61r~)#1c!>e@M>Kt2sgXu?!y+|@=Vf;DW*LhI&lxE zX) zJgkv3N|Gkj`!pRkD4&%!d7@N=_w-tS=sviJ8$%I@aT16G^u`3{h#t&9V6F>zQT+e% zuC=W7U-YXdAJKT*BdtMBlAaJKjv-Zr6~J!~&*j`d5Pr?EpKPCO*ZY{VqfQ`(!rx+> zI;++ZG`+drJG<%z#aG|hx^yaDHeoU`-@JO~bouG`!@Hg~R>3GQ>TPSaYjwN3`2A*7 z?t8{MTXYw^z{UX=4tNX+D%Upt2if6|!qdQ?OmzaTtS9_+IH73XEI!|&G3l`LVY(0PlGPbi6D< z(OuPJwt7jQChDWd5t-CTCS4N*02{YvG4vx;O5`%cn->yMf(dU>*G{?Foh~o6rv!V6 zo(3PAS|qV&pS(|0EV9D}PTwZk_x9fN>Tw&(k0J?3I0+na$~xIqsfMxzsmHkKw}}@p z0dvaXgSJuxTv4`gsl;mz)dNwJv2ppps+MN^2OZFc`v52Kd#%l4sz>-_d>W-CZZ>@3 z!n`V`#J)|nnljaPH!0sZ@|EiFTw8p^0c#OLUeWxoacTL1S*@Kp)}nKkPu%7fpS&IcD201YAF_Zio(V34iTZ;jlhaAlE?6 zHZ;k&_PklGxtZEa+gVVcTu*+_z}rsxG;6 zd{665n80Pgf{zENEXWspz@aJ;l^+{785fsU?b}>N@+n|ZQ`|1@`V^X9*J+ABl6~6lh&?(yvnV{r;_aIe z+4~fOR!cW~ZoBV8zs4IyHuK}N7>B4mZC0xb9F|&YL9(lpEk$A@+L!xj zDh*Rc1hILq;lNx&*b}3tG7R$s*{M-Pdf>Ic?g%RSv}MWM;38IlfT^h0C0bDbO+m8Y zxiIV-Tk~?OSi3g$x)#|s zi=DnNI8P$a!34+@=LbQ7Ajm6k?-{A9aD0a`+#~RgR5JI%MaT|V;K#Zb&uBYr2V4{Y zK~*8eqy@ED)~xQG#C~h{1n1Xp?rJh4b>T@x;g3`^>|NS>{QoH8Mpts$B}3ScItVG6 zcN{hkyz|whW8uZ{oJ;D&FpBV^{zU`->7E{uj!7?AW@aW{+VM}{u&a#nj)@5JFx@~S zVL;&Z2E@qWtW;)10wzY*rL@t3FbE3IpF%_MWzdV}7Vor@xb)|K3i4NIMsJ;I2kPc_IBN)hi(@xrhfGEow%mYDiE9b&!#U~IzEhyt&oYdIXD=#I$&p9XQ+!FzdgheCKnS~zp6Wo1gf}EqMhJJBZNcqB&x8`kHoZ39;m(NU zkjpSRrc}~DH1a8hbL9eG$sg7jjVpxBxqKOE&uV|7egAn(OpGJJkM#ju75u9yp(};<3+wqu~$!BlcoAhhkrW1&V%x`EP5Oc77jPAf@6G@McwRd6{I?=d$>~hMo z(#ku9g^ekwRA)Fx^KXcRm1iBG?)iHCvS`j`OT;4d|7Rj_#m^raf88(Lhr3bH_YaO_3tF6yR&(t}hsca`+3EBJehFU1K#=u?u(Tvb zb#Nq^Bab>>bAVxyV$nagUd5@if2D@k^wrUQfRr;C1)}I@ob^n(LSBT8ZE6VQP%f4i z1M@B%LJvd0RY0tKSc9HoKYuC&u^=Bi<0$h7i!d@eScn9$a-6S~A+zY3_blWiN4Qkm z(!oIDm%mt2Rgj{K!y=%9IYT?o0s0t#_(|^BcQMTn9GdG?68LW2J`eJr>oy(oa-tF% zd~87ijZD05jAJg-{)C z%kf~;0>D>|Th4$w5APNwb@kL!;%``pk&a;7!-`Eh2U<|kEjjC@@HJI1MD)Y{2xI}+ zB*Nz+oVBomFtjZ9*|3%kcAR@}1cMB8kRkPk*p=suhJs1U#N;axFL@b!N9S;Wqgd2O z!l4|I{}y9Rr-yel)bd#;-nNvdDx8tI!$jcC9ww3V%-Jegp$@^hu!BL+6Z-9YTd;na9{ z4Vsg)*YC@poc5yI03M^(h+i1;7zkA|^aBGS7T}WM@2IHB^L*h8bi7m$%P74m9T)%? zwb7rUeaOqef!7LPMI$02TGi49cqLh(gy=KG{WLEVH0IPEj4~Vo#6)xzY|LG+IdsG+ zFtW5?1vaxnA{wng`*RmJX!Fz<(C8mkO2*jHG#+cE^?kSs1j75ZxDMU7W)1`ID(VVB4%E-!F0K&nt5O-anl=HYS zPP=0^;^Gch2W!s7Y@|tB-YJ|PjVZ_|U?Hx36Qb7>M^7U(07y!9=zwqW9oY{SjnPTa zJP$+i!{I6{zZ#U)FG~?P;V0=TOJ?K-r2t}2GGCab3+;- zz`zvp+;B~i!{S)=#@=2BrYsIbu@m)}>(f3QVxL+k*pqg3Sd5Z^FgemZH>zYc4Ow4%{tEGUjjp8`|7Y=}M<$f}W|V*$TAm-a1C1)58iU z&sYzA4OCMm)AjD#0q_s*U`wDQO6Dd4`XrtletCs=YtrsG8r9LPaVV4H$ewM(UQyrw ztaZ>B)A-cMf;Rmp{MLxyz;G;3DD#3rR#?+D2j(ecLjwGjqsF}nrN8zuz@k$k{UF;A zL!2E%qr$@GH1D)rm6v^8Dz0#xDi??cu*Ma~evljR#L+Wxn^p+u(wZ|=p`5QibbQPz z7j!oh(mRbNlc_8W-y=eoM}~NbKorjuZ#yh28;pBhQ}ZlEa&EJdDq3Ram4PqOak32l z;7-B*0@OMTHp}!mLDXb2HXY7(SZZ7Sx(PzAb#x`6#W!zwb=|K5T0V=(xz zxQCygnPu6fXN|UnGdeoWq+KoEbor!$viCS*2ZZ{;%YZ*5b=W(4t*TiQ5ew(gF@r>o zZ>nkCtflaPb?56IrnSYf* zG~`3r8@hZeKpsh6@gzOaTG-OIA3%8vh}+kM^!RF#UKu&zPo!&$Gkz<5IgYLS(xn(8 zL&ZsHGy418R{;^P^%T=C6TKp#Umt=?v4RiD06Rx^e6k7R`e_F7A(6$gaS{)3kk&5v zG|nOW;jh48%ty|ftNkYE%u?9|F(4I$h)%I#VZJUWTS!846_23C?-On!C5rG0Dq$N zR6_cvm(9?44qYTUxlb{cq3iV4y-^LuP6;>Lr4FR^5B2a&E1&cVoNVF}`;v{A_P&d! zbm!i6ygbdc0Mrj4S|eQt8X@yIpQ$UzM%bK3VQNLYMJlQlC7Kt3P=A46_sz17_);fk zYq{O?Mzd9P22&RdFTw^}*ix_f=g@Q*hSPYiLMF|b=m~05vA7^GvCTK9<6dq087h{A zN{je2)Z8=1Njs;_i-8>q~57fJ=0hCeH+*^N^tF)@f?aZ19qD3AdvGgIYtpc$6O@s zC^1rO*y|=nXS#0Nw7?CG-Q7=Y-}l0&{G12@APAe;2gEl1Nyx($1-vJXMA>wajJ@F; zU$^B6Gu9o1%^@}VAHKK{ZR587RFf`DTvG45-RVe3XMTwHAi03}un`!`tbmR)rK;}h zvL*I7*x1DN^r$hq)O2%f&esM;_+z#JHIvIcwtGce8+p&X{szkummC&H>zu2&^!Z$@ z;5wc2Ld!xoPcaN8mCPh|Rpv~Jk_$SZBnrQEB#z`{X*d+QH}PKQ9$QfNg0EyaG~Sc} zvp9M#KLYoGtDfeX06<7_Xu})36gS2{<>!Q?`W5G1aQ)3HB2!b$Cr_x6_xfD+-mML1SdgzCaMH+McmECp&vFAt{~EiVMeO=A%yPo%Z? zrOAU}RQ+DV<*txa^&lV@`2(ww7JGOH=plb;X`sD?) z2|%P@;XGOriU-~oim0%nJ|lk6?xBtR=lNf5%*)2`m74{=yjGXB?OKtJ-JNl2CBbMow1}fxWI31`hA0TO5FcbtbIBk^3yUpv`(JDjPmOHQR`fWaZ$`@g#E_zCSm#37e=MC zkRb>+^?JKkMZ+6760%K7**@&>tB0X}P;sX2ZIzC~uX!^yu{gJ0Bq#M|{E&rDL*hAgD-I@4cqMq~KK4UAF$8d-GR>5T*d3&#O(mTee&BR<&TCaQvF57PuQzJ)4% zixZTVx>^mgIm1xj6HDJt6M4XrFldx+l2=R(BL0mK$Q7~jgjSPe07Ih})A_Ibkm?8d z^+6YCQtCJ>&%wbi+LRB^+4(CwaKY(6?UIb{rSoRWG%Ou1GxZEyT zUS4^qX!6Y^dhnOug$e}ODp!+(TJl;2eBriFpm+!h9Oj#@^GT;GG1h~?O9s*0q)?~? z{PdPHv}iv*4IwU>(UObWMo)OBx1C{>iWtJksHP5_fnzMojh@&)9Hfv5oA$W+GM%)} zF$51lNy!3;?WWn@28KsD=nR!fN2`L=m_Mb%|96_ZfCGo8b((5wbk6jO{GsV1nSOv3 z_Rajq0XNU`vvqdAC_ z?5!V!jJeK#leRo#NL&BPW!7uy&$9$$Oo0E6H?_4x`yOEp76LCPrrW*v)R1td4AMUQ zH-HcWBJ3SN3Zk~1PF$@jn@zNFtxRC(yRtS;=*q@IJuqhuYLezA0aR|}(T^6dsM>#{ zK4`0eJXa7brEqX1@E3}J3cA(O{GPH6^kz&E;H2{^8UMeSi#re18%GlE@&U4M zJd5}r(OV_u;XgT%i%f#qtW<+&^!XbX=RvJ|03CFs`!+Z?_;@8dNnbf#i(JnpyBafk zgJm^`{>hk$8hF=%5^&}h6 z^BL>)(x-AB*9X6}8cCMS6@bPCIBdM8i}sU^M-dS;RluEw{-39do)^ZKg?t~D^jMsy zJWq{^r}ikP|2V_wdQ(Z{usdC6MNFuxfH+b!=Lf|#rW0qZLtmfkFv_ska z4sT>uEtSrrbxu|IPCLYg-3m3k23`{@a`1PyXY`1`=WtRB}-%jc#A5+CZpny9xqP{vYNi8@HYLu~oEM4|H@OX7DzhQUPG? zMIbnt(6b)QQvyjF3lvnk{5y7Z5uypqLFj!wW{3w9pK8>Vamc_+ITcl7%2X@re)g7g2PhjtIE6p z{eM}X{v5iJ`_kg;WJ_^-)Syf;q1nWQtfE2wiFESrQ1M{a}`gXe%tr-Y=|? znqAI_Lrve=j?xHl>Pv^s6qwtAD4?dQj|=y#6d!+D2d1@68I%LM_&0Zf-T?eV@8;Iu z7dE#^Fc|h_J#5d~W-F0s?DGMZ@u_ns0F{%TR_ zSFEC}EctZb6M#M#FPLIl5}JuzB@;LkSk+-qDJ@TEX=DJ~76uhp9i>6Whdkok435%- zg(ak42?(&T$IhaC7!!JIeq$3f4PMZW)`*2{_s#JVBw=Hg>O zH2sF#8S@K!Po+Cw9h{u>Ji2Y)^)=`%?0+z0MLKLh@fNFeNgVPxaJ{Qr0qSQ;LPo$} zd4XtW0>-tPSB-`5dB1^KD<&tYAO6XygPu4jqLJ*OaRcfKAUD1g=rstkGPry!&wqe2 zW=p+e8+7ptG+5Ma#}fm{A9^4i##j&xCrJUY+0s;>@rp18l5j=rW#W7Fj@WiFqe-2! z2))%XGo%+FlMo+I9Y6x5SjDi9{3~n2eMHmw!1RMC*upKD!aO*YXAjXOh5TUgd+!PT z3^5V#Bc{MWAATgrKsq$mB13dX4YKp>U-eVu4M3yTFOT>8j>AT13UAK^I@O@vYGr@U zW@ltXM5EMsLk0n@U_SrE*wJGmF`K7#!^%Ht3$K79!({@xxnQCNxQDT6(IX5<(TCx3 zM`dGpreD~kVS&7-LS9WHadVv1GYLQTj^r?lQ8R45u43nn+)R`r${u(Ugr*zuT)N(x2FA80oG%dai4+ z4D`^EvneBYspdbK^V=pGgl%A?FdtmcK>crU2M=P;>OB~ONBf?soSg>O!3-RqUu#Vb z7_;Ig=d3a*U{Y}#zbk6cf{m&1^zVno(vAKFi(wfLP({?c3i=qAF{QMt1XzbLZK1H? z#zTH8j7Wdj->%B~32h;_v2Hg=SkI-Trdri2^e0{ba=m@ETn|*>MpF}#mC6k;%piqI zpr`v7qk0UHTkS{kQW4_fAiuu6^U|eD@34KRA?!L!LzWmp0el9!r$?Pa0k#jV%=vWX z0tY(D>C=vka0(ELy2F{Lh$?B%*EKa@W{A(MxPX=Oc?jG^m>O_-qn!4NtmOP>!@=Mm zashT*T->VMC#Ni6Zfb_N4a{H`@~v6fopq>hMlzjg4C(0qi_GCUA>{z$HzXs~auB70 zd11UdYiAe7#&rr@DIpD&ckPiMm=wy8jM@}OJ^HSh;pCuHn*DBdp1Z0rKt)8yAf0T^ zJM9YX@m9ygh<^7}?PlmsLfb#KForVoyn)Xx)yrNBlR`kECUWpB*hs?9 z=JCq(uQ}*d3E5s9bSvx-WXKMk3wfK^0#|uSgej~g>}JB#c#^MF*6DT-C_!`1;d?yD z=ykPRdl+LfNEEQXdgJ#_U0@kk?AUJdb=Nt7j^H-J#!vL7A}CZ2GU9oL%=r&+u9NXK z&1@i)VXH>HAcPZPx7AO&jeA{bl4EQ_Cog@*k9@p@es?3tVf5Ii_zvV+mY3w=!B`EL zKmBV=f%CFipuji-7~7{>go&IkH>7iFWJ3nJa&;A zT)wcHUknjgQIZgx672o~>zxv9@Aum3>s1K8S!PNz2PoveetkC9{j5b?zSga#OQ3^` z%z!oifcvTpkiH?S8@mRT{Ax%vYm~R2Z4m@Gy6Eqe$RtH~nZ@m|zNTs2n%n-WNEKW* zwqkq_VnQzbCj%a@e;qh-l10`%2C~TOh^ph0-Nnw@vyJdqhd^>A*L7;Z18%p{aHbLF z|Ek%HLd}WFJTkO0y@diMEje!mRv!m<$Xyy4s%Q2xL%=PZmwvjw!IpYb2^31bfiBUT z(=0SlmY-U|6Oj%ky*8Wd0j71|t{x`s9V9)#Ig}yut#7xp5j8Q#d$J|+Y}wxby9Y)) zvQL@1stL$O`liOU0Jj#)dFyT)=-{lH#Z}r1G^3w&VA;84^3EZ`I(&snP<)E3-h!g=%^i)2#S`6G*@05vn6C}K5` z!K0u$GNqNjySxSUfYzOhp=-e1lAl<5Bj6Sv;AL;W%{~RY&F(@kT+DOZMcbIAR1D`a zY5~wpsm-$Jf$@Y*%_E!Irs6lfOOz(Z6%SX94S}Jp5u#gpC)v+A+ICQ?=@Gu9=2SMt zZ=&yrCy)CDazxcqH&MPQr$38!&lR|4F@lA;RI<@BfKbW2(ZURGbzZ?o^Tao#>1w~U z8PYw??wgekZ4LOsd=iQ+I#4}kZ~}7!WB((b$;FE zT{*21#T%R&_T=9nM%#J?MV}np;M&tDF_+U5t!;KusQcn0L*>WS_O2IpQYIT5O*H~b z_MF(^9$r@?_@=i0=z0b(K@uP)Vz~0Jm~H%1?v=_u&42Oa;;VfXXPuVKgG%n)H9%>N zK1h2){3eS!9ZoEKnlqhXVzd76>2Q9E>+SihX{(}2=Rhfx#r$}8)kVvt7cNWnqhRtx zSI6SI{lbs6W%M3E1erhcKS#ld41H6Qf*O)KDjxzq-QToatAn~w@u05MS?kW2H(6C! zKCR~0ME%9zCshthbze50dtB>nj?!xKygfBms4jega3ZWY`$@IEw4xC4oBEp<$2fTayOIx3+vc6vfhx%O-)jc^-LLS$tB@N|{W@6yXK|a^@DO3_MBJ@@BwP zvP)#R13L9wP~7P~uuHgVgL27u_2P@$i9LZb{_4b+ZM*7Z8l6rx@2YbXO_L0|qBb15 zAS=joKwUFJf4L>jM6(WIbI5k1sb2Pjxo~fUz99BijJlrx{Xky+-!*PM^`5j?d-J{j$?q-)AOdl2nEFXA<9j5A=u`QdxeW+>TwpSo()h zTJnwI82+&0Fs&35Vub3Qr>gF=2OphiXo}&f9ndwqofb_ZXx0(P=o1KMjNu*~_J8%6^Ks5*B zd7j))HIJz<@90DBqza4MJJ}kgT$vMbyUYQwOkF)|}E( za|)Bc9%u0;BT5?;e@>>sQP8#CuE+J;dTbZ6KL55$XpInR^Z_v@$#eTq*~P$sH%4QG z%l24*a`l^sCSs& z=l8Ct5qiVpoKjUj)ADVHXc{rPqrFarTsEZ@L@pslm+19dE_BRg_XPVd%c7o53yNl1 zl46#Oip#1VL{6Hv8>fwFPCt#juP^<2u|BisiB(f(+^3-Ahx!Zi)#K9^X=PcK?yjzd zZp&kfb?HX?EoVJ zNX2upgIeHD}XE3|+Au%kEES-I}cB-&z1`+JSxqYY}D-s*FkQKz(}pE+Mp z4~tQ?Q7hVGG$I&nU;{vvMY&wm%HB06R?CkS0~#q9t#6|vnf5LwuA=s$Cd79W?D{)} zcPwr|Vzc}9t{8K^SG|P!U5etaq9j+Myx4G*E#KUF2wBYr$NH8q+g^*FOSdkYdA%=d z(j56b;(SUScz^(&{j%j#qvbNP^W)_gt80E0O?x0aqFPsAjTD!;tABPk)Xug_k?E2oeEOC> zl7*k)nGVx6OPeZKi^tIJJC?4vT@4%jx4vUQ&(lwjvBEGP%tGUoMW8ZU5ySpH; zgMOn4w+L zbL*9>d|gn#4#s?}YnI68DNOjN(xj~5nqq4-cH~{=*8rnA=^phG-T7a6yz28mmuGEA z_+EY|;70F3AVM-p**zzkfp^#dWGVml)DGx3Q>J2h0gIcbA)j-RO1DPG`gzyhWR1tQ zLPvM$P&iEdw&*@KJu6-mzZlPxBcsi-Tqq!^1g zBfTAg&G`mLtjQgD7nk3?xR`dl$E#|)YtN;{55r#hgS(0?!W9Bq6s82A?Qb8V%D%!> zLidCWEX=W3CSKmgg zqfENayZAw?a{t_A$^&WatIHSEmDQE^SQ$5!sJmucMC+RkQk=Ss>9f7ei7gP^$%Cj| z(aVcEhqf8q;A};8VK_GKuXCHrEAgE}B_A)VSVe3pZG_T@XwP1qpfW=04^F)+8zA|AA=yGcCbysL0yx4TDrmUlX4T5 z>gBQ@c-G!LONuJH@s0Q`dOGawnKb@AttL5-18U`bWm?}~-_@tAFydod}R7Bqib%YKbWH zka=btzHK(EDa$h0*=a7^w~E*KDgIuNaPy~A>Q1IR-`L34R!fMTn9{0%!U5+~y2=XR zuM67AMZkH;Ep^Pzz8vjokJb(d1%Yb}pydXqFd)G#$vlPb+Wlj3CdUuIVgxmehzk_$ z(?QYR(IYyRk<`!v^d@$fJ#FBsZqa6O{KD6_m(vUvbITee>So8B+k>FkL~ZVI4rFP* zDiUk6<~wDlKbL)QN%3xQ3JQXAmU;2S^Rckl zfTy}hoC zTw5=JeeCM@)+5jYb>MJXS?#=RF{TIQ5~1vmUjI!$5CddLTRrTsNNk}dh?8#+->A+= zeF|Cr+Tz%5cU2{m?OE~;Gg9I6YQvtoW=BK7q{vv{F+RJu1JCJmLw!IaEFTKxc_myC z`y4~XPoymw0e|D0lFGj0OIi&zED4KIfR>-0A9>sVJP>$L(>AtcE%h+!s=T7K2h);g zYkqx{0zCz+ur3oKh2n;MCuQ~g)~g%80g32qiwh`O43Y{2?-!_-D3UeH?8gMw0ir^A zhV5`nGDtbKh3?>*;rD)8SmXwkREtx#pc2X?KYXJuqKf5TCy_BpRdpD*7@@>E9qBZp zf`eXIX?9NHsVG~B1i@J)kqP+cRr4toj@amHo-nw@}2jWhx zqQHM`N;60WQeYRr%;d3W#^8!PuvGk`kVIzji$=14!-zpS04q2m(36s^be(I6l^oEb zF2;yUETRIf`j4_jBXC{@5LV}_U9<~_bdDl6{(r?1(Xb617oO@eTwO8G7DfJexat1@ z34uHb*-Q>IMF2uurtu*>PvX^%5{aO`Of?}De|8P zPl5*C>ON>m!bVo%11Ru+4F>$61)5(_aqBJu6+}`gk0P*8()tpnp4n9Q%nF{4RouoBFhg3=%rc&Ps^? z#28KXzGYsGvug8c%hRUunZkZg{U$bjM^G^COT*900vB9TmN$1+BTNOrTujH@`Bgp? zG`N3y0|ZmrXwWdZQOI)zR1oHlRYoq3;*BO2J_uLk^?~aHZa~vQy=UMM`21Q3){&@H zY+}LhZvqPLH5;fJe|9c%sXp?2d&&`i?W~%J_TNNc?{i6_YPeXep^usYulKj}${JFxg>TXK6t>3to&uPtHa zN^9rilYnjVI`VOZF$VfSstOf-q%Qi1zB=~H%>}FPgV%d}@;|iZm~)q#DtLN+I0}X; z^3DTi_(b(>_g>oB+7$*dEgK8rRx=E|e`regRAlu`F_66=ZwfJY(ai9Dm0FO*Zm8$F zfvucpuj#;yZKSl+L{;Rso3!nt-SxgMA^98;!d}p28g7mjl{7{n%s~}ng=hb&wrDI@ zFV;Y9>V3cEVyk1210^DNE^#EK|I3DU^Xl(SS*4Yu_U-Z$egq4{ceH`il6@Ye#R+Tv z<*LZ}r&LI0qI<2r{4QK_d+XPuNF$g(Fd+M_U#--Fsg5*(YcF&SA1hctvbVDu=dY*t zd^Tu#*7_7Nj8KX3n=K7!x=t|y)mtO+4GVG~=GzH+QGsq;k0~xT36(nADRI zQ>?>rPcqL1Hn1o>>*+7;*QF={iNe@n#T4-N1i%^|{B!DC)R3vL=l{d>NO~#Gz&*eg zG6$#+OOe&Xhuc%kOSij~qCqJEdJEyRjFQrdan(6HK)I!nk=MeDuSfEYE1v_=2*H(Ql-t!NYKy~)#_jU>^|ywQFfX1Li&eAIQnO2uOP{FZwAa+Q z%cup+Jc^VVttHl6Kcq0KnI5ICt0zVLZ69MIizZ_wq9TkVXAGn8H=P_f$e#MW-P$tY zTZ%-g2^ODmq&H~7Kg+eY|ImRtZ*CL+PMH4p>SbfKIp=C0%uUCgK`;DB{mTpOqWz2S zNgcC+Q$+XgCny~U779kj4)~h_!~)NHPs^)6^6TmUp44vO?q|@yc}BEN+JmGQ+b~%w z?EBbn-qrm`()YwV$G)YR!XceofrA^|pT0?*AM01|DLvA5iJrAYI#NxftIo#0YfU$wSv%sUF(!71H03%-L zhp%2Dv`;KuuRc>b=cS%GpR(Wh`N^fR|3}$d$3@w-QKN!@7zlz2f`kEx2uPQNB1(gF z4?5D_5<`dzN=ZpK(jnb5V1RUY3?VtdNRG@f!`Y+H^StrB-#NeY2mXc_@V@sI>so8= zeIrabU%|i$3$kF5?5DnGOeZ~Sk)BGB|F{1vvuT>Mt4nOb_7S^}N;0K>Y zxGioH@c>ANBj<7neJ_|E3K zoy%7|hHu6)HT>{Hb*=AOJOB=uV|ZsRWTYLAxl|^W{8dv1xs|<21`Zco2aj6v|3zIi zg@!pgrf?#EzPVktCV#4F(H5TTy|7;fshYqJl5I^Fr1_zYirW1SEQ=n)S9}VC2@8P{q>~q{c=7<{4(mhuI`Sf_cmTc4V;4QaALwfrOs?kH&hG#9CXw+ z_09<=qr5{r(kv=$|KAczMN?Mu-##Ty!T)PK%>_xn-CpEr+&C&OeizBG{~d8C%6*oh z;R|@QkN%YfVxx$|?aj=uArDj6x0ysQZxMX_j?s|19&irgo749|J;a>(31>ZOEkwiB z_d^mLb-Q!gO;e|=T}bgMKUmiC$0oFwLv-I_~M# z+M&L{(N++kH-9PSRuQ8R zy$qu=nElwgD{70?*=6Arq5W8lzVYzK>vU{^j{7mbM+Y45#qb0?@`JEBJHX=8W9z+% z+e@AuwncFI@9X(&TIS);-rFtp)QQA*_ocu>(ME(pNTDC54}d6U2(B8GWL&dlOjn)= ziF4xkCI;a@v8*#y1IH&mW-%CV$Fm-9pRL_|_N4;DN({8E>*O$+gj5jTm6A(m{^@)P z-~^0+0Mwrs|BMFzw&byVpHk24mdL0d?eL|;7Kch8N8bt?TrDM;?HPpYOC{i! zyV|DGz1k%Ui8-vtBC{;Y$&2I2rzZ@^GzidxXR3axZ;^g?XRyEh{DT}exP5J z;Ww&$0#zP#J^vbv*qr(^R(Z;xcMCn?M@u^J`?~-$dZzb>c{ky|-#7~Zakh;2e2s}+ z-R`i~*~Tlou-4CNAampZfV6xuXlYdO`TsWT{Kpj$&t3a{#j^9H>P=hje{yCDzQElJ z-(LIO-9`~uy&}um-LwvE!jH0}&Q9Z+!_9}FK}VKu$Vg5fN5}to8VhvL9d+KY-PZIS zuCuihfKPS`s;xu*&&gik3`wvH)JB0x%Tj@59|+lg((MQ0;Av=T6jdp;AyKv=y{Zi(3;ttYRH>XBQz$r!X%iCFf$4BdMdc=!0>12l{d?2-Uq$y$+ z^^>3T+P&RgPu`8)*Zw~u?@U_&t>_DR8r;X;n6s0v%pX5ElkPRv_`$)^A?2%kZDPMl ze7YB=vFNe?YH(rg(GtQ}WLAnlXe8pF7Ka20z%k>*z zH47uL4P`~r2UCb<>@W0T+BzNL7+0iz6nR{Z%{ksnFH~o9oTQM-# zZqBBKOC#;RL!z6NRdKKt-#e3Q@W{gi`DBkuzm8hf$iv5HJ+#71i6_YX)|8SA4FAcg zzlJhHQmuw7()B6l5<+%2%1h3O`X~7k4f(*PXT5taO~xh6So86YqL1{Bg|fSJJg-UN zn=0TwGPvBwDy%DAU>@d6d!ziBG*Q%)f~;96%eh#w7}-ekJB-$^?TkwkAN}_JgM{Xk zMfUPxHZ7;U0$8CNvkq2HGSb&>ztZAD3fX(+e(YT+~W%Q?Hq_^LQ zy0v{5eF*F4^mkbi0SDDG+@I@BokhCnV-9|;SvQX#*4gYl+s%;dyEo+9&`|-UI5X|F z)3IKnSEftt-|qRlk)F(^k~|{T-H~IApp2FYz=i8ErI0dd0t8>Qz6jryEQ-W`a4e8s z2j~nNf;bo}q=(I}=&*V(DaFAAy`+#Yf3*Sxqt{n0vlm=QU24=!(31Yx2^U|MlLq*0 zoq!8wZ&=E9M65`i_4(fS?KKmoX&xSV^j*p_!{@)ZFMX;BI7v(+GbCxffrA2*;PH?0 zj-I$pXxn$L`a2Et?y39k4sx!AyH~sgT_e=h%1@$K!grrb(^+PnKUj2*%8wTqO+yF9_}k)ft#`v=rb*pdB(_4d4U)82wut8NboQrF!9R$rV|5RjsN0DP!IrK-Y*qUG@(E=2wzO(A%x>$jy1^yc4 zu$0Qol3v$hU+;E<3aE>ciL!@5Jr}?3*05{vSH@`dHst%oDQgbkUVIJeu8Qu3q0du}D$fjT#r?yXzOD znHRKHVqAgoBmS%5ph=l3aI_S;bVwH&62go1@{~Q4q^*D3XJ(awcaN(+Y~Y#TBWdtM zn<*6zGavMuX+CVkI>#7~ZZN+;>Yf59cM|hNGnEmu<0@27+MrgADM=3Z z%N<*av2XwR`}nE03w8L_>_xIkm)Ld!=Gb&nj>GfL%+r=O3_kd{A7?~2)T56~`L!oU ztrK}X-N*jpb&bvSuGc4v*_`r8eL8Ukq6n|ewB1ebz9#%;YWs}WM)_~Xz%@B;=;Dh7 zdVgo9XBhv_oZ5VZ!5c2ZD}QqVd?nIbkfYG`82|OWLL_EgPmk5#MHAL7bI3XJ*#C>D zHs4`kS)ud}H=@G31Bvrd#<}z$+IPFZP$P}3@EACKbG~=$S;)9y<5XTP8s0{~zX~Y0 z4)7ShKivJ*Kl}~{C)+h}FfF@=|B31Sag5vn|JOl(ER#$2eTP>HVO5#p?7%piU~Mp) zvoy}XQ-IrYtyCM6F5u*uqP5Kj1`<;}BTf%czr2iB>XzZ#%r3ryx*uZHSw!uD6K-fM=;7 zZ}Yu>856Ce&0)@m;bCAWUwIpskj#?4xbBbc*?A9q(r>M70;NZAJHGcJ5$wN7{MJK z?3EE`pY0!wXk6O`J3;IxYZt-3$@G>O#11!+r8HzD^9_jitx8Au(p`YOA=Y~*skRp(+zoWz4j(;RK@eW>$cZkY24PVVCSOc z<%(1I%JVSOslH(nlLSk``@@1~CrFQT2IUYCnB?>}&eOE$HkW#W~ zK*^dMySPSf{|8JTS^7CMZCc}`QBcLm*IZa?ZlGj zG)kui8A|$sU)ohDRct@wDHV0jEZ+fj+S9Qi-KqVjbfjDHM5U#VqntF#dymp90MC4* znT45e`i3!UDx_V5wfX!?KfhZs-uPPjXc>f0LRZXo0N!v}>VfHZLWIO4cf-iB$72_J zGjW6E51${a$w{s;%ol%|(i@}ewXO8rmx%D}cIuT-t3wT}JiQ5XyMvaNlR`19XW5=z z33(N{buAh-Q0~^PLA~G4e|NJh9xv9wgUpC{AU|byv)hIC)$>M7b{$BO!g`@5RDL1M4 zusrf1dwuY`^&_~#nK5)G%wp7}t%;2j0jxbDHIQoXm%wPPcHPG&Nm<5LklVA(IAMF-{ zL`11PHMnIz;m91@Gb{botNQcB@;GlK)A06Zsq5t|%r|I*x4JMtBMQ>L%*x?M0#1^U z6$Z<;p~@tAZ)&u0wfBN|vP1NTpz&{w#w5s6tWCB>;VeF+P(;4Q_}FH&w-r9K;k9*nG{N6;0>wVzw*-_Lgi z%M60kX*3JwevX-YS`L%lXU!}~OqR#)Mv+?}jA^AM-e6xfUS^hSKeJN4b1+i=*+e~O zG|RRy0yQA~+V$ZiXG*mdWK>Z5&3R^s z$$>EVY!Z18`NO+#Xbj^tmW98umc2N^Eb;j6;~W+~6Xmw(g4AXa;N}LZSHaOcSa+`9^}kObp1-bNl^= z;8OP_hMlX@55}CqiyO4i7b_svmlnaLRhH&S9Il$Wsm}XGSo=%46)P~$mvU;Nenx1` zjM7;<67ws#GR+B_G|JSQKwN{ohGqy&ueXZNxx9NR``Wdb=76f3z8MkA{ zq6LDqf2b;YZ><_FZydt`uhnreiHs}rQv+5z@Ah><<~f&><$ zLJgDa_E}}JFtnIV8C`o?Sj$aa(>%jKFrN=IxZt=IOso%hlO~K@@cDgH3RuJ*2mwCH zwb|?YU1kk@%zPl^XnUbcFsEjONnkHXz|?8D05fk%{x1OCqX!Y;LksZ;_q3k zF~(ecE4(J=z1lP~e~fhJ`CXhbbX=^=TJ2{s{mtaQ6%X;KxAU!f^TpW>2jR8@ z4-9*f*psdd_=jV!S`qe!25qozZyiTE5fZQ8x`auERRiX}CLM&7oBp-*vL^y<*fSjc*5;`m4Oh;ds{9_oEJ-nB zT-D5S-`&Nk82TEwy#MLxm#Y>|kdL-+zv_ctDN)HH;czQB;=&eR@ahptO6KNB`2#68 zs@WSU?Mk3dM`YUWM6CIYy3__AXzBean86YBy%*kAzrbXoPGdrTc)OWMn2H5Qv_heaoF4?sjdxInpL$ulV$E3OK2Ymx=Qqi5|u^sDv5siZDdSPrP{edn8DH_AEC zv&~TNJ_rBOb^AR0^=cM$!hDLmR70&xb<^IaLdP1~=h>CObdiG^6fEgT$;kj>VK5lcpwH>xA%O_V>u@KY%LD8tC(@yuD& z?1RlByqo%bMCRfPYG!pAnI=qYTDAWt*zK%l3NGERbzyH$kRFgSzIxB^nhX1wC$zmc z#12eKmgY|W-NaIi@`_`Q4{Usz>f&}CB7?O{U|tthrYIVExCf-IW=sTa2%$B+}QJ~e1$k&~fG~W)hpRVgvy&6O(RmK#hZ`J{a>7H1~b?u9*D$ojVO`5GgGg?wf z8d1B4;;e`Gt??{}$qrM#!Z3Rd-~Dufj3y-Ggxs~?EnS0~Oz6aulNXwUXM-!YHINU7 zMYXHT;MntpCtYK2rNRs<#UWh!I}h2xu*L%SEhe{$ftSNcuTA%8`o^zm56;%lGP z*#k$xA2Gy`*&{$QyqV=9-_uthvL{!KvE#w68?3xJT6t=z57r-ZlF?AAvf;i^GfRrp ztzK`(YH;uR9X+`kbp50`?>RxaC$rQt4Do5cTlE*tzTsDUKu%h1%;x#+Otx%u1T*{g zkC^a%!+9pMSPUMcS?5)G`IKjDEZNwsIqEZy(Q_P?s6L6Z8i}*V7i*jpVAe`~wk~k- z*4Wa-2Khky6u2b$ga3J=iR&WYSWm_+KP{kkS8lB>U`fAN99ARSDP^M{wM# zfZM7@ywM$`3T|C2R}OWOxgl-mMzCqt;%o0$(%e!Pe)k;NFWzF-e{%uECiMHOA(u%G z{-Y#}sIm=X;J!F{8+8eb49qd<2#NuuW3Rb)*`R$r+;ZLL1#Zo!(0kQ;|0ksK!`cyH zX?l#81pn=4QayCHa8XmUJ5I+y%lJ-WrNtG!j4Nbx>f+z@S#9JMP182~=18EPQ~?Ux z!>EbzTiqGg^X9(hRQ8FeDU*{@K9p_Qos4O8D{y9`QVF#mRuEDc7`8%o#(lhRkce)A z+AQmrwn8GP9^`jJ8g*+9P@FjUA;+s(fA@~VJuO8a!Xe^}O^Z%1XL^W5j{7;%;?FQK z@>!kvicYo7!|Cs)RSGr6FEZ_Z`r>B>^CCCu4lTHG7L&1Dx{nYu)G~J@9T6rqChl=| z@Hx_n@%l>l=S|qc*dHtL%zWP)v-aGekqNKJpeE)z7cDIq^WG_{2#wYkeD^+vO-R3R zvI^{#rrYq^QS872%|@y2VTJ{90V`Q$bRkisVc~x-A_G}lB&%aSmr=1}$l5&Yq$*N- z$QIz0uCAKp^M9>L;llvMzn1KuWs+sXl8;{_f_K^Q3;mcU`~4Vg@Sz7j4EOtO(NCZv z-#`t2z{V@AL#r+&9KsSeq#a~Q?51j?PAw;*>cpV1{7Xsr4(r*r+S%JACnccI9;D8$ zuOz$o+#Wx^e^P)hLfZS78KhS}B?;Aek27Yqc?p&LoM}O(&N_a#x1zf8BzN)AGu*P z`QXr4PTj`fSLA;RBdA#eJTz2|L!w_)aQzbK)9)F`8Mh|gToTR5$9tHgX*xZV5V0Qb0SY%ue?AoRG`RZEA zrDHprSp8%7^i26ZO2CNsqU82%nk=U;6kPhXy&hB@E9rc+U1d+F7BoU+Uy->;6ULo$ z8iJWEMmT|8#9ah7jv3L57I)1pn7pmNF+CwM1#>#{wZayyo!dGK3dBf(qJldB*-V-U zGl`|+gXDep=lIi{-*a7iqk5!#I+y(kT06QWXT-uR)`wuIu^Y&?r2EdcNO)G+A$&>4 z%OoWRng-ALYOL2P%t+a=o96R;h1rt)lu$092-USQE8pzB^$;{sU%jhW+Sl)$v6cHLTthy!00`3= zmhb52b@IY~F~&RA`YY9+TYibVW%bVx`p>)id-XWL${$}-ZfahZ{8x~8YLZo1l!XL4mix&DlLU~h9* zCB*sAy<_O(gX2p~6muFXa)=aLtEPEjDZnQkxd)Wjh*jk-m`$+26T$ zxW0~~Nao*ny=lMmJUOXC-aS(6f#HjTtn}K=d+9Mf?GbU_%#t7Me|XlSQDu0gI{6F> z;t(dtDysW;jnm<6A+@OtpkOHl#}Eq94ER_jvQ$sJZvH);{j=l)oGlUmoo=#hjO0Rh zpPant?zq?<$*J(xGQ@>19$}U%flAyS!E~eF2#pJ}h?hq)5RJ6X(<&uxzh z(IW1JR%Ua{u6>vCq?SueH)S3s`cO&V(VBCO*`BnGUYdwee^TG|xhMJC#U}kyXLR+9%y_(wok5##U-7PyvZ{0;CH!YCGXE{FwFODQfRmlX6S_oPbYY`_k^hVUVlUe} z`$_KaxhUfddDH#31Z4)9G&XsEx~(ELwp>4ah)UYws8O4J>LrKiRff9!lS_c9*d!dl_Tx5E z@7_-)yH_y_6E#cjw9;6(7_h3XM-n>JQfD7TF)^8x8>*}t_X-*r2g*xMD|@^GVE8K1 zL=`Pl&8N&)-d`gLvcOB)a6CR1K;yT9S)xtSR$R6!%xAMQ`mm?Y2w3!1Rk%2;&ziVM zZ`k_PaM|DLu6xXs!!93h z^Vr<cN&Wn_zj3#uu& z)DrHtYO9Kq#$BI_ZSLA66>@ztibFFc(;uPz+aw(26&*^UvH=#qq7xV#cR%$RxUNiE zc<(XSO?;sa{rc_jvZC0;g|2fyT(c8Xd>y)sInrI#5`7$KoM^ur)ejaVNiYSzbVofD zES%6bkY{{xDL(p{iI0p`|C3vRUy=%Hdheey_%eJrg)FX|3C=1p+I(jcXWiB)8|c~d zDDnfA-jujx!}Y7nx!)JOK?1w zYeNSBi|;(p9yXfd?iY?4F899Ny%+hdrl_=ng+9+&NUU@~cub*dZRq37yGw%}t)$k6 zo!o;*Z#i?;q%aEEwqocGjuU#518DTS7YWO~xlLdCocqZyfkW z)OFmo!b~6VDphLvl+C2HIu8$oyCebzRAWd{#7VAxLYr9gjuiH{(A70-t%61p-ZVUYaCaW;_ zh)dtTRrqu>v~zG#OW*3iRfH?Z((bf;!MK?2)LMD>Bg$taGjz-+vCueR7^*q#xs^Z$(%{z z1H<})ll9&vT(_f5vL9U$RIWRq~6|cTf-NF z+2n1Pr7xwSnT>1r*Dk+RrZVm|t?PHrUzj$A!tN&04W;??ibd!OHRBu#d{#5P*Ir!A z``8h|jlkyWeA>o z$aTx9HtMe7N5o$A576!wDS04X^3i=#W98wF=CkV~@Y7h-VahU~)l_PXeajaY4bZ<9yTVmTNQIxU)u9J%7tR|9 z0?4oNg-oCK_vE@nS*&0F004Ro@fiNI|2Ba6kxu{LmN8$P6mazJ-B}6&&w9M>WSf6< zK0i_RuCjvEK~Tdf@_Yt~zgplOAU)*v*ilm*DT0})hIjmdi7jY9k{-6wPhS>wYY>87 zMTIWZzjHMocnb!R-YZbCI>P8TNoA!Q`6PLTr(Y$2} zp8I+|IHOKM#iY(To9v90J->DI&8t3k8bj9ajWf=Rr~A_8ztv&2J5a#;WpDG;DolL~ z{kV@Hu=Cu53?)xH2Meu^sYgro;V9ybuVclhmH|FJq*Jdu!#f&aYRfOeDzuxUTCVd$ z#5K$Bydm>dY2xr?HM*iY)9_Y$MbH$cQ>7x~IRpZz#`_>IeMsKtfZ=h0&(Buc4w(b9 zl#nxIx9Y3@qQI|dj}%2RpsF4S{vtcGHQ=$mIl0zx&~KKQqApWi zGW3AzR!D)79^V%Uq5jAInMiAzp8Qy+A5n1CP7``dix1pGFEvIJ4!0U7M-CLEkA0_H z{?NRP48^VXYT4|mUb$M;I(Z~vr`wq=O(bFc=N#bsNjf~d!Xvf$-R^`wnfQ8Yx0o%O zANFH9u$qQ9gl)c)1`LYlM6Vkirrp<@$ z9g}c&b}z4JfX&NijWUrCG4q>yH8IiAgUWeldt4@cH}tJ5oic?Qur_a%6`gH(Y3VsZ zbyw`VBKYtmV=AL%cM`j%_VcNS7+a%xt}wtX?+zTM`>9`8b^ghGKfMwgeEC3nH*CXe zgCFH8YCm|h-R|uyfs0z|CbnU*c_mC%_3~YW%jgf2au2|EP>|js`8|UNu5-`tY1c4H#MKu#_`Zh zeadw1JUTvV*U!6jMbPq{)&~~*?8i-VCwgaB(uO$Nvi-_T+azi)vDepU-M^!@Da@cD zcw4-BKw{BvaiMB*{|V5H3|yDTYicXx)4U7qnO_6C;0j64#Z@8AAUN!s&T{3rzV*Re zP{fsSq3;qk_k&!9*spr%*9$n_zuWru5P|3LD$@08)EzevTrE(};ppEeU(?D}$WRIQ z*xhV6_9NDRXRLZ9LAV($Juv2}B}rv0I->KaUh9OBJO$_F%^B{*H)Z!5&=32@G9H~g zwQjBvOfh){p@t2Q#eJjqV;8CY_D$rqd1%rLc)S{Ho_xS;!7K>9e)UC04hX^t68zS? z8b|uY-JFb;vVBM``TA7Oi zV*ge$|6q-Wh!c_z|5=IOU@%{kB=3a0NrJ_bVZl?RPfv@vM+hH#JI=qMYD;^~B&uW> z(DJ}>W&BZiQ@nX^lDIYU-6iu*U&nR#jawkw4lloUYhD3B)@()siflN=dWY-ABL-CS zrKIxjK)c{QTBPnUXwp~O*~J&xp)2Wmg)EMgz##IBmevmU1cbr-*$tz50kaP+KhmUt zFkhy{lc!$W)AGTWa5(7p%W0~dR?@SEXY6wm8Zj1Alr2C?=U&3Yp?1;vSJJ#qxperR zyEtr8D4iA)e`q@^O>OIL7$5)yOw`GNEpNye>T}rYc{`bDWnRwrj(2zo&wJ z16q=(FyjZwh_R)Rm6Bv35#U^By=x_A7O+SYcpG)q?L8pw+RGEy%7KnvW^jS|)V}sQ z=6;&iYl5xYjQilP+~nJC=P4d%RFHQcV>BnYpGuPz7M$oJDr2C21+LO0+@E4~HF#E+{6gqyYgcjyDbN2RL zYaV*7m0{YYXL_M0X?a*i!-P26TwZJsH92UPg~^qS-3bQ-(e<3I006n$OVKW9A_&V=?_Dr;A5~M(5$>wD!q8SYUZf-ZONab6Vuq@e(hD z_w`h5Bid|80B&!TJUAD+4si;EazdT5R#5c?*~xPcwam)l5mny1s)}2)GeS*8JIl~^ zr9~!(_hu(mO{mmvkQHix?sWUBrOn^AB;n30oh~^O25#++}o;^^mrb6 z(_4~n&R5&7KoT&Ek9d{QS3n9+P90xrKQ3=dS@<36VorJj5=v@Gu<<-DnV$iuh{lNcLIZzX^EqV zP3+fKcP&F#(qg!9%q8|@EW5SJJ7O=>fLj&H@rveR5@8`U zy3(z{S^?_S`}uX7L`jIE(qPQ?Ev{R4N6B^OX`bgV#$LR<4rn(h<-O52>;?wj0xa^9 zp6|F$R0pp30M+#B^&S>~<4In9wxmN1gv{OZ%UYS6jK> z>9SYK&wZjR{2N>ZPIAp%OtA8%EAUV%xBV+q&FKGMl97b$ww7!V%@}aLeR)I0ojQtX zsCs`E%uv6()I+NN-I6=gP2%~*Zzn}LuH9ERj{umvYZ`|XYFK7G&dS&dt*m&ylIlsZ zQ3?1@^FBKD?|`16?eVR{V^QW^-{`xr{zq~mX3taUQ7P~=XKtd(b`(l42Ac!N?RjoxNmx6zL`#$XanB>~cA&qDB)5fLF z&gI+t9imQ3m0xW<>U1kD6pIoCKXx#CDg-I>MgcO`aDruVswxT)NyTjW!yv*uATahG zfLLhN#XnBRUNY$iW%sS)81JfeQaB6G+f<1-)XK$_gySj4rAa-TKxxQTj=f{Xjeep0 zLNFwTZSMNxNA&edKkpt5m1SCM<;E7dXuUr?n7Yo+-j>VQl;|}4qz#)ADNW0DTVS-Y zQrMy>xiwfI4K!UNiAjOg+!66ud|psBrcU1b%N&jzXBF_3eG<0fxVn z0h*t5b2XD^69hQcljX4-n$^e?XaBqXd6Ve=FD`_}EEvoYm#8#{<;q?k)8w0x0O?U6 zkuEf}gbi*M4<$$aa=ZNt@7aD%85?@=l>F<(OC6;bZiJCYN-IZ&B?__wiKhdIeFGWy zdnngppLEuiCENBGFHfmenwj(I&lzbiCl$Xn7puF^_KY-1(S6Lsll*F#U%E7{5yG#< zBg*EzQ#XHGri(PLTVK!c0uwjm3w>|2Yq{f+64!LYNZyaWE+7MOQ1Ky*iBnjPTAH1? z#ZXvePx^}oLX=7;IfQR*^o_>ho}4TdLK%Ik97RuPMf>c1+RTM43Wao)4%&MtHNvBA z?H*%SWpcSH)BGFF(5cJrO!;~hj_Dgs7*mvOJ_BK>MS{v(SUZ%^da{wt4|#CMy`6YZtk6NCj8Y7-$kl+2VfRzshRC4x59Z$NzZ=%4H%Ysu~Khez*lZ-U7)ul zKZ{~@?7x#w96Bfcj>@Zce5qpuY+{8rkjH)9`TYFm4bDNbLT85S=Du3_(u~vngI;96 zQCf{YY>X1V>zuz5exp&M^LOnn3_elxFYWEGSN{jGVs<&ic6waDAn?^}XSe6<1uBp2 z*+%L15BN(9K+o{pn6&z77IoLJ-Vg2CrwBMx&A4Osbbol2!6(_HAgW#6l4xKoS{xL5 z|3zOBh|XjeKiR$qg}7p~u;{7`rU@W-w1SW2~IDM zf{Xed+X6=TMn6_a&UnZN?QUmr#z|{&Vb84{e#!6(o9i-Mxo&-G`-C$)lQ2@lSXGana@>ywHd8yYPD1)?)syf3Zd|&QpA^Zm z)MQW6ZB}s5CNQ{D3p4$NVE*I}hP3LxvgJ2%^_pNr^*0wlB(Z4NNt1Ls!S1ypT>~BL z*&`no|LKPFD?t%Zb25Q*#D;d$ebXkN$~Xlu7C+TB)=2IMqlg}EFRLRT3 zm2bJGzF05N%!Aj$p0*Ht>GFjyix-*Z zy!4tZBQ42r{^eAR<9Zu>J-)b2qHdTkLONn`4T#Rk!7pF`BX3bY)NJ9s`=p%{nswU= z2pvnO@BSD~9Q@FDCR zRtl_r7sK1wPN-Ke%Jf9kpa?kTDedRx_%x}Hhjq?GwJdz-qNVv2RPj67mvlVAhQ}lU z3TH0XeV5MP6|OsSkCq>yrJ{GO%};FIeY^dyJg; zmRgJCWdayq;H<+vyxYXaA!9ArKJ_r@B72Mf>2?yBhPY$X22K@Udn zn$NvH=G3WsS^AJZ6lM)-x3Gtg@wlyzFjYTztP(aXwLpoJP`B<~0I=9KcjcWwCEFYy z4GPjC^`{aE8wPwMN>VI=zy|$7`onRa0bN(T=F7jA=eKO77C`=gm8~*9oc;PShk<;L z9wQ2b$UuYC+-WCsxYQ_0xpZhw5&8K>?fNxc*S5(5LeKJmwmWH2IZ+^Ad2 z&A`>KW!x7edIG>uFD}Bzb;qrEtaBmkoYa-bfY#8qG;OwkfF~Js7@56pfW<7c}aWURm;pWZ_x(+`6to&YEMy>NOqvGO*VS9brx<1LUDUfV1Rj%eWl$U7gh>9hT`e*=Mk`UFvj`Y-NKn>7${ zuUF}_N#5mB@U(@~QMnLVBcYJK(o~93JF&y(MDu`&yR`w(!(tMC{TlSCr3X?n*Hmf4 z?fkjZjpf2l?0}57{&A&fVs$`Q~ zya2;Za-86@Vs5b0FB`DX^)K556Gg3zI3!5yoz!JMNIdE4(JCFws&vGB2Ioj=DV(DEq8|Vu1@80cI3`Rzu*fq2*%Fq#J6#CBa>B@R6 z)>s9$E&tYbFsGX)X=aeC?$h_(=?;^IDwT8r(X{rmiN#3e46_yi*yp+dFHMNI;$9?& z*!k=UYHF$B@#jEizJjXCYBi51_dU1gla~@HGrD|1T*<|i{df#gawpmV-OQPkIk1Ln z3Q_4~qkO0j1~JMYfvX_NXs(gG`K?t^K52;+E{6sn9$i{+bNiQ1M3(I;3HHC1?>}VW z2ecuM69PGYs_6R1>tI8>HBz>f|09(>uh5VtQSKNPqc`U>yh(J%)JJ9N25~W+XS@mc zgjf+^6+h)msIPjlC2qZOg|GfG^?>lV;Uc|U&mEa#gXLKa$8jyP_*@j+oG=FD6@vWI z7Umu{-)?a73_o4X!MVX`GO{l)f-z8m0(5_;2BZIev*@^GdpiWM(Tce;d} z)|uIZT-Ubl#ESiQ+z$ok6DJwELf_qV>|rF13=@+Ggq_&h%?aRA+s8J7>RCLuYo9iz zMP<0hDi<_{@A5?_pJQ6~G4eJ6MRd>>d6w#`Ex$)G8RJ-Oq^W4#uV+$ml0tWj%2ht)Vdof4eC%7iJZ9bFH=1w` zT+>w@wIxNic<8D6uK2FBytHVdA?b~ldR$4o>21k->7Ky(t?xDsY?XD4p^qrF>A^%- z)ODj(;x7OL694*jv(6+1r)LjeWSh~{{4X5;@0#YH_l1xKE-Yk-Mol;S)ZcmOP!W^J zQSnmiSrATVv0L2rd3G*jG!sQz?i*PYdsd^RFR1#3DBd1b zuM=q||Cw>)OGnru)isEG`P;YtGh)WpvPxL)vhTg~U(A(}@QO_6;|Z7f*Sc)|5y_4p z>`$IDyidXCmLEt#gm@DYW&t{7Bq6{kt~7dzRbjSJN3+UOeN6=rHcJbk=6%peMQ1}p zYjJwYhrlCqY*5DkMpXpRy8~?3Tj|zRpTz@rn%A^Vecw^__Z89e@Tz5+qdxKk2|J!l7050o9Q^;S?~y3;D7)O zOg$gM0G*A1j5~F5jf(Gvi-wimxJG^ll_f@#e?4%H5SjVzaz_;)LW0QkCH}PTxLbFh zekPlmAnx%oQv2?6Bm)xQn^N86oJi zPk|I`e26;$?%tdGNgTv9w-EmiW$zuxW&6I58paivIF9o;wNAD1+*nof zKtn{8aaE_I(k{{7yi-eUF|Vc*rPR$o$IAcofuVlpAWJ22i(8zqsQcsKNScO6J7x?; zvUN7bHz_bWF2nS`Vrdc?nM`@wI$6|}_H6gWoF&^{iTBxcju{vS zT|%_@*25q^T~o_iSs%~~owRlC^*pKcJyu_1=utIRY;|k++a5Ykwsuq7{e61|qI6fj z7X4)RxBKH28<4^Sdq9rfaxHViG0){-kDb)Xd7z|Ndg&2=yTedkx-VDu+AN=RP$4ILqv%EtT2L48-_4q=3_Eq|))NL46}jmkrEkaLg+|WRVnn+**}Bi3 zAweV&bxl=H%+LBtrhQpSm+r~`{L^2R+W(|csmlBCK3!c3n7fv`7lnJ5w>RzP zMKDQB`ABisLYE>SbiM6KC@NA}hf>6-jo(0CwLsj1DIDlDaY;JNpB7EN@~1=X&a+oR{Y`4%Z0TgD=+J`FHO+H~zK z5Vbf?@rmVjyt`Z=j5%^~V3zkN#ifR!QuXI9Em>yYa#$-A8H|7*G{hFLfF7>%Y7@ii zcS#XUUj%bvexkFS3)uA1l=={d3NfyVEqx_FC`f@tx=*LTj7FBPo{cZ3h_EC zl3~B&GglN1u3XsKU5Q_~@Vtn;aYZ9@BsDb8Ws<@O+GJv@pDyt3f4bG%Iof$UUDCHC zRHimd%*T(!nOVJ;i}HR1S3Vt+I`NxudZt9F+`Zux)21AIgmeL2qECf@;WIILrLLUv zq8l+2h$4E0@`jzvRg7k+vQZ-1AH7LXy77!efXiL466BG^BtoFtlk#jd|9}M|iD;#N z-C=*Ae1C{7g!~9Sr6eDew@v_ak0hzSiX}g8ve`L$q!6}hi5O7q4~YlLUAH;XNPSYh z55RsA52i;=7pK@%xu|HiPnT$%salnW9HEr z{(?fC*^T9!gvNukm5oXtZ1RGg83rSiQvs*bx04-IuK1U_1uwqj)$^XxNqV8_<3)4> z7pGg#@MQ{iY5}M;j7lG7$2nGHsITzvW{I1=yl^vmT|%= yaNGJ4t_hyK@Tjzf& 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 o=H^x=&e8Zu=M{jrXPU4^c4^KHlcmMzZ literal 566176 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

v{_bX9(S!_0+wn);1x}Z6i$cBKl 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%0Dv>1PtP(;LSe3)Y)@GYM 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

y@LA&L*hOz6q}L)~ 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 Oj;@x$_S~(6Q~w8oee#X~ diff --git a/result.log b/result.log new file mode 100644 index 00000000000..af2f2fab6c5 --- /dev/null +++ b/result.log @@ -0,0 +1,7761 @@ +warning: lance-linalg@2.1.0-beta.0: fp16kernels feature is not enabled, skipping build of fp16 kernels + Compiling lance v2.1.0-beta.0 (/Users/jackye/oss/lance-lsm-writer/rust/lance) + Finished `test` profile [unoptimized + debuginfo] target(s) in 8.13s + Running unittests src/lib.rs (target/debug/deps/lance-5ca2f9988fe2a9ec) + +running 1 test +[TEST] Creating dataset at s3://gh-dev-us-east-1/t39/test_s3_a8dda88c-6882-48ea-b00f-7c8770c523bf +[TEST] Config: flush_interval=Some(100ms), wal_buffer_size=10485760 +[0.000][WRITER] Creating wal_flusher with flush_interval=Some(100ms) +[0.000][EXECUTOR] Adding handler task 'wal_flusher' +[0.000][WRITER] Adding memtable_flusher handler +[0.000][EXECUTOR] Adding handler task 'memtable_flusher' +[0.000][WRITER] memtable_flusher handler added +[0.000][EXECUTOR] Adding handler task 'writer' +[TEST] Writing 10000 batches x 20 rows = 200000 total rows +[2.552][PUT] put #0 +[2.552][EXECUTOR] Task 'wal_flusher' spawned and starting +[2.552][DISPATCHER] Task 'wal_flusher' started, has 1 tickers +[2.552][DISPATCHER] wal_flusher select iteration 0 +[2.552][EXECUTOR] Task 'memtable_flusher' spawned and starting +[2.552][DISPATCHER] Task 'memtable_flusher' started, has 0 tickers +[2.552][EXECUTOR] Task 'writer' spawned and starting +[2.552][DISPATCHER] Task 'writer' started, has 0 tickers +[2.552][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.552][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.552][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.552][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.552][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.552][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.552][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.552][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.552][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.552][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.552][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.552][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.552][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.552][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 100 batches in 3.171084ms +[2.555][PUT] put #100 +[2.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.556][WAL_SIZE_TRIGGER] pending_bytes=10486344 >= threshold=10485760, triggering flush +[2.556][DISPATCHER] Task 'wal_flusher' received message (not tick) +[2.556][WAL_FLUSH_HANDLER] Received TriggerFlush, starting flush +[2.556] [WAL_FLUSH] Starting: 157 pending batches (IDs 0..157), 10486344 bytes +[2.562][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.562][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.562][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.562][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.562][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.562][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.562][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.562][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.562][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.562][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.562][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.562][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.562][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.562][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.562][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.562][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.562][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.562][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 200 batches in 11.423042ms +[2.563][PUT] put #200 +[2.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 300 batches in 14.027584ms +[2.566][PUT] put #300 +[2.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 400 batches in 16.62ms +[2.568][PUT] put #400 +[2.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 500 batches in 19.168875ms +[2.571][PUT] put #500 +[2.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 600 batches in 21.715959ms +[2.574][PUT] put #600 +[2.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 700 batches in 24.24225ms +[2.576][PUT] put #700 +[2.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 800 batches in 26.774959ms +[2.579][PUT] put #800 +[2.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 900 batches in 29.274084ms +[2.581][PUT] put #900 +[2.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 1000 batches in 31.865625ms +[2.584][PUT] put #1000 +[2.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 1100 batches in 34.355709ms +[2.586][PUT] put #1100 +[2.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 1200 batches in 36.634125ms +[2.588][PUT] put #1200 +[2.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 1300 batches in 39.291375ms +[2.591][PUT] put #1300 +[2.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 1400 batches in 41.791084ms +[2.594][PUT] put #1400 +[2.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.595][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.595][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.595][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.595][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.595][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.595][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.595][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.595][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.595][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.595][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.595][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.595][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.595][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.595][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.595][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.595][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.595][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.595][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.595][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.595][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.595][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.595][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.595][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.595][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.595][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.595][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.595][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.595][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.595][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.595][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.595][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.595][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.595][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.595][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.595][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.595][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.595][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.595][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.595][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 1500 batches in 44.326459ms +[2.596][PUT] put #1500 +[2.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.599][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.599][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.599][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.599][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 1600 batches in 46.873834ms +[2.599][PUT] put #1600 +[2.599][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.599][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.599][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.599][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.599][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.599][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.599][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.599][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.599][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.599][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.599][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.599][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.599][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.599][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.599][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.599][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.599][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.599][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.599][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.599][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.599][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.599][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.599][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.599][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.599][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.599][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.599][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.599][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.599][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.599][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.599][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.599][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.599][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.599][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.599][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.599][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.600][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.600][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.600][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.600][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.600][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.600][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.600][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.600][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.600][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.600][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.600][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.600][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.600][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.600][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.600][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.600][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.600][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.600][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.600][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.600][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.600][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.600][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.600][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.600][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.600][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.600][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.600][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.600][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.600][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.600][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.600][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.600][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.600][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.600][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.600][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.600][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.600][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.600][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.600][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.600][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 1700 batches in 49.339625ms +[2.601][PUT] put #1700 +[2.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.604][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.604][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.604][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 1800 batches in 51.835792ms +[2.604][PUT] put #1800 +[2.604][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.604][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.604][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.604][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.604][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.604][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.604][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.604][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.604][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.604][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.604][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.604][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.604][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.604][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.604][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.604][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.604][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.604][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.604][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.604][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.604][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.604][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.604][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.604][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.604][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.604][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.604][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.604][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.604][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.604][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.604][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.604][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.604][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.604][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.604][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.604][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.604][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 1900 batches in 54.274167ms +[2.606][PUT] put #1900 +[2.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.608][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.608][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.608][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.608][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.608][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.608][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.608][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.608][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.608][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.608][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.608][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.608][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.608][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.608][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.608][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.608][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.608][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.608][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.608][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.608][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.608][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.608][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.608][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.608][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.608][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.608][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.608][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.608][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.608][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.608][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.608][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.608][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.608][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.608][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.608][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.608][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.608][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.608][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.608][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.608][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 2000 batches in 56.752417ms +[2.609][PUT] put #2000 +[2.609][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.609][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.609][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.609][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.609][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.609][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.609][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.609][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.609][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.609][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.609][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.609][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.609][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.609][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.609][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.609][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.609][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.609][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.609][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.609][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.609][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.609][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.609][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.609][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.609][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.609][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.609][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.609][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.609][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.609][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.609][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.609][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.609][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.609][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.609][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.609][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.609][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.609][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.609][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.610][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.610][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.610][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.610][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.610][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.610][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.610][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.610][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.610][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.610][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.610][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.610][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.610][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.610][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.610][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.610][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.610][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.610][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.610][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.610][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.610][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.610][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.610][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.610][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.610][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.610][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.610][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.610][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.610][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.610][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.610][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.610][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.610][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.610][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.610][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.610][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.610][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.610][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.610][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.611][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.611][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.611][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.611][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.611][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.611][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.611][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.611][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.611][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.611][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.611][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.611][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.611][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.611][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.611][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.611][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.611][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.611][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.611][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.611][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.611][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.611][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 2100 batches in 59.289042ms +[2.611][PUT] put #2100 +[2.611][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.611][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.611][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.611][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.611][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.611][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.611][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.611][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.611][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.611][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.611][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.611][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.611][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.611][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.611][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.611][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.611][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.611][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.611][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.612][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.612][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.612][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.612][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.612][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.612][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.612][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.612][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.612][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.612][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.612][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.612][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.612][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.612][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.612][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.612][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.612][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.612][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.612][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.612][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.612][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.612][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.612][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.612][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.612][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.612][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.612][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.612][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.612][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.612][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.612][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.612][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.612][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.612][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.612][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.612][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.612][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.612][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.612][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.612][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.612][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.613][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.613][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.613][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.613][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.613][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.613][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.613][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.613][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.613][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.613][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.613][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.613][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.613][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.613][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.613][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.613][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.613][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.613][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.613][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.613][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.613][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.613][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.613][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.613][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.613][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.613][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.613][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.613][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.613][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.613][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.613][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.613][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.613][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.613][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.613][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.613][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.613][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.613][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.613][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.613][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 2200 batches in 61.769667ms +[2.614][PUT] put #2200 +[2.614][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.614][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.614][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.614][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.614][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.614][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.614][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.614][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.614][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.614][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.614][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.614][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.614][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.614][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.614][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.614][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.614][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.614][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.614][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.614][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.614][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.614][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.614][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.614][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.614][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.614][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.614][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.614][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.614][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.614][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.614][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.614][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.614][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.614][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.614][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.614][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.614][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.614][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.614][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.614][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.615][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.615][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.615][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.615][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.615][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.615][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.615][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.615][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.615][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.615][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.615][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.615][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.615][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.615][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.615][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.615][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.615][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.615][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.615][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.615][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.615][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.615][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.615][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.615][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.615][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.615][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.615][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.615][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.615][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.615][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.615][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.615][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.615][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.615][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.615][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.615][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.615][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.615][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.616][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.616][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.616][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.616][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.616][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.616][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.616][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.616][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.616][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.616][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.616][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.616][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.616][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.616][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.616][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.616][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.616][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.616][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.616][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.616][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.616][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.616][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 2300 batches in 64.290459ms +[2.616][PUT] put #2300 +[2.616][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.616][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.616][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.616][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.616][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.616][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.616][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.616][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.616][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.616][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.616][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.616][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.616][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.616][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.616][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.616][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.616][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.616][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.616][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.617][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.617][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.617][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.617][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.617][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.617][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.617][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.617][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.617][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.617][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.617][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.617][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.617][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.617][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.617][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.617][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.617][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.617][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.617][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.617][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.617][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.617][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.617][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.617][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.617][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.617][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.617][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.617][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.617][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.617][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.617][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.617][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.617][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.617][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.617][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.617][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.617][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.617][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.617][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.617][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.617][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.618][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.618][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.618][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.618][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.618][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.618][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.618][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.618][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.618][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.618][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.618][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.618][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.618][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.618][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.618][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.618][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.618][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.618][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.618][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.618][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.618][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.618][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.618][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.618][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.618][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.618][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.618][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.618][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.618][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.618][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.618][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.618][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.618][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.618][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.618][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.618][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.618][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.618][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.618][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.619][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 2400 batches in 66.797875ms +[2.619][PUT] put #2400 +[2.619][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.619][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.619][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.619][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.619][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.619][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.619][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.619][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.619][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.619][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.619][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.619][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.619][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.619][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.619][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.619][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.619][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.619][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.619][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.619][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.619][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.619][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.619][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.619][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.619][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.619][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.619][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.619][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.619][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.619][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.619][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.619][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.619][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.619][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.619][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.619][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.619][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.620][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.620][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.620][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.620][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.620][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.620][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.620][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.620][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.620][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.620][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.620][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.620][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.620][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.620][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.620][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.620][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.620][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.620][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.620][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.620][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.620][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.620][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.620][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.620][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.620][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.620][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.620][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.620][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.620][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.620][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.620][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.620][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.620][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.620][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.620][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.620][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.620][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.620][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.620][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.620][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 2500 batches in 69.34425ms +[2.621][PUT] put #2500 +[2.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 2600 batches in 71.744917ms +[2.624][PUT] put #2600 +[2.624][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.624][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.624][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.624][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.624][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.624][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.624][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.624][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.624][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.624][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.624][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.624][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.624][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.624][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.624][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.624][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.624][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.624][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.624][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.624][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.624][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.624][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.624][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.624][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.624][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.624][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.624][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.624][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.624][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.624][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.624][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.624][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.624][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.624][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.624][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.624][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.624][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.624][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.624][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 2700 batches in 74.309167ms +[2.626][PUT] put #2700 +[2.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 2800 batches in 76.770709ms +[2.629][PUT] put #2800 +[2.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 2900 batches in 79.252ms +[2.631][PUT] put #2900 +[2.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 3000 batches in 81.754ms +[2.634][PUT] put #3000 +[2.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 3100 batches in 84.316375ms +[2.636][PUT] put #3100 +[2.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 3200 batches in 86.798625ms +[2.639][PUT] put #3200 +[2.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 3300 batches in 89.237042ms +[2.641][PUT] put #3300 +[2.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 3400 batches in 91.737375ms +[2.644][PUT] put #3400 +[2.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.645][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.645][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.645][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.645][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.645][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.645][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.645][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.645][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.645][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.645][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.645][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.645][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.645][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.645][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.645][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.645][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.645][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.645][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.645][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.645][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.645][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.645][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.645][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.645][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.645][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.645][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.645][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.645][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.645][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.645][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.645][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.645][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.645][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.645][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.645][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.645][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.645][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 3500 batches in 94.29725ms +[2.646][PUT] put #3500 +[2.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 3600 batches in 96.816625ms +[2.649][PUT] put #3600 +[2.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 3700 batches in 99.407917ms +[2.651][PUT] put #3700 +[2.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 3800 batches in 101.90125ms +[2.654][PUT] put #3800 +[2.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 3900 batches in 104.30125ms +[2.656][PUT] put #3900 +[2.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 4000 batches in 106.693292ms +[2.658][PUT] put #4000 +[2.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.659][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.659][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.659][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.659][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.659][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.659][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.659][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.659][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.659][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.659][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.659][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.659][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.659][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.659][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.659][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.659][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.659][DISPATCHER] Task 'memtable_flusher' received message: FlushMemTable { done: None } +[2.659][FLUSH_HANDLER] Received FlushMemTable: batches=4019, remaining=3981, pending_wal_bytes=268437048 +[2.659][MEMTABLE_FLUSH] Starting do_flush: 4019 batches, 268437048 pending WAL bytes +[2.659][FREEZE] Starting freeze_memtable +[2.659][FREEZE] WAL flush: pending_bytes=268437048, remaining_capacity=3981 +[2.785][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.785][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.785][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.785][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.785][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.785][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.785][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.785][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.785][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.785][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.785][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.785][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.785][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.785][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.785][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.785][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.785][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.785][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 4100 batches in 235.293834ms +[2.787][PUT] put #4100 +[2.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 4200 batches in 237.784959ms +[2.790][PUT] put #4200 +[2.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 4300 batches in 240.252417ms +[2.792][PUT] put #4300 +[2.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 4400 batches in 242.725167ms +[2.795][PUT] put #4400 +[2.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.797][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.797][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.797][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.797][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.797][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.797][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.797][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.797][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.797][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.797][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.797][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.797][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.797][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.797][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.797][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.797][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.797][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.797][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.797][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.797][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 4500 batches in 245.2535ms +[2.797][PUT] put #4500 +[2.797][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.797][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.797][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.797][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.797][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.797][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.797][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.797][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.797][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.797][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.797][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.797][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.797][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.797][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.797][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.797][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.797][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.797][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.797][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 4600 batches in 247.682834ms +[2.799][PUT] put #4600 +[2.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 4700 batches in 250.122625ms +[2.802][PUT] put #4700 +[2.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 4800 batches in 252.595375ms +[2.804][PUT] put #4800 +[2.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 4900 batches in 255.064917ms +[2.807][PUT] put #4900 +[2.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 5000 batches in 257.502375ms +[2.809][PUT] put #5000 +[2.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 5100 batches in 259.944084ms +[2.812][PUT] put #5100 +[2.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 5200 batches in 262.455125ms +[2.814][PUT] put #5200 +[2.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 5300 batches in 264.932ms +[2.817][PUT] put #5300 +[2.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 5400 batches in 267.419959ms +[2.819][PUT] put #5400 +[2.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 5500 batches in 269.64125ms +[2.821][PUT] put #5500 +[2.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 5600 batches in 272.14175ms +[2.824][PUT] put #5600 +[2.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 5700 batches in 274.618959ms +[2.826][PUT] put #5700 +[2.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 5800 batches in 277.067917ms +[2.829][PUT] put #5800 +[2.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 5900 batches in 279.569209ms +[2.831][PUT] put #5900 +[2.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 6000 batches in 282.061917ms +[2.834][PUT] put #6000 +[2.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 6100 batches in 284.457459ms +[2.836][PUT] put #6100 +[2.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 6200 batches in 286.970959ms +[2.839][PUT] put #6200 +[2.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 6300 batches in 289.448334ms +[2.841][PUT] put #6300 +[2.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 6400 batches in 291.9055ms +[2.844][PUT] put #6400 +[2.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 6500 batches in 294.336125ms +[2.846][PUT] put #6500 +[2.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 6600 batches in 296.850584ms +[2.849][PUT] put #6600 +[2.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 6700 batches in 299.271042ms +[2.851][PUT] put #6700 +[2.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 6800 batches in 301.792292ms +[2.854][PUT] put #6800 +[2.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 6900 batches in 304.118375ms +[2.856][PUT] put #6900 +[2.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 7000 batches in 306.55575ms +[2.858][PUT] put #7000 +[2.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 7100 batches in 308.962084ms +[2.861][PUT] put #7100 +[2.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.863][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.863][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.863][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.863][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.863][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.863][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.863][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.863][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.863][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.863][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.863][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.863][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.863][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.863][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.863][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.863][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.863][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.863][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.863][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.863][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.863][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.863][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.863][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.863][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.863][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.863][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.863][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[2.863][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 7200 batches in 311.434042ms +[2.863][PUT] put #7200 +[2.863][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[0.000][BP_TRIGGER] iter=0 batch_store_nearly_full: remaining=799/8000 (<10%), triggering flush and waiting +[2.863][TRIGGER] Sending FlushMemTable message and waiting for completion +[10.997][WAL_FLUSH] S3 I/O complete: 8440ms for 157 batches (6847202 bytes) +[10.998][WAL_FLUSH] Complete: total=8442ms, 157 batches flushed +[10.999][DISPATCHER] wal_flusher select iteration 1 +[10.999][DISPATCHER] Task 'wal_flusher' ticker fired +[10.999] [WAL_TICK] pending_bytes=0 +[10.999][DISPATCHER] wal_flusher select iteration 2 +[10.999][DISPATCHER] Task 'wal_flusher' ticker fired +[10.999] [WAL_TICK] pending_bytes=0 +[10.999][DISPATCHER] wal_flusher select iteration 3 +[10.999][DISPATCHER] Task 'wal_flusher' ticker fired +[10.999] [WAL_TICK] pending_bytes=0 +[10.999][DISPATCHER] wal_flusher select iteration 4 +[10.999][DISPATCHER] Task 'wal_flusher' ticker fired +[10.999] [WAL_TICK] pending_bytes=0 +[10.999][DISPATCHER] wal_flusher select iteration 5 +[10.999][DISPATCHER] Task 'wal_flusher' ticker fired +[10.999] [WAL_TICK] pending_bytes=0 +[10.999][DISPATCHER] wal_flusher select iteration 6 +[10.999][DISPATCHER] Task 'wal_flusher' ticker fired +[10.999] [WAL_TICK] pending_bytes=0 +[10.999][DISPATCHER] wal_flusher select iteration 7 +[10.999][DISPATCHER] Task 'wal_flusher' ticker fired +[10.999] [WAL_TICK] pending_bytes=0 +[10.999][DISPATCHER] wal_flusher select iteration 8 +[10.999][DISPATCHER] Task 'wal_flusher' ticker fired +[10.999] [WAL_TICK] pending_bytes=0 +[10.999][DISPATCHER] wal_flusher select iteration 9 +[10.999][DISPATCHER] Task 'wal_flusher' ticker fired +[10.999] [WAL_TICK] pending_bytes=0 +[10.999][DISPATCHER] Task 'wal_flusher' ticker fired +[10.999] [WAL_TICK] pending_bytes=0 +[10.999][DISPATCHER] Task 'wal_flusher' ticker fired +[10.999] [WAL_TICK] pending_bytes=0 +[10.999][DISPATCHER] Task 'wal_flusher' ticker fired +[10.999] [WAL_TICK] pending_bytes=0 +[10.999][DISPATCHER] Task 'wal_flusher' ticker fired +[10.999] [WAL_TICK] pending_bytes=0 +[10.999][DISPATCHER] Task 'wal_flusher' ticker fired +[10.999] [WAL_TICK] pending_bytes=0 +[10.999][DISPATCHER] Task 'wal_flusher' ticker fired +[10.999] [WAL_TICK] pending_bytes=0 +[10.999][DISPATCHER] Task 'wal_flusher' ticker fired +[10.999] [WAL_TICK] pending_bytes=0 +[10.999][DISPATCHER] Task 'wal_flusher' ticker fired +[10.999] [WAL_TICK] pending_bytes=0 +[10.999][DISPATCHER] Task 'wal_flusher' ticker fired +[10.999] [WAL_TICK] pending_bytes=0 +[10.999][DISPATCHER] Task 'wal_flusher' ticker fired +[10.999] [WAL_TICK] pending_bytes=0 +[10.999][DISPATCHER] Task 'wal_flusher' ticker fired +[10.999] [WAL_TICK] pending_bytes=0 +[10.999][DISPATCHER] Task 'wal_flusher' ticker fired +[10.999] [WAL_TICK] pending_bytes=0 +[10.999][DISPATCHER] Task 'wal_flusher' ticker fired +[10.999] [WAL_TICK] pending_bytes=0 +[10.999][DISPATCHER] Task 'wal_flusher' ticker fired +[10.999] [WAL_TICK] pending_bytes=0 +[10.999][DISPATCHER] Task 'wal_flusher' ticker fired +[10.999] [WAL_TICK] pending_bytes=0 +[10.999][DISPATCHER] Task 'wal_flusher' ticker fired +[10.999] [WAL_TICK] pending_bytes=0 +[10.999][DISPATCHER] Task 'wal_flusher' ticker fired +[10.999] [WAL_TICK] pending_bytes=0 +[10.999][DISPATCHER] Task 'wal_flusher' ticker fired +[10.999] [WAL_TICK] pending_bytes=0 +[10.999][DISPATCHER] Task 'wal_flusher' ticker fired +[10.999] [WAL_TICK] pending_bytes=0 +[10.999][DISPATCHER] Task 'wal_flusher' ticker fired +[10.999] [WAL_TICK] pending_bytes=0 +[10.999][DISPATCHER] Task 'wal_flusher' ticker fired +[10.999] [WAL_TICK] pending_bytes=0 +[10.999][DISPATCHER] Task 'wal_flusher' ticker fired +[10.999] [WAL_TICK] pending_bytes=0 +[10.999][DISPATCHER] Task 'wal_flusher' ticker fired +[10.999] [WAL_TICK] pending_bytes=0 +[10.999][DISPATCHER] Task 'wal_flusher' ticker fired +[10.999] [WAL_TICK] pending_bytes=0 +[10.999][DISPATCHER] Task 'wal_flusher' ticker fired +[10.999] [WAL_TICK] pending_bytes=0 +[10.999][DISPATCHER] Task 'wal_flusher' ticker fired +[10.999] [WAL_TICK] pending_bytes=0 +[10.999][DISPATCHER] Task 'wal_flusher' ticker fired +[10.999] [WAL_TICK] pending_bytes=0 +[10.999][DISPATCHER] Task 'wal_flusher' ticker fired +[10.999] [WAL_TICK] pending_bytes=0 +[10.999][DISPATCHER] Task 'wal_flusher' ticker fired +[10.999] [WAL_TICK] pending_bytes=0 +[10.999][DISPATCHER] Task 'wal_flusher' ticker fired +[10.999] [WAL_TICK] pending_bytes=0 +[10.999][DISPATCHER] Task 'wal_flusher' ticker fired +[10.999] [WAL_TICK] pending_bytes=0 +[10.999][DISPATCHER] Task 'wal_flusher' ticker fired +[10.999] [WAL_TICK] pending_bytes=0 +[10.999][DISPATCHER] Task 'wal_flusher' ticker fired +[10.999] [WAL_TICK] pending_bytes=0 +[10.999][DISPATCHER] Task 'wal_flusher' ticker fired +[11.000] [WAL_TICK] pending_bytes=0 +[10.999][DISPATCHER] Task 'wal_flusher' ticker fired +[11.000] [WAL_TICK] pending_bytes=0 +[10.999][DISPATCHER] Task 'wal_flusher' ticker fired +[11.000] [WAL_TICK] pending_bytes=0 +[11.000][DISPATCHER] Task 'wal_flusher' ticker fired +[11.000] [WAL_TICK] pending_bytes=0 +[11.000][DISPATCHER] Task 'wal_flusher' ticker fired +[11.000] [WAL_TICK] pending_bytes=0 +[11.000][DISPATCHER] Task 'wal_flusher' ticker fired +[11.000] [WAL_TICK] pending_bytes=0 +[11.000][DISPATCHER] Task 'wal_flusher' ticker fired +[11.000] [WAL_TICK] pending_bytes=0 +[11.000][DISPATCHER] Task 'wal_flusher' ticker fired +[11.000] [WAL_TICK] pending_bytes=0 +[11.000][DISPATCHER] Task 'wal_flusher' ticker fired +[11.000] [WAL_TICK] pending_bytes=0 +[11.000][DISPATCHER] Task 'wal_flusher' ticker fired +[11.000] [WAL_TICK] pending_bytes=0 +[11.000][DISPATCHER] Task 'wal_flusher' ticker fired +[11.000] [WAL_TICK] pending_bytes=0 +[11.000][DISPATCHER] Task 'wal_flusher' ticker fired +[11.000] [WAL_TICK] pending_bytes=0 +[11.000][DISPATCHER] Task 'wal_flusher' ticker fired +[11.000] [WAL_TICK] pending_bytes=0 +[11.000][DISPATCHER] Task 'wal_flusher' ticker fired +[11.000] [WAL_TICK] pending_bytes=0 +[11.000][DISPATCHER] Task 'wal_flusher' ticker fired +[11.000] [WAL_TICK] pending_bytes=0 +[11.000][DISPATCHER] Task 'wal_flusher' ticker fired +[11.000] [WAL_TICK] pending_bytes=0 +[11.000][DISPATCHER] Task 'wal_flusher' ticker fired +[11.000] [WAL_TICK] pending_bytes=0 +[11.000][DISPATCHER] Task 'wal_flusher' ticker fired +[11.000] [WAL_TICK] pending_bytes=0 +[11.000][DISPATCHER] Task 'wal_flusher' ticker fired +[11.000] [WAL_TICK] pending_bytes=0 +[11.000][DISPATCHER] Task 'wal_flusher' ticker fired +[11.000] [WAL_TICK] pending_bytes=0 +[11.000][DISPATCHER] Task 'wal_flusher' ticker fired +[11.000] [WAL_TICK] pending_bytes=0 +[11.000][DISPATCHER] Task 'wal_flusher' ticker fired +[11.000] [WAL_TICK] pending_bytes=0 +[11.000][DISPATCHER] Task 'wal_flusher' ticker fired +[11.000] [WAL_TICK] pending_bytes=0 +[11.000][DISPATCHER] Task 'wal_flusher' ticker fired +[11.000] [WAL_TICK] pending_bytes=0 +[11.000][DISPATCHER] Task 'wal_flusher' ticker fired +[11.000] [WAL_TICK] pending_bytes=0 +[11.000][DISPATCHER] Task 'wal_flusher' ticker fired +[11.000] [WAL_TICK] pending_bytes=0 +[11.000][DISPATCHER] Task 'wal_flusher' ticker fired +[11.000] [WAL_TICK] pending_bytes=0 +[11.000][DISPATCHER] Task 'wal_flusher' ticker fired +[11.000] [WAL_TICK] pending_bytes=0 +[11.000][DISPATCHER] Task 'wal_flusher' ticker fired +[11.000] [WAL_TICK] pending_bytes=0 +[11.000][DISPATCHER] Task 'wal_flusher' ticker fired +[11.000] [WAL_TICK] pending_bytes=0 +[11.000][DISPATCHER] Task 'wal_flusher' ticker fired +[11.000] [WAL_TICK] pending_bytes=0 +[11.000][DISPATCHER] Task 'wal_flusher' ticker fired +[11.000] [WAL_TICK] pending_bytes=0 +[11.000][DISPATCHER] Task 'wal_flusher' ticker fired +[11.000] [WAL_TICK] pending_bytes=0 +[11.000][DISPATCHER] Task 'wal_flusher' ticker fired +[11.000] [WAL_TICK] pending_bytes=0 +[11.000][DISPATCHER] Task 'wal_flusher' ticker fired +[11.000] [WAL_TICK] pending_bytes=0 +[11.000][DISPATCHER] Task 'wal_flusher' ticker fired +[11.000] [WAL_TICK] pending_bytes=0 +[11.000][DISPATCHER] Task 'wal_flusher' ticker fired +[11.000] [WAL_TICK] pending_bytes=0 +[11.000][DISPATCHER] Task 'wal_flusher' ticker fired +[11.000] [WAL_TICK] pending_bytes=0 +[11.000][DISPATCHER] Task 'wal_flusher' ticker fired +[11.000] [WAL_TICK] pending_bytes=0 +[11.000][DISPATCHER] Task 'wal_flusher' ticker fired +[11.000] [WAL_TICK] pending_bytes=0 +[11.000][DISPATCHER] Task 'wal_flusher' ticker fired +[11.000] [WAL_TICK] pending_bytes=0 +[11.000][DISPATCHER] Task 'wal_flusher' ticker fired +[11.000] [WAL_TICK] pending_bytes=0 +[11.054][DISPATCHER] Task 'wal_flusher' ticker fired +[11.054] [WAL_TICK] pending_bytes=0 +[11.153][DISPATCHER] Task 'wal_flusher' ticker fired +[11.153] [WAL_TICK] pending_bytes=0 +[11.253][DISPATCHER] Task 'wal_flusher' ticker fired +[11.253] [WAL_TICK] pending_bytes=0 +[11.353][DISPATCHER] Task 'wal_flusher' ticker fired +[11.353] [WAL_TICK] pending_bytes=0 +[11.453][DISPATCHER] Task 'wal_flusher' ticker fired +[11.453] [WAL_TICK] pending_bytes=0 +[11.554][DISPATCHER] Task 'wal_flusher' ticker fired +[11.554] [WAL_TICK] pending_bytes=0 +[11.654][DISPATCHER] Task 'wal_flusher' ticker fired +[11.654] [WAL_TICK] pending_bytes=0 +[11.754][DISPATCHER] Task 'wal_flusher' ticker fired +[11.754] [WAL_TICK] pending_bytes=0 +[11.854][DISPATCHER] Task 'wal_flusher' ticker fired +[11.854] [WAL_TICK] pending_bytes=0 +[11.953][DISPATCHER] Task 'wal_flusher' ticker fired +[11.953] [WAL_TICK] pending_bytes=0 +[12.053][DISPATCHER] Task 'wal_flusher' ticker fired +[12.053] [WAL_TICK] pending_bytes=0 +[12.153][DISPATCHER] Task 'wal_flusher' ticker fired +[12.153] [WAL_TICK] pending_bytes=0 +[12.253][DISPATCHER] Task 'wal_flusher' ticker fired +[12.253] [WAL_TICK] pending_bytes=0 +[12.355][DISPATCHER] Task 'wal_flusher' ticker fired +[12.355] [WAL_TICK] pending_bytes=0 +[12.454][DISPATCHER] Task 'wal_flusher' ticker fired +[12.454] [WAL_TICK] pending_bytes=0 +[12.454][DISPATCHER] wal_flusher select iteration 100 +[12.553][DISPATCHER] Task 'wal_flusher' ticker fired +[12.553] [WAL_TICK] pending_bytes=0 +[12.653][DISPATCHER] Task 'wal_flusher' ticker fired +[12.653] [WAL_TICK] pending_bytes=0 +[12.754][DISPATCHER] Task 'wal_flusher' ticker fired +[12.754] [WAL_TICK] pending_bytes=0 +[12.854][DISPATCHER] Task 'wal_flusher' ticker fired +[12.854] [WAL_TICK] pending_bytes=0 +[12.954][DISPATCHER] Task 'wal_flusher' ticker fired +[12.954] [WAL_TICK] pending_bytes=0 +[13.054][DISPATCHER] Task 'wal_flusher' ticker fired +[13.054] [WAL_TICK] pending_bytes=0 +[13.154][DISPATCHER] Task 'wal_flusher' ticker fired +[13.154] [WAL_TICK] pending_bytes=0 +[13.253][DISPATCHER] Task 'wal_flusher' ticker fired +[13.253] [WAL_TICK] pending_bytes=0 +[13.353][DISPATCHER] Task 'wal_flusher' ticker fired +[13.353] [WAL_TICK] pending_bytes=0 +[13.454][DISPATCHER] Task 'wal_flusher' ticker fired +[13.454] [WAL_TICK] pending_bytes=0 +[13.554][DISPATCHER] Task 'wal_flusher' ticker fired +[13.554] [WAL_TICK] pending_bytes=0 +[13.653][DISPATCHER] Task 'wal_flusher' ticker fired +[13.653] [WAL_TICK] pending_bytes=0 +[13.754][DISPATCHER] Task 'wal_flusher' ticker fired +[13.754] [WAL_TICK] pending_bytes=0 +[13.853][DISPATCHER] Task 'wal_flusher' ticker fired +[13.853] [WAL_TICK] pending_bytes=0 +[13.954][DISPATCHER] Task 'wal_flusher' ticker fired +[13.954] [WAL_TICK] pending_bytes=0 +[14.053][DISPATCHER] Task 'wal_flusher' ticker fired +[14.053] [WAL_TICK] pending_bytes=0 +[14.154][DISPATCHER] Task 'wal_flusher' ticker fired +[14.154] [WAL_TICK] pending_bytes=0 +[14.254][DISPATCHER] Task 'wal_flusher' ticker fired +[14.254] [WAL_TICK] pending_bytes=0 +[14.353][DISPATCHER] Task 'wal_flusher' ticker fired +[14.353] [WAL_TICK] pending_bytes=0 +[14.453][DISPATCHER] Task 'wal_flusher' ticker fired +[14.453] [WAL_TICK] pending_bytes=0 +[14.553][DISPATCHER] Task 'wal_flusher' ticker fired +[14.553] [WAL_TICK] pending_bytes=0 +[14.653][DISPATCHER] Task 'wal_flusher' ticker fired +[14.653] [WAL_TICK] pending_bytes=0 +[14.754][DISPATCHER] Task 'wal_flusher' ticker fired +[14.754] [WAL_TICK] pending_bytes=0 +[14.853][DISPATCHER] Task 'wal_flusher' ticker fired +[14.853] [WAL_TICK] pending_bytes=0 +[14.953][DISPATCHER] Task 'wal_flusher' ticker fired +[14.953] [WAL_TICK] pending_bytes=0 +[15.053][DISPATCHER] Task 'wal_flusher' ticker fired +[15.053] [WAL_TICK] pending_bytes=0 +[15.153][DISPATCHER] Task 'wal_flusher' ticker fired +[15.153] [WAL_TICK] pending_bytes=0 +[15.253][DISPATCHER] Task 'wal_flusher' ticker fired +[15.253] [WAL_TICK] pending_bytes=0 +[15.353][DISPATCHER] Task 'wal_flusher' ticker fired +[15.353] [WAL_TICK] pending_bytes=0 +[15.454][DISPATCHER] Task 'wal_flusher' ticker fired +[15.454] [WAL_TICK] pending_bytes=0 +[15.553][DISPATCHER] Task 'wal_flusher' ticker fired +[15.553] [WAL_TICK] pending_bytes=0 +[15.654][DISPATCHER] Task 'wal_flusher' ticker fired +[15.655] [WAL_TICK] pending_bytes=0 +[15.753][DISPATCHER] Task 'wal_flusher' ticker fired +[15.753] [WAL_TICK] pending_bytes=0 +[15.853][DISPATCHER] Task 'wal_flusher' ticker fired +[15.853] [WAL_TICK] pending_bytes=0 +[15.953][DISPATCHER] Task 'wal_flusher' ticker fired +[15.954] [WAL_TICK] pending_bytes=0 +[16.053][DISPATCHER] Task 'wal_flusher' ticker fired +[16.053] [WAL_TICK] pending_bytes=0 +[16.153][DISPATCHER] Task 'wal_flusher' ticker fired +[16.153] [WAL_TICK] pending_bytes=0 +[16.254][DISPATCHER] Task 'wal_flusher' ticker fired +[16.254] [WAL_TICK] pending_bytes=0 +[16.354][DISPATCHER] Task 'wal_flusher' ticker fired +[16.354] [WAL_TICK] pending_bytes=0 +[16.453][DISPATCHER] Task 'wal_flusher' ticker fired +[16.453] [WAL_TICK] pending_bytes=0 +[16.553][DISPATCHER] Task 'wal_flusher' ticker fired +[16.553] [WAL_TICK] pending_bytes=0 +[16.653][DISPATCHER] Task 'wal_flusher' ticker fired +[16.653] [WAL_TICK] pending_bytes=0 +[16.753][DISPATCHER] Task 'wal_flusher' ticker fired +[16.754] [WAL_TICK] pending_bytes=0 +[16.853][DISPATCHER] Task 'wal_flusher' ticker fired +[16.853] [WAL_TICK] pending_bytes=0 +[16.954][DISPATCHER] Task 'wal_flusher' ticker fired +[16.954] [WAL_TICK] pending_bytes=0 +[17.054][DISPATCHER] Task 'wal_flusher' ticker fired +[17.054] [WAL_TICK] pending_bytes=0 +[17.153][DISPATCHER] Task 'wal_flusher' ticker fired +[17.153] [WAL_TICK] pending_bytes=0 +[17.254][DISPATCHER] Task 'wal_flusher' ticker fired +[17.255] [WAL_TICK] pending_bytes=0 +[17.353][DISPATCHER] Task 'wal_flusher' ticker fired +[17.354] [WAL_TICK] pending_bytes=0 +[17.454][DISPATCHER] Task 'wal_flusher' ticker fired +[17.454] [WAL_TICK] pending_bytes=0 +[17.553][DISPATCHER] Task 'wal_flusher' ticker fired +[17.553] [WAL_TICK] pending_bytes=0 +[17.653][DISPATCHER] Task 'wal_flusher' ticker fired +[17.653] [WAL_TICK] pending_bytes=0 +[17.753][DISPATCHER] Task 'wal_flusher' ticker fired +[17.753] [WAL_TICK] pending_bytes=0 +[17.853][DISPATCHER] Task 'wal_flusher' ticker fired +[17.853] [WAL_TICK] pending_bytes=0 +[17.953][DISPATCHER] Task 'wal_flusher' ticker fired +[17.953] [WAL_TICK] pending_bytes=0 +[18.054][DISPATCHER] Task 'wal_flusher' ticker fired +[18.054] [WAL_TICK] pending_bytes=0 +[18.154][DISPATCHER] Task 'wal_flusher' ticker fired +[18.154] [WAL_TICK] pending_bytes=0 +[18.253][DISPATCHER] Task 'wal_flusher' ticker fired +[18.253] [WAL_TICK] pending_bytes=0 +[18.353][DISPATCHER] Task 'wal_flusher' ticker fired +[18.353] [WAL_TICK] pending_bytes=0 +[18.453][DISPATCHER] Task 'wal_flusher' ticker fired +[18.453] [WAL_TICK] pending_bytes=0 +[18.553][DISPATCHER] Task 'wal_flusher' ticker fired +[18.553] [WAL_TICK] pending_bytes=0 +[18.653][DISPATCHER] Task 'wal_flusher' ticker fired +[18.653] [WAL_TICK] pending_bytes=0 +[18.753][DISPATCHER] Task 'wal_flusher' ticker fired +[18.753] [WAL_TICK] pending_bytes=0 +[18.853][DISPATCHER] Task 'wal_flusher' ticker fired +[18.853] [WAL_TICK] pending_bytes=0 +[18.953][DISPATCHER] Task 'wal_flusher' ticker fired +[18.953] [WAL_TICK] pending_bytes=0 +[19.054][DISPATCHER] Task 'wal_flusher' ticker fired +[19.054] [WAL_TICK] pending_bytes=0 +[19.153][DISPATCHER] Task 'wal_flusher' ticker fired +[19.153] [WAL_TICK] pending_bytes=0 +[19.253][DISPATCHER] Task 'wal_flusher' ticker fired +[19.253] [WAL_TICK] pending_bytes=0 +[19.354][DISPATCHER] Task 'wal_flusher' ticker fired +[19.354] [WAL_TICK] pending_bytes=0 +[19.454][DISPATCHER] Task 'wal_flusher' ticker fired +[19.454] [WAL_TICK] pending_bytes=0 +[19.553][DISPATCHER] Task 'wal_flusher' ticker fired +[19.553] [WAL_TICK] pending_bytes=0 +[19.654][DISPATCHER] Task 'wal_flusher' ticker fired +[19.654] [WAL_TICK] pending_bytes=0 +[19.754][DISPATCHER] Task 'wal_flusher' ticker fired +[19.754] [WAL_TICK] pending_bytes=0 +[19.853][DISPATCHER] Task 'wal_flusher' ticker fired +[19.853] [WAL_TICK] pending_bytes=0 +[19.953][DISPATCHER] Task 'wal_flusher' ticker fired +[19.953] [WAL_TICK] pending_bytes=0 +[20.053][DISPATCHER] Task 'wal_flusher' ticker fired +[20.053] [WAL_TICK] pending_bytes=0 +[20.154][DISPATCHER] Task 'wal_flusher' ticker fired +[20.154] [WAL_TICK] pending_bytes=0 +[20.253][DISPATCHER] Task 'wal_flusher' ticker fired +[20.253] [WAL_TICK] pending_bytes=0 +[20.354][DISPATCHER] Task 'wal_flusher' ticker fired +[20.354] [WAL_TICK] pending_bytes=0 +[20.453][DISPATCHER] Task 'wal_flusher' ticker fired +[20.453] [WAL_TICK] pending_bytes=0 +[20.553][DISPATCHER] Task 'wal_flusher' ticker fired +[20.554] [WAL_TICK] pending_bytes=0 +[20.654][DISPATCHER] Task 'wal_flusher' ticker fired +[20.654] [WAL_TICK] pending_bytes=0 +[20.754][DISPATCHER] Task 'wal_flusher' ticker fired +[20.754] [WAL_TICK] pending_bytes=0 +[20.854][DISPATCHER] Task 'wal_flusher' ticker fired +[20.854] [WAL_TICK] pending_bytes=0 +[20.955][DISPATCHER] Task 'wal_flusher' ticker fired +[20.955] [WAL_TICK] pending_bytes=0 +[21.053][DISPATCHER] Task 'wal_flusher' ticker fired +[21.054] [WAL_TICK] pending_bytes=0 diff --git a/rust/lance/Cargo.toml b/rust/lance/Cargo.toml index 1c08f799851..702fe7e9702 100644 --- a/rust/lance/Cargo.toml +++ b/rust/lance/Cargo.toml @@ -173,11 +173,7 @@ name = "mem_wal_write" harness = false [[bench]] -name = "mem_random_access" -harness = false - -[[bench]] -name = "mem_read_benchmark" +name = "memtable_read" harness = false [lints] diff --git a/rust/lance/benches/mem_random_access.rs b/rust/lance/benches/mem_random_access.rs deleted file mode 100644 index e57541c8997..00000000000 --- a/rust/lance/benches/mem_random_access.rs +++ /dev/null @@ -1,585 +0,0 @@ -// SPDX-License-Identifier: Apache-2.0 -// SPDX-FileCopyrightText: Copyright The Lance Authors - -//! Benchmark comparing random access performance between Arrow RecordBatches -//! and Lance files stored in memory. -//! -//! This benchmark tests different storage strategies for in-memory data: -//! -//! 1. **Arrow RecordBatches**: Direct in-memory access via Vec -//! 2. **Lance Single File**: All data in one Lance file (Dataset with 1 fragment) -//! 3. **Lance Fragmented**: Data across multiple files (1 file per N batches) -//! 4. **Lance Per-Batch**: Each record batch is a separate Lance file (like MemTable) -//! -//! ## Running the benchmark -//! -//! ```bash -//! cargo bench --bench mem_random_access -//! ``` -//! -//! ## Configuration -//! -//! - `BATCH_SIZE`: Number of rows per batch (default: 20) -//! - `NUM_BATCHES`: Total number of batches (default: 100) -//! - `VECTOR_DIM`: Vector dimension (default: 512) -//! - `NUM_ACCESSES`: Number of random accesses per iteration (default: 100) -//! - `SAMPLE_SIZE`: Number of benchmark iterations (default: 100) - -#![allow(clippy::print_stdout, clippy::print_stderr)] - -use std::sync::Arc; - -use arrow_array::{ - Array, FixedSizeListArray, Float32Array, Int64Array, RecordBatch, RecordBatchIterator, -}; -use arrow_schema::{DataType, Field, Schema as ArrowSchema}; -use criterion::{criterion_group, criterion_main, BenchmarkId, Criterion, Throughput}; -use lance::dataset::{Dataset, ProjectionRequest, WriteMode, WriteParams}; -use lance_arrow::FixedSizeListArrayExt; -#[cfg(target_os = "linux")] -use pprof::criterion::{Output, PProfProfiler}; -use rand::Rng; -#[cfg(target_os = "linux")] -use std::time::Duration; -use uuid::Uuid; - -const DEFAULT_BATCH_SIZE: usize = 20; -const DEFAULT_NUM_BATCHES: usize = 100; -const DEFAULT_VECTOR_DIM: i32 = 512; -const DEFAULT_NUM_ACCESSES: usize = 100; - -fn get_batch_size() -> usize { - std::env::var("BATCH_SIZE") - .ok() - .and_then(|s| s.parse().ok()) - .unwrap_or(DEFAULT_BATCH_SIZE) -} - -fn get_num_batches() -> usize { - std::env::var("NUM_BATCHES") - .ok() - .and_then(|s| s.parse().ok()) - .unwrap_or(DEFAULT_NUM_BATCHES) -} - -fn get_vector_dim() -> i32 { - std::env::var("VECTOR_DIM") - .ok() - .and_then(|s| s.parse().ok()) - .unwrap_or(DEFAULT_VECTOR_DIM) -} - -fn get_num_accesses() -> usize { - std::env::var("NUM_ACCESSES") - .ok() - .and_then(|s| s.parse().ok()) - .unwrap_or(DEFAULT_NUM_ACCESSES) -} - -fn get_sample_size() -> usize { - std::env::var("SAMPLE_SIZE") - .ok() - .and_then(|s| s.parse().ok()) - .unwrap_or(100) - .max(10) -} - -/// Create schema: (id: Int64, vector: FixedSizeList[dim]) -fn create_schema(vector_dim: i32) -> Arc { - Arc::new(ArrowSchema::new(vec![ - Field::new("id", DataType::Int64, false), - Field::new( - "vector", - DataType::FixedSizeList( - Arc::new(Field::new("item", DataType::Float32, true)), - vector_dim, - ), - false, - ), - ])) -} - -/// Create a test batch with given parameters. -fn create_batch( - schema: &ArrowSchema, - start_id: i64, - num_rows: usize, - vector_dim: i32, -) -> RecordBatch { - let vectors: Vec = (0..num_rows) - .flat_map(|i| { - let seed = (start_id as usize + i) as f32; - (0..vector_dim as usize).map(move |d| (seed * 0.1 + d as f32 * 0.01).sin()) - }) - .collect(); - - let vector_array = - FixedSizeListArray::try_new_from_values(Float32Array::from(vectors), vector_dim).unwrap(); - - RecordBatch::try_new( - Arc::new(schema.clone()), - vec![ - Arc::new(Int64Array::from_iter_values( - start_id..start_id + num_rows as i64, - )), - Arc::new(vector_array), - ], - ) - .unwrap() -} - -/// Generate random row indices for access. -fn generate_random_indices(total_rows: usize, num_accesses: usize) -> Vec { - let mut rng = rand::rng(); - (0..num_accesses) - .map(|_| rng.random_range(0..total_rows)) - .collect() -} - -/// Convert absolute row indices to Lance row IDs (fragment_idx << 32 | row_within_fragment). -fn to_lance_row_ids(indices: &[usize], rows_per_fragment: usize) -> Vec { - indices - .iter() - .map(|&idx| { - let fragment_idx = idx / rows_per_fragment; - let row_within_fragment = idx % rows_per_fragment; - ((fragment_idx as u64) << 32) | (row_within_fragment as u64) - }) - .collect() -} - -/// Arrow RecordBatch storage for random access. -struct ArrowBatchStore { - batches: Vec, - batch_size: usize, -} - -impl ArrowBatchStore { - fn new(batches: Vec, batch_size: usize) -> Self { - Self { - batches, - batch_size, - } - } - - /// Access a specific row and return the vector column data (sliced view). - fn get_vector(&self, row_idx: usize) -> Arc { - let batch_idx = row_idx / self.batch_size; - let row_in_batch = row_idx % self.batch_size; - let batch = &self.batches[batch_idx]; - let vector_col = batch.column(1); - vector_col.slice(row_in_batch, 1) - } - - /// Access multiple rows and return vector data (simulating realistic access). - fn get_vectors(&self, indices: &[usize]) -> Vec> { - indices.iter().map(|&idx| self.get_vector(idx)).collect() - } -} - -/// Create a Lance dataset with all data in a single file. -async fn create_lance_single_file( - schema: &ArrowSchema, - batches: Vec, - uri: &str, -) -> Dataset { - let total_rows: usize = batches.iter().map(|b| b.num_rows()).sum(); - let write_params = WriteParams { - max_rows_per_file: total_rows + 1, - mode: WriteMode::Create, - ..Default::default() - }; - - let reader = RecordBatchIterator::new(batches.into_iter().map(Ok), Arc::new(schema.clone())); - Dataset::write(reader, uri, Some(write_params)) - .await - .unwrap() -} - -/// Create a Lance dataset with data split into multiple files. -async fn create_lance_multi_file( - schema: &ArrowSchema, - batches: Vec, - uri: &str, - batches_per_file: usize, -) -> Dataset { - let rows_per_file = batches_per_file * batches[0].num_rows(); - let write_params = WriteParams { - max_rows_per_file: rows_per_file, - mode: WriteMode::Create, - ..Default::default() - }; - - let reader = RecordBatchIterator::new(batches.into_iter().map(Ok), Arc::new(schema.clone())); - Dataset::write(reader, uri, Some(write_params)) - .await - .unwrap() -} - -/// Create a Lance dataset with one file per batch (like MemTable). -async fn create_lance_per_batch( - schema: &ArrowSchema, - batches: Vec, - uri: &str, -) -> Dataset { - let batch_size = batches[0].num_rows(); - let write_params = WriteParams { - max_rows_per_file: batch_size, - mode: WriteMode::Create, - ..Default::default() - }; - - let reader = RecordBatchIterator::new(batches.into_iter().map(Ok), Arc::new(schema.clone())); - Dataset::write(reader, uri, Some(write_params)) - .await - .unwrap() -} - -/// Random access via Lance Dataset take_rows. -async fn lance_random_access( - dataset: &Dataset, - row_ids: &[u64], - projection: Arc, -) { - let _batch = dataset - .take_rows(row_ids, ProjectionRequest::Schema(projection)) - .await - .unwrap(); -} - -fn bench_random_access(c: &mut Criterion) { - let rt = tokio::runtime::Runtime::new().unwrap(); - - let batch_size = get_batch_size(); - let num_batches = get_num_batches(); - let vector_dim = get_vector_dim(); - let num_accesses = get_num_accesses(); - let sample_size = get_sample_size(); - - let total_rows = batch_size * num_batches; - let schema = create_schema(vector_dim); - - println!("=== Memory Random Access Benchmark ==="); - println!("Batch size: {} rows", batch_size); - println!("Num batches: {}", num_batches); - println!("Total rows: {}", total_rows); - println!("Vector dim: {}", vector_dim); - println!("Num accesses per iteration: {}", num_accesses); - println!(); - - // Generate test data - let batches: Vec = (0..num_batches) - .map(|i| create_batch(&schema, (i * batch_size) as i64, batch_size, vector_dim)) - .collect(); - - // Calculate data size - let data_size_bytes: usize = batches.iter().map(|b| b.get_array_memory_size()).sum(); - println!( - "Total data size: {:.2} MB", - data_size_bytes as f64 / 1024.0 / 1024.0 - ); - println!(); - - let mut group = c.benchmark_group("MemRandomAccess"); - group.throughput(Throughput::Elements(num_accesses as u64)); - group.sample_size(sample_size); - - // Pre-generate random indices for consistent comparison - let random_indices = generate_random_indices(total_rows, num_accesses); - - // 1. Arrow RecordBatches direct access - { - let store = ArrowBatchStore::new(batches.clone(), batch_size); - let label = format!("{}x{}_dim{}", num_batches, batch_size, vector_dim); - - group.bench_with_input( - BenchmarkId::new("Arrow_Direct", &label), - &random_indices, - |b, indices| { - b.iter(|| { - let _vectors = store.get_vectors(indices); - }); - }, - ); - } - - // 2. Lance single file - { - let uri = format!("memory://lance_single_{}", Uuid::new_v4()); - let dataset = rt.block_on(create_lance_single_file(&schema, batches.clone(), &uri)); - let projection = Arc::new(dataset.schema().clone()); - let num_fragments = dataset.get_fragments().len(); - println!("Lance single file: {} fragments", num_fragments); - - // Single file = all rows in one fragment - let row_ids = to_lance_row_ids(&random_indices, total_rows); - - let label = format!("{}x{}_dim{}", num_batches, batch_size, vector_dim); - let dataset = Arc::new(dataset); - group.bench_with_input( - BenchmarkId::new("Lance_SingleFile", &label), - &row_ids, - |b, row_ids| { - let dataset = dataset.clone(); - let projection = projection.clone(); - b.to_async(&rt).iter(|| { - let dataset = dataset.clone(); - let projection = projection.clone(); - let row_ids = row_ids.clone(); - async move { - lance_random_access(&dataset, &row_ids, projection).await; - } - }); - }, - ); - } - - // 3. Lance fragmented (10 batches per file) - { - let batches_per_file = 10; - let rows_per_fragment = batches_per_file * batch_size; - let uri = format!("memory://lance_frag10_{}", Uuid::new_v4()); - let dataset = rt.block_on(create_lance_multi_file( - &schema, - batches.clone(), - &uri, - batches_per_file, - )); - let projection = Arc::new(dataset.schema().clone()); - let num_fragments = dataset.get_fragments().len(); - println!( - "Lance fragmented (10 batches/file): {} fragments", - num_fragments - ); - - let row_ids = to_lance_row_ids(&random_indices, rows_per_fragment); - - let label = format!("{}x{}_dim{}", num_batches, batch_size, vector_dim); - let dataset = Arc::new(dataset); - group.bench_with_input( - BenchmarkId::new("Lance_Frag10", &label), - &row_ids, - |b, row_ids| { - let dataset = dataset.clone(); - let projection = projection.clone(); - b.to_async(&rt).iter(|| { - let dataset = dataset.clone(); - let projection = projection.clone(); - let row_ids = row_ids.clone(); - async move { - lance_random_access(&dataset, &row_ids, projection).await; - } - }); - }, - ); - } - - // 4. Lance fragmented (5 batches per file) - { - let batches_per_file = 5; - let rows_per_fragment = batches_per_file * batch_size; - let uri = format!("memory://lance_frag5_{}", Uuid::new_v4()); - let dataset = rt.block_on(create_lance_multi_file( - &schema, - batches.clone(), - &uri, - batches_per_file, - )); - let projection = Arc::new(dataset.schema().clone()); - let num_fragments = dataset.get_fragments().len(); - println!( - "Lance fragmented (5 batches/file): {} fragments", - num_fragments - ); - - let row_ids = to_lance_row_ids(&random_indices, rows_per_fragment); - - let label = format!("{}x{}_dim{}", num_batches, batch_size, vector_dim); - let dataset = Arc::new(dataset); - group.bench_with_input( - BenchmarkId::new("Lance_Frag5", &label), - &row_ids, - |b, row_ids| { - let dataset = dataset.clone(); - let projection = projection.clone(); - b.to_async(&rt).iter(|| { - let dataset = dataset.clone(); - let projection = projection.clone(); - let row_ids = row_ids.clone(); - async move { - lance_random_access(&dataset, &row_ids, projection).await; - } - }); - }, - ); - } - - // 5. Lance per-batch (1 file per batch, like current MemTable) - { - let rows_per_fragment = batch_size; // 1 batch = 1 fragment - let uri = format!("memory://lance_per_batch_{}", Uuid::new_v4()); - let dataset = rt.block_on(create_lance_per_batch(&schema, batches, &uri)); - let projection = Arc::new(dataset.schema().clone()); - let num_fragments = dataset.get_fragments().len(); - println!( - "Lance per-batch (1 file per batch): {} fragments", - num_fragments - ); - - let row_ids = to_lance_row_ids(&random_indices, rows_per_fragment); - - let label = format!("{}x{}_dim{}", num_batches, batch_size, vector_dim); - let dataset = Arc::new(dataset); - group.bench_with_input( - BenchmarkId::new("Lance_PerBatch", &label), - &row_ids, - |b, row_ids| { - let dataset = dataset.clone(); - let projection = projection.clone(); - b.to_async(&rt).iter(|| { - let dataset = dataset.clone(); - let projection = projection.clone(); - let row_ids = row_ids.clone(); - async move { - lance_random_access(&dataset, &row_ids, projection).await; - } - }); - }, - ); - } - - group.finish(); - - println!(); - println!("=== Summary ==="); - println!("Benchmark complete. Use `cargo bench --bench mem_random_access -- --verbose` for detailed output."); -} - -/// Benchmark single row access latency. -fn bench_single_access(c: &mut Criterion) { - let rt = tokio::runtime::Runtime::new().unwrap(); - - let batch_size = get_batch_size(); - let num_batches = get_num_batches(); - let vector_dim = get_vector_dim(); - let sample_size = get_sample_size(); - - let total_rows = batch_size * num_batches; - let schema = create_schema(vector_dim); - - // Generate test data - let batches: Vec = (0..num_batches) - .map(|i| create_batch(&schema, (i * batch_size) as i64, batch_size, vector_dim)) - .collect(); - - let mut group = c.benchmark_group("SingleRowAccess"); - group.throughput(Throughput::Elements(1)); - group.sample_size(sample_size); - - // Generate single random index for each iteration - let random_indices = generate_random_indices(total_rows, 1); - let single_idx = random_indices[0]; - - // 1. Arrow direct single access - { - let store = ArrowBatchStore::new(batches.clone(), batch_size); - let label = format!("{}x{}_dim{}", num_batches, batch_size, vector_dim); - - group.bench_with_input( - BenchmarkId::new("Arrow_Single", &label), - &single_idx, - |b, &idx| { - b.iter(|| { - let _vector = store.get_vector(idx); - }); - }, - ); - } - - // 2. Lance single file - single access (all rows in one fragment) - { - let uri = format!("memory://lance_single_one_{}", Uuid::new_v4()); - let dataset = rt.block_on(create_lance_single_file(&schema, batches.clone(), &uri)); - let projection = Arc::new(dataset.schema().clone()); - - // Single file = all rows in fragment 0 - let single_row_id = single_idx as u64; // fragment 0, row = single_idx - - let label = format!("{}x{}_dim{}", num_batches, batch_size, vector_dim); - let dataset = Arc::new(dataset); - group.bench_with_input( - BenchmarkId::new("Lance_SingleFile_Single", &label), - &single_row_id, - |b, &row_id| { - let dataset = dataset.clone(); - let projection = projection.clone(); - b.to_async(&rt).iter(|| { - let dataset = dataset.clone(); - let projection = projection.clone(); - async move { - let row_ids = vec![row_id]; - let _batch = dataset - .take_rows(&row_ids, ProjectionRequest::Schema(projection)) - .await - .unwrap(); - } - }); - }, - ); - } - - // 3. Lance per-batch - single access (1 row per fragment) - { - let rows_per_fragment = batch_size; - let uri = format!("memory://lance_per_batch_one_{}", Uuid::new_v4()); - let dataset = rt.block_on(create_lance_per_batch(&schema, batches, &uri)); - let projection = Arc::new(dataset.schema().clone()); - - // Per-batch: fragment_idx = single_idx / batch_size, row = single_idx % batch_size - let fragment_idx = single_idx / rows_per_fragment; - let row_within_fragment = single_idx % rows_per_fragment; - let single_row_id = ((fragment_idx as u64) << 32) | (row_within_fragment as u64); - - let label = format!("{}x{}_dim{}", num_batches, batch_size, vector_dim); - let dataset = Arc::new(dataset); - group.bench_with_input( - BenchmarkId::new("Lance_PerBatch_Single", &label), - &single_row_id, - |b, &row_id| { - let dataset = dataset.clone(); - let projection = projection.clone(); - b.to_async(&rt).iter(|| { - let dataset = dataset.clone(); - let projection = projection.clone(); - async move { - let row_ids = vec![row_id]; - let _batch = dataset - .take_rows(&row_ids, ProjectionRequest::Schema(projection)) - .await - .unwrap(); - } - }); - }, - ); - } - - group.finish(); -} - -#[cfg(target_os = "linux")] -criterion_group!( - name = benches; - config = Criterion::default() - .significance_level(0.05) - .with_profiler(PProfProfiler::new(100, Output::Flamegraph(None))); - targets = bench_random_access, bench_single_access -); - -#[cfg(not(target_os = "linux"))] -criterion_group!( - name = benches; - config = Criterion::default().significance_level(0.05); - targets = bench_random_access, bench_single_access -); - -criterion_main!(benches); diff --git a/rust/lance/benches/mem_wal_write.rs b/rust/lance/benches/mem_wal_write.rs index 3bc8b2bfc77..ce7979d4077 100644 --- a/rust/lance/benches/mem_wal_write.rs +++ b/rust/lance/benches/mem_wal_write.rs @@ -495,7 +495,7 @@ fn bench_lance_memwal_write(c: &mut Criterion) { let config = RegionWriterConfig { region_id, region_spec_id: 0, - durable_writes: durable, + durable_write: durable, sync_indexed_write: indexed, max_wal_buffer_size: max_wal_buffer_size .unwrap_or(default_config.max_wal_buffer_size), @@ -503,12 +503,19 @@ fn bench_lance_memwal_write(c: &mut Criterion) { .unwrap_or(default_config.max_flush_interval), max_memtable_size: max_memtable_size .unwrap_or(default_config.max_memtable_size), + max_memtable_rows: default_config.max_memtable_rows, + max_memtable_batches: default_config.max_memtable_batches, + ivf_index_partition_capacity_safety_factor: default_config + .ivf_index_partition_capacity_safety_factor, + async_index_buffer_rows: default_config.async_index_buffer_rows, + async_index_interval: default_config.async_index_interval, manifest_scan_batch_size: default_config .manifest_scan_batch_size, max_unflushed_bytes: default_config.max_unflushed_bytes, max_immutable_memtables: default_config .max_immutable_memtables, - backpressure_timeout: default_config.backpressure_timeout, + backpressure_log_interval: default_config.backpressure_log_interval, + stats_log_interval: default_config.stats_log_interval, }; if iter == 0 { diff --git a/rust/lance/benches/mem_read_benchmark.rs b/rust/lance/benches/memtable_read.rs similarity index 100% rename from rust/lance/benches/mem_read_benchmark.rs rename to rust/lance/benches/memtable_read.rs diff --git a/rust/lance/src/dataset/mem_wal/config.rs b/rust/lance/src/dataset/mem_wal/config.rs index 2eb9eda455d..a8a9c395c2d 100644 --- a/rust/lance/src/dataset/mem_wal/config.rs +++ b/rust/lance/src/dataset/mem_wal/config.rs @@ -28,7 +28,7 @@ pub struct RegionWriterConfig { /// - Writes return immediately after buffering in memory /// - Potential data loss if process crashes before flush /// - Lower latency, batched S3 operations - pub durable_writes: bool, + pub durable_write: bool, /// Whether to update indexes synchronously on each write. /// @@ -45,22 +45,46 @@ pub struct RegionWriterConfig { /// /// This is a soft threshold - write batches are atomic and won't be split. /// WAL flushes when buffer exceeds this size OR when `max_flush_interval` elapses. - /// Default: 1MB + /// Default: 10MB pub max_wal_buffer_size: usize, /// Time-based WAL flush interval. /// /// WAL buffer will be flushed after this duration even if size threshold - /// hasn't been reached. This ensures bounded data loss window in non-durable mode. - /// Default: 1 second + /// hasn't been reached. This ensures bounded data loss window in non-durable mode + /// and prevents accumulating too much data before flushing to object storage. + /// Default: 100ms pub max_flush_interval: Option, /// Maximum MemTable size in bytes before triggering a flush to storage. /// /// MemTable size is checked every `max_flush_interval` (during WAL flush ticks). - /// Default: 64MB + /// Default: 256MB pub max_memtable_size: usize, + /// Maximum number of rows in a MemTable. + /// + /// Used to pre-allocate index storage (e.g., IVF-PQ partition capacity). + /// When a partition reaches capacity, memtable will be flushed. + /// Default: 100,000 rows + pub max_memtable_rows: usize, + + /// Maximum number of batches in a MemTable. + /// + /// Used to pre-allocate batch storage. When this limit is reached, + /// memtable will be flushed. Sized for typical ML workloads with + /// 1024-dim vectors (~82KB per 20-row batch). + /// Default: 8,000 batches + pub max_memtable_batches: usize, + + /// Safety factor for IVF-PQ index partition capacity calculation. + /// + /// Accounts for non-uniform distribution of vectors across partitions. + /// Higher values use more memory but reduce overflow risk. + /// Partition capacity = min((max_rows / num_partitions) * safety_factor, max_rows) + /// Default: 8 + pub ivf_index_partition_capacity_safety_factor: usize, + /// Batch size for parallel HEAD requests when scanning for manifest versions. /// /// Higher values scan faster but use more parallel requests. @@ -84,13 +108,40 @@ pub struct RegionWriterConfig { /// Default: 4 pub max_immutable_memtables: usize, - /// Backpressure timeout for waiting on flushes. + /// Interval for logging warnings when writes are blocked by backpressure. /// - /// If a write is blocked waiting for flush and this timeout is exceeded, - /// a warning is logged but the write continues waiting. + /// When a write is blocked waiting for WAL flush, memtable flush, or index + /// updates to complete, a warning is logged after this duration. The write + /// will continue waiting indefinitely (it never fails due to backpressure), + /// but warnings are logged at this interval to help diagnose slow flushes. /// /// Default: 30 seconds - pub backpressure_timeout: Duration, + pub backpressure_log_interval: Duration, + + /// Maximum rows to buffer before flushing to async indexes. + /// + /// Only applies when `sync_indexed_write` is false. Larger values enable + /// better vectorization (especially for IVF-PQ) but increase memory usage + /// and latency before data becomes searchable. + /// + /// Default: 10,000 rows + pub async_index_buffer_rows: usize, + + /// Maximum time to buffer before flushing to async indexes. + /// + /// Only applies when `sync_indexed_write` is false. Ensures bounded latency + /// for data to become searchable even during low write throughput. + /// + /// Default: 1 second + pub async_index_interval: Duration, + + /// Interval for periodic stats logging. + /// + /// Stats (write throughput, backpressure events, memtable size) are logged + /// at this interval. Set to None to disable periodic stats logging. + /// + /// Default: 60 seconds + pub stats_log_interval: Option, } impl Default for RegionWriterConfig { @@ -98,15 +149,21 @@ impl Default for RegionWriterConfig { Self { region_id: Uuid::new_v4(), region_spec_id: 0, - durable_writes: true, + durable_write: true, sync_indexed_write: true, - max_wal_buffer_size: 1024 * 1024, // 1MB - max_flush_interval: Some(Duration::from_secs(1)), // 1 second - max_memtable_size: 64 * 1024 * 1024, // 64MB + max_wal_buffer_size: 10 * 1024 * 1024, // 10MB + max_flush_interval: Some(Duration::from_millis(100)), // 100ms + max_memtable_size: 256 * 1024 * 1024, // 256MB + max_memtable_rows: 100_000, // 100k rows + max_memtable_batches: 8_000, // 8k batches + ivf_index_partition_capacity_safety_factor: 8, manifest_scan_batch_size: 2, max_unflushed_bytes: 1024 * 1024 * 1024, // 1GB max_immutable_memtables: 4, - backpressure_timeout: Duration::from_secs(30), + backpressure_log_interval: Duration::from_secs(30), + async_index_buffer_rows: 10_000, + async_index_interval: Duration::from_secs(1), + stats_log_interval: Some(Duration::from_secs(60)), // 1 minute } } } @@ -127,8 +184,8 @@ impl RegionWriterConfig { } /// Set durable writes mode. - pub fn with_durable_writes(mut self, durable: bool) -> Self { - self.durable_writes = durable; + pub fn with_durable_write(mut self, durable: bool) -> Self { + self.durable_write = durable; self } @@ -156,6 +213,24 @@ impl RegionWriterConfig { self } + /// Set maximum MemTable rows for index pre-allocation. + pub fn with_max_memtable_rows(mut self, rows: usize) -> Self { + self.max_memtable_rows = rows; + self + } + + /// Set maximum MemTable batches for batch store pre-allocation. + pub fn with_max_memtable_batches(mut self, batches: usize) -> Self { + self.max_memtable_batches = batches; + self + } + + /// Set partition capacity safety factor for IVF-PQ indexes. + pub fn with_ivf_index_partition_capacity_safety_factor(mut self, factor: usize) -> Self { + self.ivf_index_partition_capacity_safety_factor = factor; + self + } + /// Set manifest scan batch size. pub fn with_manifest_scan_batch_size(mut self, size: usize) -> Self { self.manifest_scan_batch_size = size; @@ -174,9 +249,27 @@ impl RegionWriterConfig { self } - /// Set backpressure timeout. - pub fn with_backpressure_timeout(mut self, timeout: Duration) -> Self { - self.backpressure_timeout = timeout; + /// Set backpressure log interval. + pub fn with_backpressure_log_interval(mut self, interval: Duration) -> Self { + self.backpressure_log_interval = interval; + self + } + + /// Set async index buffer rows. + pub fn with_async_index_buffer_rows(mut self, rows: usize) -> Self { + self.async_index_buffer_rows = rows; + self + } + + /// Set async index interval. + pub fn with_async_index_interval(mut self, interval: Duration) -> Self { + self.async_index_interval = interval; + self + } + + /// Set stats logging interval. Use None to disable periodic stats logging. + pub fn with_stats_log_interval(mut self, interval: Option) -> Self { + self.stats_log_interval = interval; self } } diff --git a/rust/lance/src/dataset/mem_wal/dispatcher.rs b/rust/lance/src/dataset/mem_wal/dispatcher.rs index 16d5164e5fd..28f07f4910d 100644 --- a/rust/lance/src/dataset/mem_wal/dispatcher.rs +++ b/rust/lance/src/dataset/mem_wal/dispatcher.rs @@ -38,6 +38,14 @@ use tokio::time::{interval_at, Instant, Interval}; use tokio_util::sync::CancellationToken; use tracing::{debug, error, info, warn}; +/// Get a timestamp string for debug logging (seconds since program start). +fn log_ts() -> f64 { + use std::sync::OnceLock; + use std::time::Instant as StdInstant; + static START: OnceLock = OnceLock::new(); + START.get_or_init(StdInstant::now).elapsed().as_secs_f64() +} + /// Factory function for creating ticker messages. pub type MessageFactory = Box T + Send + Sync>; @@ -96,6 +104,12 @@ impl TaskDispatcher { .collect(); debug!("Task dispatcher '{}' started", self.name); + eprintln!( + "[{:.3}][DISPATCHER] Task '{}' started, has {} tickers", + log_ts(), + self.name, + ticker_intervals.len() + ); let result = loop { // Handle tickers based on whether we have any @@ -114,6 +128,12 @@ impl TaskDispatcher { msg = self.rx.recv() => { match msg { Some(message) => { + eprintln!( + "[{:.3}][DISPATCHER] Task '{}' received message: {:?}", + log_ts(), + self.name, + message + ); if let Err(e) = self.handler.handle(message).await { error!("Task '{}' error handling message: {}", self.name, e); break Err(e); @@ -127,11 +147,25 @@ impl TaskDispatcher { } } } else { - // With tickers, we first wait for any ticker to fire, then handle it - // We use a simple approach: wait for the first ticker using a tokio::time::timeout-like pattern + // With tickers, give ticker higher priority than messages to prevent starvation. + // Without this, continuous message streams would prevent ticks from ever firing. let first_ticker = ticker_intervals.first_mut().unwrap(); let first_interval = &mut first_ticker.0; + // Debug: trace each select iteration for the wal_flusher + if self.name == "wal_flusher" { + use std::sync::atomic::{AtomicU64, Ordering}; + static ITER_COUNT: AtomicU64 = AtomicU64::new(0); + let iter = ITER_COUNT.fetch_add(1, Ordering::Relaxed); + if iter < 10 || iter % 100 == 0 { + eprintln!( + "[{:.3}][DISPATCHER] wal_flusher select iteration {}", + log_ts(), + iter + ); + } + } + select! { biased; @@ -141,10 +175,30 @@ impl TaskDispatcher { break Ok(()); } - // Priority 2: Messages from channel + // Priority 2: Ticker event - must be higher than messages to prevent starvation + _ = first_interval.tick() => { + // Generate message from the first ticker + let message = (ticker_intervals[0].1)(); + eprintln!( + "[{:.3}][DISPATCHER] Task '{}' ticker fired", + log_ts(), + self.name + ); + if let Err(e) = self.handler.handle(message).await { + error!("Task '{}' error handling ticker message: {}", self.name, e); + break Err(e); + } + } + + // Priority 3: Messages from channel msg = self.rx.recv() => { match msg { Some(message) => { + eprintln!( + "[{:.3}][DISPATCHER] Task '{}' received message (not tick)", + log_ts(), + self.name + ); if let Err(e) = self.handler.handle(message).await { error!("Task '{}' error handling message: {}", self.name, e); break Err(e); @@ -156,16 +210,6 @@ impl TaskDispatcher { } } } - - // Priority 3: Ticker event (just use first ticker for simplicity) - _ = first_interval.tick() => { - // Generate message from the first ticker - let message = (ticker_intervals[0].1)(); - if let Err(e) = self.handler.handle(message).await { - error!("Task '{}' error handling ticker message: {}", self.name, e); - break Err(e); - } - } } } }; @@ -209,6 +253,11 @@ impl TaskExecutor { handler: Box>, rx: mpsc::UnboundedReceiver, ) -> Result<()> { + eprintln!( + "[{:.3}][EXECUTOR] Adding handler task '{}'", + log_ts(), + name + ); let dispatcher = TaskDispatcher { handler, rx, @@ -216,7 +265,15 @@ impl TaskExecutor { name: name.clone(), }; - let handle = tokio::spawn(async move { dispatcher.run().await }); + let task_name = name.clone(); + let handle = tokio::spawn(async move { + eprintln!( + "[{:.3}][EXECUTOR] Task '{}' spawned and starting", + log_ts(), + task_name + ); + dispatcher.run().await + }); self.tasks.write().unwrap().push((name, handle)); Ok(()) diff --git a/rust/lance/src/dataset/mem_wal/read/memtable/exec/fts.rs b/rust/lance/src/dataset/mem_wal/read/memtable/exec/fts.rs index 6777a79182b..8139a33590a 100644 --- a/rust/lance/src/dataset/mem_wal/read/memtable/exec/fts.rs +++ b/rust/lance/src/dataset/mem_wal/read/memtable/exec/fts.rs @@ -30,6 +30,15 @@ use crate::dataset::mem_wal::write::{IndexRegistry, LockFreeBatchStore}; /// Score column name in output. pub const SCORE_COLUMN: &str = "_score"; +/// Batch range info for efficient row position lookup. +#[derive(Debug, Clone)] +struct BatchRange { + start: usize, + end: usize, + seq: u64, + batch_id: usize, +} + /// ExecutionPlan node that queries FTS index with MVCC visibility. pub struct FtsIndexExec { batch_store: Arc, @@ -41,6 +50,8 @@ pub struct FtsIndexExec { properties: PlanProperties, metrics: ExecutionPlanMetricsSet, index_name: String, + /// Pre-computed batch ranges for O(log n) lookup. + batch_ranges: Vec, } impl Debug for FtsIndexExec { @@ -108,6 +119,21 @@ impl FtsIndexExec { Boundedness::Bounded, ); + // Pre-compute batch ranges for O(log n) lookup + let mut batch_ranges = Vec::new(); + let mut current_row = 0usize; + for (batch_id, stored_batch) in batch_store.iter().enumerate() { + let batch_start = current_row; + let batch_end = current_row + stored_batch.num_rows; + batch_ranges.push(BatchRange { + start: batch_start, + end: batch_end, + seq: stored_batch.seq, + batch_id, + }); + current_row = batch_end; + } + Ok(Self { batch_store, indexes, @@ -118,9 +144,20 @@ impl FtsIndexExec { properties, metrics: ExecutionPlanMetricsSet::new(), index_name, + batch_ranges, }) } + /// Find batch for a row position using binary search. O(log n). + #[inline] + fn find_batch(&self, row_pos: usize) -> Option<&BatchRange> { + // Binary search: find the batch where start <= row_pos < end + let idx = self.batch_ranges.partition_point(|b| b.end <= row_pos); + self.batch_ranges + .get(idx) + .filter(|b| row_pos >= b.start && row_pos < b.end) + } + /// Query the index and return matching rows with scores. fn query_index(&self) -> Vec<(u64, f32)> { let Some(index) = self.indexes.get_fts(&self.index_name) else { @@ -138,30 +175,16 @@ impl FtsIndexExec { .collect() } - /// Filter results by MVCC visibility. + /// Filter results by MVCC visibility using binary search. O(n log b). fn filter_by_visibility(&self, results: Vec<(u64, f32)>) -> Vec<(u64, f32)> { - // Build batch ranges - let mut batch_ranges = Vec::new(); - let mut current_row = 0usize; - - for stored_batch in self.batch_store.iter() { - let batch_start = current_row; - let batch_end = current_row + stored_batch.num_rows; - batch_ranges.push((batch_start, batch_end, stored_batch.seq)); - current_row = batch_end; - } - - // Filter by visibility results .into_iter() .filter(|&(pos, _)| { - let pos = pos as usize; - for &(start, end, seq) in &batch_ranges { - if pos >= start && pos < end { - return seq == 0 || seq <= self.visibility_seq; - } + if let Some(batch) = self.find_batch(pos as usize) { + batch.seq == 0 || batch.seq <= self.visibility_seq + } else { + false } - false }) .collect() } @@ -172,31 +195,16 @@ impl FtsIndexExec { return Ok(vec![]); } - // Build batch ranges - let mut batch_ranges = Vec::new(); - let mut current_row = 0usize; - - for stored_batch in self.batch_store.iter() { - let batch_start = current_row; - let batch_end = current_row + stored_batch.num_rows; - batch_ranges.push((batch_start, batch_end)); - current_row = batch_end; - } - - // Group rows by batch + // Group rows by batch using binary search on pre-computed ranges let mut batches_data: std::collections::HashMap> = std::collections::HashMap::new(); for &(pos, score) in results { - let pos = pos as usize; - for (batch_id, &(start, end)) in batch_ranges.iter().enumerate() { - if pos >= start && pos < end { - batches_data - .entry(batch_id) - .or_default() - .push((pos - start, score)); - break; - } + if let Some(batch) = self.find_batch(pos as usize) { + batches_data + .entry(batch.batch_id) + .or_default() + .push((pos as usize - batch.start, score)); } } diff --git a/rust/lance/src/dataset/mem_wal/read/memtable/scanner.rs b/rust/lance/src/dataset/mem_wal/read/memtable/scanner.rs index 37b25e920e4..23998433588 100644 --- a/rust/lance/src/dataset/mem_wal/read/memtable/scanner.rs +++ b/rust/lance/src/dataset/mem_wal/read/memtable/scanner.rs @@ -124,9 +124,7 @@ impl ExecutionPlan for FilteredScanExec { } // Evaluate the predicate to get a boolean array - let filter_array = predicate - .evaluate(&batch)? - .into_array(batch.num_rows())?; + let filter_array = predicate.evaluate(&batch)?.into_array(batch.num_rows())?; let filter_array = filter_array .as_any() @@ -430,7 +428,7 @@ impl MemTableScanner { let scan = MemTableScanExec::new( self.batch_store.clone(), self.visibility_seq, - projection_indices.clone(), + projection_indices, self.output_schema(), ); diff --git a/rust/lance/src/dataset/mem_wal/write.rs b/rust/lance/src/dataset/mem_wal/write.rs index 216da59b2f6..5dcb0b7dea3 100644 --- a/rust/lance/src/dataset/mem_wal/write.rs +++ b/rust/lance/src/dataset/mem_wal/write.rs @@ -46,3 +46,242 @@ pub use watchable_cell::{ pub use writer::RegionWriter; pub use batch_store::{LockFreeBatchStore, StoreFull, StoredBatch}; + +#[cfg(test)] +mod region_writer_tests { + use std::sync::Arc; + use std::time::Instant; + + use arrow_array::{ + FixedSizeListArray, Float32Array, Int64Array, RecordBatch, RecordBatchIterator, StringArray, + }; + use arrow_schema::{DataType, Field, Schema as ArrowSchema}; + use lance_arrow::FixedSizeListArrayExt; + use uuid::Uuid; + + use crate::dataset::mem_wal::{DatasetMemWalExt, MemWalConfig}; + use crate::dataset::{Dataset, WriteParams}; + + use super::super::RegionWriterConfig; + + fn create_test_schema(vector_dim: i32) -> Arc { + use std::collections::HashMap; + + let mut id_metadata = HashMap::new(); + id_metadata.insert( + "lance-schema:unenforced-primary-key".to_string(), + "true".to_string(), + ); + let id_field = Field::new("id", DataType::Int64, false).with_metadata(id_metadata); + + Arc::new(ArrowSchema::new(vec![ + id_field, + Field::new( + "vector", + DataType::FixedSizeList( + Arc::new(Field::new("item", DataType::Float32, true)), + vector_dim, + ), + true, + ), + Field::new("text", DataType::Utf8, true), + ])) + } + + fn create_test_batch( + schema: &ArrowSchema, + start_id: i64, + num_rows: usize, + vector_dim: i32, + ) -> RecordBatch { + let vectors: Vec = (0..num_rows) + .flat_map(|i| { + let seed = (start_id as usize + i) as f32; + (0..vector_dim as usize).map(move |d| (seed * 0.1 + d as f32 * 0.01).sin()) + }) + .collect(); + + let vector_array = + FixedSizeListArray::try_new_from_values(Float32Array::from(vectors), vector_dim) + .unwrap(); + + let texts: Vec = (0..num_rows) + .map(|i| format!("Sample text for row {}", start_id as usize + i)) + .collect(); + + RecordBatch::try_new( + Arc::new(schema.clone()), + vec![ + Arc::new(Int64Array::from_iter_values( + start_id..start_id + num_rows as i64, + )), + Arc::new(vector_array), + Arc::new(StringArray::from_iter_values(texts)), + ], + ) + .unwrap() + } + + /// Quick smoke test for region writer - runs against memory:// + /// Run with: cargo test -p lance region_writer_tests::test_region_writer_smoke -- --nocapture + #[tokio::test] + async fn test_region_writer_smoke() { + let vector_dim = 128; + let batch_size = 20; + let num_batches = 100; + + let schema = create_test_schema(vector_dim); + let uri = format!("memory://test_region_writer_{}", Uuid::new_v4()); + + eprintln!("[TEST] Creating dataset at {}", uri); + + // Create initial dataset + let initial_batch = create_test_batch(&schema, 0, 100, vector_dim); + let batches = RecordBatchIterator::new([Ok(initial_batch)], schema.clone()); + let mut dataset = Dataset::write(batches, &uri, Some(WriteParams::default())) + .await + .expect("Failed to create dataset"); + + // Initialize MemWAL (no indexes for smoke test) + dataset + .initialize_mem_wal(MemWalConfig { + region_spec: None, + maintained_indexes: vec![], + }) + .await + .expect("Failed to initialize MemWAL"); + + // Create region writer + let region_id = Uuid::new_v4(); + let config = RegionWriterConfig::new(region_id) + .with_durable_write(false) + .with_sync_indexed_write(false); + + eprintln!("[TEST] Creating region writer with config: {:?}", config); + + let writer = dataset + .mem_wal_writer(region_id, config) + .await + .expect("Failed to create writer"); + + // Pre-generate batches + let batches: Vec = (0..num_batches) + .map(|i| create_test_batch(&schema, (i * batch_size) as i64, batch_size, vector_dim)) + .collect(); + + eprintln!( + "[TEST] Writing {} batches x {} rows = {} total rows", + num_batches, + batch_size, + num_batches * batch_size + ); + + let start = Instant::now(); + for (i, batch) in batches.iter().enumerate() { + writer.put(batch.clone()).await.expect("Failed to write"); + if (i + 1) % 50 == 0 { + eprintln!("[TEST] Wrote {} batches in {:?}", i + 1, start.elapsed()); + } + } + let write_duration = start.elapsed(); + + eprintln!("[TEST] All writes done in {:?}", write_duration); + + let stats = writer.stats(); + eprintln!("[TEST] Closing writer..."); + let close_start = Instant::now(); + writer.close().await.expect("Failed to close"); + eprintln!("[TEST] Close took {:?}", close_start.elapsed()); + + eprintln!( + "[TEST] Stats: puts={}, WAL flushes={}, WAL bytes={}", + stats.put_count, stats.wal_flush_count, stats.wal_flush_bytes + ); + } + + /// Test region writer against S3 (requires DATASET_PREFIX env var) + /// Run with: DATASET_PREFIX=s3://bucket/path cargo test -p lance region_writer_tests::test_region_writer_s3 -- --nocapture --ignored + #[tokio::test] + #[ignore] + async fn test_region_writer_s3() { + let prefix = std::env::var("DATASET_PREFIX").expect("DATASET_PREFIX not set"); + + let vector_dim = 512; + let batch_size = 20; + let num_batches = 10000; + + let schema = create_test_schema(vector_dim); + let uri = format!("{}/test_s3_{}", prefix.trim_end_matches('/'), Uuid::new_v4()); + + eprintln!("[TEST] Creating dataset at {}", uri); + + // Create initial dataset + let initial_batch = create_test_batch(&schema, 0, 100, vector_dim); + let batches = RecordBatchIterator::new([Ok(initial_batch)], schema.clone()); + let mut dataset = Dataset::write(batches, &uri, Some(WriteParams::default())) + .await + .expect("Failed to create dataset"); + + // Initialize MemWAL (no indexes) + dataset + .initialize_mem_wal(MemWalConfig { + region_spec: None, + maintained_indexes: vec![], + }) + .await + .expect("Failed to initialize MemWAL"); + + // Create region writer with default config + let region_id = Uuid::new_v4(); + let config = RegionWriterConfig::new(region_id) + .with_durable_write(false) + .with_sync_indexed_write(false); + + eprintln!( + "[TEST] Config: flush_interval={:?}, wal_buffer_size={}", + config.max_flush_interval, config.max_wal_buffer_size + ); + + let writer = dataset + .mem_wal_writer(region_id, config) + .await + .expect("Failed to create writer"); + + // Pre-generate batches + let batches: Vec = (0..num_batches) + .map(|i| create_test_batch(&schema, (i * batch_size) as i64, batch_size, vector_dim)) + .collect(); + + eprintln!( + "[TEST] Writing {} batches x {} rows = {} total rows", + num_batches, + batch_size, + num_batches * batch_size + ); + + let start = Instant::now(); + for (i, batch) in batches.iter().enumerate() { + writer.put(batch.clone()).await.expect("Failed to write"); + if (i + 1) % 100 == 0 { + eprintln!("[TEST] Wrote {} batches in {:?}", i + 1, start.elapsed()); + } + } + let write_duration = start.elapsed(); + + eprintln!("[TEST] All writes done in {:?}", write_duration); + + let stats = writer.stats(); + eprintln!("[TEST] Closing writer..."); + let close_start = Instant::now(); + writer.close().await.expect("Failed to close"); + eprintln!("[TEST] Close took {:?}", close_start.elapsed()); + + eprintln!( + "[TEST] Stats: puts={}, WAL flushes={}, WAL bytes={}", + stats.put_count, stats.wal_flush_count, stats.wal_flush_bytes + ); + + let rows_per_sec = (num_batches * batch_size) as f64 / write_duration.as_secs_f64(); + eprintln!("[TEST] Throughput: {:.0} rows/sec", rows_per_sec); + } +} diff --git a/rust/lance/src/dataset/mem_wal/write/batch_store.rs b/rust/lance/src/dataset/mem_wal/write/batch_store.rs index a3a4c0724ad..749768ca47f 100644 --- a/rust/lance/src/dataset/mem_wal/write/batch_store.rs +++ b/rust/lance/src/dataset/mem_wal/write/batch_store.rs @@ -54,16 +54,19 @@ pub struct StoredBatch { pub seq: u64, /// Number of rows in this batch (cached for quick access). pub num_rows: usize, + /// Row offset in the MemTable (cumulative rows before this batch). + pub row_offset: u64, } impl StoredBatch { /// Create a new StoredBatch. - pub fn new(data: RecordBatch, seq: u64) -> Self { + pub fn new(data: RecordBatch, seq: u64, row_offset: u64) -> Self { let num_rows = data.num_rows(); Self { data, seq, num_rows, + row_offset, } } } @@ -205,9 +208,9 @@ impl LockFreeBatchStore { /// /// # Returns /// - /// - `Ok(batch_id)` - The index of the appended batch + /// - `Ok((batch_id, row_offset, estimated_size))` - The index, row offset, and size of the appended batch /// - `Err(StoreFull)` - The store is at capacity, needs flush - pub fn append(&self, batch: RecordBatch, seq: u64) -> Result { + pub fn append(&self, batch: RecordBatch, seq: u64) -> Result<(usize, u64, usize), StoreFull> { // Load current length (Relaxed is fine - we're the only writer) let idx = self.committed_len.load(Ordering::Relaxed); @@ -218,7 +221,10 @@ impl LockFreeBatchStore { let num_rows = batch.num_rows(); let estimated_size = Self::estimate_batch_size(&batch); - let stored = StoredBatch::new(batch, seq); + // Row offset is the total rows BEFORE this batch + let row_offset = self.total_rows.load(Ordering::Relaxed) as u64; + + let stored = StoredBatch::new(batch, seq, row_offset); // SAFETY: // 1. idx < capacity, so slot exists @@ -240,7 +246,7 @@ impl LockFreeBatchStore { // who load committed_len with Acquire ordering. self.committed_len.store(idx + 1, Ordering::Release); - Ok(idx) + Ok((idx, row_offset, estimated_size)) } /// Estimate the memory size of a RecordBatch. @@ -499,8 +505,9 @@ mod tests { let store = LockFreeBatchStore::with_capacity(10); let batch = create_test_batch(100); - let id = store.append(batch, 1).unwrap(); + let (id, row_offset, _size) = store.append(batch, 1).unwrap(); assert_eq!(id, 0); + assert_eq!(row_offset, 0); // First batch starts at row 0 assert_eq!(store.len(), 1); assert!(!store.is_empty()); assert_eq!(store.total_rows(), 100); @@ -511,10 +518,14 @@ mod tests { fn test_append_multiple() { let store = LockFreeBatchStore::with_capacity(10); + let mut expected_row_offset = 0u64; for i in 0..5 { - let batch = create_test_batch(10 * (i + 1)); - let id = store.append(batch, (i + 1) as u64).unwrap(); + let num_rows = 10 * (i + 1); + let batch = create_test_batch(num_rows); + let (id, row_offset, _size) = store.append(batch, (i + 1) as u64).unwrap(); assert_eq!(id, i); + assert_eq!(row_offset, expected_row_offset); + expected_row_offset += num_rows as u64; } assert_eq!(store.len(), 5); @@ -551,10 +562,12 @@ mod tests { let retrieved1 = store.get(0).unwrap(); assert_eq!(retrieved1.seq, 1); assert_eq!(retrieved1.num_rows, 10); + assert_eq!(retrieved1.row_offset, 0); let retrieved2 = store.get(1).unwrap(); assert_eq!(retrieved2.seq, 2); assert_eq!(retrieved2.num_rows, 20); + assert_eq!(retrieved2.row_offset, 10); // After first batch // Out of bounds assert!(store.get(2).is_none()); diff --git a/rust/lance/src/dataset/mem_wal/write/batch_write.rs b/rust/lance/src/dataset/mem_wal/write/batch_write.rs index 8613462d540..bc1abdc20c0 100644 --- a/rust/lance/src/dataset/mem_wal/write/batch_write.rs +++ b/rust/lance/src/dataset/mem_wal/write/batch_write.rs @@ -10,10 +10,18 @@ use std::time::Duration; use arrow_array::RecordBatch; use lance_core::Result; use tokio::sync::{mpsc, oneshot}; -use tracing::warn; +use tracing::{debug, warn}; use crate::dataset::mem_wal::config::RegionWriterConfig; +/// Get a timestamp string for debug logging (seconds since program start). +fn log_ts() -> f64 { + use std::sync::OnceLock; + use std::time::Instant; + static START: OnceLock = OnceLock::new(); + START.get_or_init(Instant::now).elapsed().as_secs_f64() +} + /// Result of a durability notification. /// /// This is a simple enum that can be cloned, unlike `Result<(), Error>`. @@ -87,13 +95,40 @@ pub struct WriteBatchResult { pub durable_watcher: DurabilityWatcher, } +/// Type of backpressure that was triggered. +#[derive(Debug, Clone, Copy, PartialEq, Eq)] +pub enum BackpressureType { + /// Unflushed bytes (WAL + immutable memtables) exceeded threshold. + UnflushedBytes, + /// Too many immutable memtables waiting to flush. + ImmutableMemtables, + /// Active memtable batch store is nearly full. + BatchStoreFull, +} + +impl std::fmt::Display for BackpressureType { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + match self { + Self::UnflushedBytes => write!(f, "unflushed_bytes"), + Self::ImmutableMemtables => write!(f, "immutable_memtables"), + Self::BatchStoreFull => write!(f, "batch_store_full"), + } + } +} + /// Statistics for backpressure monitoring. #[derive(Debug, Default)] pub struct BackpressureStats { - /// Number of times backpressure was applied. - pub backpressure_count: AtomicU64, + /// Total number of times backpressure was applied. + total_count: AtomicU64, /// Total time spent waiting on backpressure (in milliseconds). - pub backpressure_wait_ms: AtomicU64, + total_wait_ms: AtomicU64, + /// Count of backpressure events due to unflushed bytes. + unflushed_bytes_count: AtomicU64, + /// Count of backpressure events due to immutable memtables. + immutable_memtables_count: AtomicU64, + /// Count of backpressure events due to batch store being full. + batch_store_full_count: AtomicU64, } impl BackpressureStats { @@ -103,26 +138,78 @@ impl BackpressureStats { } /// Record a backpressure event. - pub fn record(&self, wait_ms: u64) { - self.backpressure_count.fetch_add(1, Ordering::Relaxed); - self.backpressure_wait_ms - .fetch_add(wait_ms, Ordering::Relaxed); + pub fn record(&self, bp_type: BackpressureType, wait_ms: u64) { + self.total_count.fetch_add(1, Ordering::Relaxed); + self.total_wait_ms.fetch_add(wait_ms, Ordering::Relaxed); + + match bp_type { + BackpressureType::UnflushedBytes => { + self.unflushed_bytes_count.fetch_add(1, Ordering::Relaxed); + } + BackpressureType::ImmutableMemtables => { + self.immutable_memtables_count + .fetch_add(1, Ordering::Relaxed); + } + BackpressureType::BatchStoreFull => { + self.batch_store_full_count.fetch_add(1, Ordering::Relaxed); + } + } } /// Get the total backpressure count. pub fn count(&self) -> u64 { - self.backpressure_count.load(Ordering::Relaxed) + self.total_count.load(Ordering::Relaxed) } /// Get the total time spent waiting on backpressure. pub fn total_wait_ms(&self) -> u64 { - self.backpressure_wait_ms.load(Ordering::Relaxed) + self.total_wait_ms.load(Ordering::Relaxed) + } + + /// Get count of backpressure events by type. + pub fn count_by_type(&self, bp_type: BackpressureType) -> u64 { + match bp_type { + BackpressureType::UnflushedBytes => self.unflushed_bytes_count.load(Ordering::Relaxed), + BackpressureType::ImmutableMemtables => { + self.immutable_memtables_count.load(Ordering::Relaxed) + } + BackpressureType::BatchStoreFull => { + self.batch_store_full_count.load(Ordering::Relaxed) + } + } + } + + /// Get a snapshot of all stats. + pub fn snapshot(&self) -> BackpressureStatsSnapshot { + BackpressureStatsSnapshot { + total_count: self.total_count.load(Ordering::Relaxed), + total_wait_ms: self.total_wait_ms.load(Ordering::Relaxed), + unflushed_bytes_count: self.unflushed_bytes_count.load(Ordering::Relaxed), + immutable_memtables_count: self.immutable_memtables_count.load(Ordering::Relaxed), + batch_store_full_count: self.batch_store_full_count.load(Ordering::Relaxed), + } } } +/// Snapshot of backpressure statistics. +#[derive(Debug, Clone, Default)] +pub struct BackpressureStatsSnapshot { + /// Total number of times backpressure was applied. + pub total_count: u64, + /// Total time spent waiting on backpressure (in milliseconds). + pub total_wait_ms: u64, + /// Count due to unflushed bytes. + pub unflushed_bytes_count: u64, + /// Count due to immutable memtables. + pub immutable_memtables_count: u64, + /// Count due to batch store being full. + pub batch_store_full_count: u64, +} + /// Trait for providing backpressure state. /// /// Implemented by the writer to provide current memory usage for backpressure decisions. +#[async_trait::async_trait] pub trait BackpressureProvider: Send + Sync { /// Get estimated WAL buffer size in bytes. fn wal_buffer_bytes(&self) -> usize; @@ -133,6 +220,16 @@ pub trait BackpressureProvider: Send + Sync { /// Get the number of immutable memtables waiting to flush. fn immutable_memtable_count(&self) -> usize; + /// Get remaining batch capacity in the active memtable. + fn remaining_batch_capacity(&self) -> usize; + + /// Get total batch capacity of the active memtable. + fn batch_capacity(&self) -> usize; + + /// Trigger a memtable flush and wait for it to complete. + /// Returns when a new memtable is available with fresh capacity. + async fn trigger_memtable_flush_and_wait(&self); + /// Get a watcher for the oldest WAL durability. fn oldest_wal_watcher(&self) -> Option; @@ -169,45 +266,101 @@ impl BackpressureController { /// This method blocks if the system is under memory pressure, waiting for /// the oldest WAL or memtable to be flushed. /// - /// Handles `maybe_apply_backpressure` in db.rs:292-385. + /// Backpressure is applied when ANY of: + /// - Total unflushed bytes >= max_unflushed_bytes + /// - Immutable memtable count >= max_immutable_memtables + /// - Batch store remaining capacity < 10% (triggers memtable flush) pub async fn maybe_apply_backpressure( &self, provider: &dyn BackpressureProvider, ) -> Result<()> { + let mut iteration = 0u32; loop { // Calculate total unflushed bytes let wal_bytes = provider.wal_buffer_bytes(); let imm_bytes = provider.immutable_memtable_bytes(); let total_unflushed = wal_bytes + imm_bytes; + let imm_count = provider.immutable_memtable_count(); - // Check memory threshold - if total_unflushed < self.config.max_unflushed_bytes { - // Also check immutable memtable count - let imm_count = provider.immutable_memtable_count(); - if imm_count < self.config.max_immutable_memtables { - return Ok(()); - } + // Check batch store capacity (trigger flush when < 10% remaining) + let remaining_batches = provider.remaining_batch_capacity(); + let total_batches = provider.batch_capacity(); + let batch_store_nearly_full = + total_batches > 0 && remaining_batches < total_batches / 10; + + // Check if any threshold is exceeded + let bytes_exceeded = total_unflushed >= self.config.max_unflushed_bytes; + let imm_exceeded = imm_count >= self.config.max_immutable_memtables; + + if !bytes_exceeded && !imm_exceeded && !batch_store_nearly_full { + return Ok(()); } - // Need to apply backpressure - wait for oldest WAL or memtable to flush + // Determine primary backpressure type (priority: batch_store > imm > bytes) + let bp_type = if batch_store_nearly_full { + // Trigger memtable flush when batch store is nearly full and WAIT for it + eprintln!( + "[{:.3}][BP_TRIGGER] iter={} batch_store_nearly_full: remaining={}/{} (<10%), triggering flush and waiting", + log_ts(), iteration, remaining_batches, total_batches + ); + let start = std::time::Instant::now(); + provider.trigger_memtable_flush_and_wait().await; + let wait_ms = start.elapsed().as_millis() as u64; + self.stats.record(BackpressureType::BatchStoreFull, wait_ms); + eprintln!( + "[{:.3}][BP_TRIGGER] flush complete after {}ms, new remaining={}", + log_ts(), wait_ms, provider.remaining_batch_capacity() + ); + // After flush completes, loop to re-check all conditions + iteration += 1; + continue; + } else if imm_exceeded { + eprintln!( + "[{:.3}][BP_TRIGGER] iter={} imm_exceeded: imm_count={} >= max={}", + log_ts(), iteration, imm_count, self.config.max_immutable_memtables + ); + BackpressureType::ImmutableMemtables + } else { + eprintln!( + "[{:.3}][BP_TRIGGER] iter={} bytes_exceeded: unflushed={} >= max={}", + log_ts(), iteration, total_unflushed, self.config.max_unflushed_bytes + ); + BackpressureType::UnflushedBytes + }; + + // Log backpressure trigger + debug!( + backpressure_type = %bp_type, + unflushed_bytes = total_unflushed, + max_unflushed_bytes = self.config.max_unflushed_bytes, + immutable_memtables = imm_count, + max_immutable_memtables = self.config.max_immutable_memtables, + remaining_batch_capacity = remaining_batches, + total_batch_capacity = total_batches, + "Backpressure triggered" + ); + iteration += 1; + + // Need to apply backpressure let start = std::time::Instant::now(); + // Wait for oldest WAL or memtable to flush let oldest_wal = provider.oldest_wal_watcher(); let oldest_memtable = provider.oldest_memtable_watcher(); match (oldest_wal, oldest_memtable) { (Some(mut wal_watcher), Some(mut mem_watcher)) => { - // Wait for either to complete or timeout tokio::select! { _ = wal_watcher.await_value() => {} _ = mem_watcher.await_value() => {} - _ = tokio::time::sleep(self.config.backpressure_timeout) => { + _ = tokio::time::sleep(self.config.backpressure_log_interval) => { warn!( - "Backpressure wait timeout after {:?}, \ - unflushed_bytes={}, imm_memtables={}", - self.config.backpressure_timeout, - total_unflushed, - provider.immutable_memtable_count() + backpressure_type = %bp_type, + unflushed_bytes = total_unflushed, + immutable_memtables = imm_count, + remaining_batch_capacity = remaining_batches, + interval_secs = self.config.backpressure_log_interval.as_secs(), + "Backpressure wait timeout" ); } } @@ -215,27 +368,36 @@ impl BackpressureController { (Some(mut wal_watcher), None) => { tokio::select! { _ = wal_watcher.await_value() => {} - _ = tokio::time::sleep(self.config.backpressure_timeout) => { - warn!("Backpressure wait timeout (WAL only)"); + _ = tokio::time::sleep(self.config.backpressure_log_interval) => { + warn!( + backpressure_type = %bp_type, + unflushed_bytes = total_unflushed, + interval_secs = self.config.backpressure_log_interval.as_secs(), + "Backpressure wait timeout (WAL only)" + ); } } } (None, Some(mut mem_watcher)) => { tokio::select! { _ = mem_watcher.await_value() => {} - _ = tokio::time::sleep(self.config.backpressure_timeout) => { - warn!("Backpressure wait timeout (memtable only)"); + _ = tokio::time::sleep(self.config.backpressure_log_interval) => { + warn!( + backpressure_type = %bp_type, + immutable_memtables = imm_count, + interval_secs = self.config.backpressure_log_interval.as_secs(), + "Backpressure wait timeout (memtable only)" + ); } } } (None, None) => { - // No watchers available, just wait a bit tokio::time::sleep(Duration::from_millis(100)).await; } } let wait_ms = start.elapsed().as_millis() as u64; - self.stats.record(wait_ms); + self.stats.record(bp_type, wait_ms); } } } @@ -272,22 +434,45 @@ impl WriteBatchHandler { } } +/// Result of a batch insert operation. +#[derive(Debug)] +pub struct InsertBatchResult { + /// Batch ID in the MemTable. + pub batch_id: usize, + /// Row offset in the MemTable for index updates. + pub row_offset: u64, + /// Estimated size in bytes (for WAL buffer tracking). + pub estimated_size: usize, +} + /// Trait for writer state operations needed by WriteBatchHandler. /// /// This abstraction allows the handler to be tested without full RegionWriter. #[async_trait::async_trait] pub trait WriterStateOps: Send + Sync { - /// Insert a batch into the memtable (includes index updates). - async fn insert_batch(&self, batch: RecordBatch, seq: u64) -> Result; - - /// Append batch_id to WAL buffer and get durability watcher. - fn append_to_wal(&self, batch_id: usize) -> DurabilityWatcher; + /// Insert a batch into the memtable (WITHOUT index updates). + /// + /// Index updates are deferred to WAL flush time for parallel execution. + /// Returns batch_id and row_offset for subsequent index updates. + async fn insert_batch(&self, batch: RecordBatch, seq: u64) -> Result; - /// Maybe trigger WAL flush based on size threshold. - fn maybe_trigger_wal_flush(&self) -> Result<()>; + /// Track batch for WAL durability. + /// + /// The batch data is stored in LockFreeBatchStore and read during WAL flush. + /// This method tracks the batch for size-based flush triggers. + fn track_batch_for_wal( + &self, + batch_id: usize, + row_offset: u64, + seq: u64, + estimated_size: usize, + ) -> DurabilityWatcher; /// Check if memtable flush is needed and trigger if so. async fn maybe_trigger_memtable_flush(&self) -> Result<()>; + + /// Check if WAL flush is needed based on buffer size and trigger if so. + fn maybe_trigger_wal_flush(&self); } #[async_trait::async_trait] @@ -303,19 +488,27 @@ impl .next_seq .fetch_add(1, std::sync::atomic::Ordering::Relaxed); - let batch_id = match self.state.insert_batch(batch, seq).await { - Ok(id) => id, + // Insert batch into memtable (no index update - deferred to WAL flush) + // The batch is moved into MemTable, not cloned + let insert_result = match self.state.insert_batch(batch, seq).await { + Ok(result) => result, Err(e) => { let _ = done.send(Err(e)); return Ok(()); } }; - let durable_watcher = self.state.append_to_wal(batch_id); + // Track batch for WAL durability (size-based flush triggers) + // The batch data is read from LockFreeBatchStore during flush + let durable_watcher = self.state.track_batch_for_wal( + insert_result.batch_id, + insert_result.row_offset, + seq, + insert_result.estimated_size, + ); - if let Err(e) = self.state.maybe_trigger_wal_flush() { - tracing::warn!("Failed to trigger WAL flush: {}", e); - } + // Check if WAL flush should be triggered based on buffer size + self.state.maybe_trigger_wal_flush(); if let Err(e) = self.state.maybe_trigger_memtable_flush().await { tracing::warn!("Failed to trigger memtable flush: {}", e); @@ -324,7 +517,7 @@ impl self.stats.record_put(start.elapsed()); let result = WriteBatchResult { - batch_id, + batch_id: insert_result.batch_id, seq, durable_watcher, }; @@ -355,6 +548,7 @@ mod tests { } } + #[async_trait::async_trait] impl BackpressureProvider for MockBackpressureProvider { fn wal_buffer_bytes(&self) -> usize { self.wal_bytes.load(Ordering::Relaxed) @@ -368,6 +562,18 @@ mod tests { self.imm_count.load(Ordering::Relaxed) } + fn remaining_batch_capacity(&self) -> usize { + 1000 // Always plenty of capacity + } + + fn batch_capacity(&self) -> usize { + 1000 + } + + async fn trigger_memtable_flush_and_wait(&self) { + // No-op for mock + } + fn oldest_wal_watcher(&self) -> Option { None } @@ -397,13 +603,14 @@ mod tests { async fn test_backpressure_with_watcher() { let config = RegionWriterConfig::default() .with_max_unflushed_bytes(100) // Very low threshold - .with_backpressure_timeout(Duration::from_millis(50)); + .with_backpressure_log_interval(Duration::from_millis(50)); let controller = BackpressureController::new(config); // Provider that exceeds threshold but has no watchers #[allow(dead_code)] struct HighPressureProvider; + #[async_trait::async_trait] impl BackpressureProvider for HighPressureProvider { fn wal_buffer_bytes(&self) -> usize { 1000 @@ -414,6 +621,13 @@ mod tests { fn immutable_memtable_count(&self) -> usize { 0 } + fn remaining_batch_capacity(&self) -> usize { + 1000 + } + fn batch_capacity(&self) -> usize { + 1000 + } + async fn trigger_memtable_flush_and_wait(&self) {} fn oldest_wal_watcher(&self) -> Option { None } @@ -427,6 +641,7 @@ mod tests { struct EventuallyLowProvider { call_count: AtomicUsize, } + #[async_trait::async_trait] impl BackpressureProvider for EventuallyLowProvider { fn wal_buffer_bytes(&self) -> usize { if self.call_count.fetch_add(1, Ordering::Relaxed) > 0 { @@ -441,6 +656,13 @@ mod tests { fn immutable_memtable_count(&self) -> usize { 0 } + fn remaining_batch_capacity(&self) -> usize { + 1000 + } + fn batch_capacity(&self) -> usize { + 1000 + } + async fn trigger_memtable_flush_and_wait(&self) {} fn oldest_wal_watcher(&self) -> Option { None } @@ -475,6 +697,7 @@ mod tests { /// Mock implementation of WriterStateOps for testing. struct MockWriterState { next_batch_id: RwLock, + next_row_offset: RwLock, inserted_batches: RwLock>, wal_append_count: AtomicUsize, } @@ -483,6 +706,7 @@ mod tests { fn new() -> Self { Self { next_batch_id: RwLock::new(0), + next_row_offset: RwLock::new(0), inserted_batches: RwLock::new(Vec::new()), wal_append_count: AtomicUsize::new(0), } @@ -491,15 +715,33 @@ mod tests { #[async_trait::async_trait] impl WriterStateOps for Arc { - async fn insert_batch(&self, batch: RecordBatch, seq: u64) -> Result { + async fn insert_batch(&self, batch: RecordBatch, seq: u64) -> Result { let mut id = self.next_batch_id.write().await; + let mut row_offset = self.next_row_offset.write().await; let batch_id = *id; + let current_offset = *row_offset; + let estimated_size = batch + .columns() + .iter() + .map(|c| c.get_array_memory_size()) + .sum(); *id += 1; + *row_offset += batch.num_rows() as u64; self.inserted_batches.write().await.push((batch, seq)); - Ok(batch_id) + Ok(InsertBatchResult { + batch_id, + row_offset: current_offset, + estimated_size, + }) } - fn append_to_wal(&self, _batch_id: usize) -> DurabilityWatcher { + fn track_batch_for_wal( + &self, + _batch_id: usize, + _row_offset: u64, + _seq: u64, + _estimated_size: usize, + ) -> DurabilityWatcher { self.wal_append_count.fetch_add(1, Ordering::Relaxed); // Return a watcher that's immediately durable let cell = WatchableOnceCell::new(); @@ -507,12 +749,12 @@ mod tests { cell.reader() } - fn maybe_trigger_wal_flush(&self) -> Result<()> { + async fn maybe_trigger_memtable_flush(&self) -> Result<()> { Ok(()) } - async fn maybe_trigger_memtable_flush(&self) -> Result<()> { - Ok(()) + fn maybe_trigger_wal_flush(&self) { + // No-op for mock } } diff --git a/rust/lance/src/dataset/mem_wal/write/flush.rs b/rust/lance/src/dataset/mem_wal/write/flush.rs index 240fbfaf622..403007d4060 100644 --- a/rust/lance/src/dataset/mem_wal/write/flush.rs +++ b/rust/lance/src/dataset/mem_wal/write/flush.rs @@ -10,6 +10,14 @@ //! 4. Updates the region manifest atomically use std::sync::Arc; +use std::time::Instant; + +/// Get a timestamp string for debug logging (seconds since program start). +fn log_ts() -> f64 { + use std::sync::OnceLock; + static START: OnceLock = OnceLock::new(); + START.get_or_init(Instant::now).elapsed().as_secs_f64() +} use bytes::Bytes; use lance_core::{Error, Result}; @@ -124,6 +132,14 @@ impl MemTableFlusher { memtable: &MemTable, epoch_guard: &EpochGuard, ) -> Result { + eprintln!( + "[{:.3}] [FLUSHER] flush() called: {} rows, {} batches", + log_ts(), + memtable.row_count(), + memtable.batch_count() + ); + let flush_total_start = std::time::Instant::now(); + // 1. Check if writer has been fenced epoch_guard.check_fenced().await?; @@ -157,27 +173,59 @@ impl MemTableFlusher { memtable.row_count(), memtable.batch_count() ); + eprintln!( + "[{:.3}] [FLUSHER] Starting flush: gen={}, {} rows, {} batches", + log_ts(), + generation, + memtable.row_count(), + memtable.batch_count() + ); // 4. Write data as a Lance Dataset // Dataset::write creates the full directory structure including _versions/, data/ + let lance_start = std::time::Instant::now(); self.write_data_file(&gen_path, memtable).await?; + eprintln!( + "[{:.3}] [FLUSHER] write_data_file (Lance) took {}ms", + log_ts(), + lance_start.elapsed().as_millis() + ); // 5. Serialize bloom filter (inside the generation directory) + let bloom_start = std::time::Instant::now(); let bloom_path = gen_path.child("bloom_filter.bin"); self.write_bloom_filter(&bloom_path, memtable.bloom_filter()) .await?; + eprintln!( + "[{:.3}] [FLUSHER] write_bloom_filter took {}ms", + log_ts(), + bloom_start.elapsed().as_millis() + ); // 6. Update region manifest + let manifest_start = std::time::Instant::now(); let last_wal_id = memtable.last_flushed_wal_id(); let new_manifest = self .update_manifest(epoch_guard, generation, gen_path.as_ref(), last_wal_id) .await?; + eprintln!( + "[{:.3}] [FLUSHER] update_manifest took {}ms", + log_ts(), + manifest_start.elapsed().as_millis() + ); info!( "Flushed generation {} for region {} (manifest version {})", generation, self.region_id, new_manifest.version ); + eprintln!( + "[{:.3}] [FLUSHER] flush() complete: total={}ms, {} rows", + log_ts(), + flush_total_start.elapsed().as_millis(), + memtable.row_count() + ); + Ok(FlushResult { generation: FlushedGeneration { generation, @@ -203,18 +251,36 @@ impl MemTableFlusher { } // Get all batches directly from BatchStore + let scan_start = std::time::Instant::now(); let batches = memtable.scan_batches().await?; if batches.is_empty() { return Ok(()); } + let num_batches = batches.len(); + let total_rows: usize = batches.iter().map(|b| b.num_rows()).sum(); + eprintln!( + "[{:.3}] [LANCE_WRITE] scan_batches: {}ms, {} batches, {} rows", + log_ts(), + scan_start.elapsed().as_millis(), + num_batches, + total_rows + ); // Construct the full URI for the dataset let uri = self.path_to_uri(path); // Write all batches as a single Lance file + let write_start = std::time::Instant::now(); let reader = RecordBatchIterator::new(batches.into_iter().map(Ok), memtable.schema().clone()); Dataset::write(reader, &uri, None).await?; + eprintln!( + "[{:.3}] [LANCE_WRITE] Dataset::write: {}ms, {} rows to {}", + log_ts(), + write_start.elapsed().as_millis(), + total_rows, + uri + ); debug!("Wrote Lance Dataset to {}", uri); Ok(()) @@ -898,7 +964,7 @@ mod tests { let mut memtable = MemTable::new(schema.clone(), 1, vec![]).unwrap(); // Set up in-memory index registry so preprocessed data path is used - let registry = IndexRegistry::from_configs(&index_configs).unwrap(); + let registry = IndexRegistry::from_configs(&index_configs, 100_000, 8).unwrap(); memtable.set_indexes(registry); let frag_id = memtable diff --git a/rust/lance/src/dataset/mem_wal/write/indexes.rs b/rust/lance/src/dataset/mem_wal/write/indexes.rs index ed1d410ac6d..09fa86df4a3 100644 --- a/rust/lance/src/dataset/mem_wal/write/indexes.rs +++ b/rust/lance/src/dataset/mem_wal/write/indexes.rs @@ -13,6 +13,7 @@ use std::collections::HashMap; use std::sync::atomic::{AtomicU64, AtomicUsize, Ordering}; use std::sync::Arc; +use std::time::{Duration, Instant}; use arrow_array::cast::AsArray; use arrow_array::{Array, FixedSizeListArray, RecordBatch, UInt8Array}; @@ -391,34 +392,224 @@ pub struct IvfPqEntry { pub pq_code: Vec, } -/// Composite key for IVF-PQ index. +/// Default capacity per partition (can be overridden via `IvfPqMemIndex::with_capacity`). +const DEFAULT_PARTITION_CAPACITY: usize = 4096; + +/// Lock-free per-partition storage with pre-transposed (column-major) PQ codes. /// -/// By combining (partition_id, row_position), each entry is unique. -#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord)] -pub struct IvfPqKey { - /// Partition ID (centroid assignment). - pub partition_id: u32, - /// Row position (makes the key unique within partition). - pub row_position: RowPosition, +/// Uses pre-allocated arrays and atomic length counter for lock-free concurrent access. +/// Stores codes in column-major format: `codes[subvec_idx * capacity + vec_idx]` +/// +/// When the pre-allocated capacity is reached, additional vectors go into an overflow +/// buffer. This handles the race between capacity detection and memtable freeze. +/// +/// # Safety +/// +/// - Writes must be serialized (one writer at a time) - guaranteed by our insert loop +/// - Reads can happen concurrently with writes +/// - Uses Release/Acquire ordering for proper visibility +#[derive(Debug)] +struct LockFreeIvfPartitionStorage { + /// Pre-allocated row positions. + row_positions: Box<[u64]>, + /// Pre-allocated codes in column-major layout. + /// Layout: codes[subvec_idx * capacity + vec_idx] + codes: Box<[u8]>, + /// Current number of vectors in pre-allocated storage (atomic for lock-free reads). + len: AtomicUsize, + /// Code length per vector. + code_len: usize, + /// Maximum capacity of pre-allocated storage. + capacity: usize, + /// Overflow buffer for vectors that arrive after capacity is reached. + /// Uses RwLock since writes are serialized but reads can be concurrent. + overflow: std::sync::RwLock>, +} + +/// Entry in the overflow buffer when partition capacity is exceeded. +#[derive(Debug, Clone)] +struct OverflowEntry { + row_position: RowPosition, + /// PQ code stored in row-major format. + pq_code: Vec, +} + +impl LockFreeIvfPartitionStorage { + /// Create new pre-allocated storage. + fn new(code_len: usize, capacity: usize) -> Self { + Self { + row_positions: vec![0u64; capacity].into_boxed_slice(), + codes: vec![0u8; capacity * code_len].into_boxed_slice(), + len: AtomicUsize::new(0), + code_len, + capacity, + overflow: std::sync::RwLock::new(Vec::new()), + } + } + + /// Insert a vector's PQ code. + /// + /// If the pre-allocated storage has capacity, inserts in column-major format. + /// If at capacity, inserts into the overflow buffer instead. + /// + /// # Safety + /// + /// This method is NOT thread-safe for concurrent inserts. + /// Only one thread should call insert at a time. + /// However, it IS safe to read concurrently while inserting. + #[inline] + fn insert(&self, row_position: RowPosition, pq_code: &[u8]) { + debug_assert_eq!(pq_code.len(), self.code_len); + + let idx = self.len.load(Ordering::Relaxed); + + if idx < self.capacity { + // Insert into pre-allocated storage (column-major format) + // Safety: we're the only writer (by contract), and we write before updating len + unsafe { + // Write row position + let row_pos_ptr = self.row_positions.as_ptr() as *mut u64; + std::ptr::write(row_pos_ptr.add(idx), row_position); + + // Write codes in column-major order + let codes_ptr = self.codes.as_ptr() as *mut u8; + for (subvec_idx, &code) in pq_code.iter().enumerate() { + std::ptr::write(codes_ptr.add(subvec_idx * self.capacity + idx), code); + } + } + + // Release fence ensures writes are visible before length update + self.len.store(idx + 1, Ordering::Release); + } else { + // Capacity exceeded - use overflow buffer + let mut overflow = self.overflow.write().unwrap(); + overflow.push(OverflowEntry { + row_position, + pq_code: pq_code.to_vec(), + }); + } + } + + /// Get the total number of vectors in this partition (pre-allocated + overflow). + #[inline] + fn len(&self) -> usize { + self.len.load(Ordering::Acquire) + self.overflow.read().unwrap().len() + } + + /// Get the number of vectors in pre-allocated storage only. + #[inline] + fn preallocated_len(&self) -> usize { + self.len.load(Ordering::Acquire) + } + + /// Get the number of vectors in overflow. + #[inline] + fn overflow_len(&self) -> usize { + self.overflow.read().unwrap().len() + } + + /// Check if partition is empty. + #[inline] + fn is_empty(&self) -> bool { + self.len() == 0 + } + + /// Get pre-transposed codes as a contiguous array (including overflow). + /// + /// The codes are stored in column-major format: [subvec0: n bytes][subvec1: n bytes]... + /// Overflow entries are transposed and appended. + fn transposed_codes(&self) -> Vec { + let preallocated_len = self.len.load(Ordering::Acquire); + let overflow = self.overflow.read().unwrap(); + let total_len = preallocated_len + overflow.len(); + + if total_len == 0 { + return Vec::new(); + } + + let mut result = Vec::with_capacity(total_len * self.code_len); + + // First, add pre-allocated codes (already column-major) + // Format: [subvec0: preallocated_len bytes][subvec1: preallocated_len bytes]... + // But we need: [subvec0: total_len bytes][subvec1: total_len bytes]... + for subvec_idx in 0..self.code_len { + // Add pre-allocated codes for this subvector + let start = subvec_idx * self.capacity; + result.extend_from_slice(&self.codes[start..start + preallocated_len]); + + // Add overflow codes for this subvector (transpose row-major to column-major) + for entry in overflow.iter() { + result.push(entry.pq_code[subvec_idx]); + } + } + + result + } + + /// Get all row positions (pre-allocated + overflow). + fn all_row_positions(&self) -> Vec { + let preallocated_len = self.len.load(Ordering::Acquire); + let overflow = self.overflow.read().unwrap(); + + let mut result = Vec::with_capacity(preallocated_len + overflow.len()); + result.extend_from_slice(&self.row_positions[..preallocated_len]); + result.extend(overflow.iter().map(|e| e.row_position)); + result + } + + /// Get row positions from pre-allocated storage only (for backward compatibility). + #[inline] + fn row_positions(&self) -> &[RowPosition] { + let len = self.len.load(Ordering::Acquire); + &self.row_positions[..len] + } + + /// Access codes for a specific sub-vector index from pre-allocated storage. + #[inline] + fn subvec_codes(&self, subvec_idx: usize, len: usize) -> &[u8] { + let start = subvec_idx * self.capacity; + &self.codes[start..start + len] + } + + /// Check if this partition has reached its pre-allocated capacity. + /// + /// Note: This returns true when the pre-allocated storage is full, + /// even if overflow is being used. Used to trigger memtable flush. + #[inline] + fn is_at_capacity(&self) -> bool { + self.len.load(Ordering::Acquire) >= self.capacity + } + + /// Check if this partition has any overflow entries. + #[inline] + fn has_overflow(&self) -> bool { + !self.overflow.read().unwrap().is_empty() + } } /// In-memory IVF-PQ index for vector similarity search. /// /// Reuses IVF centroids and PQ codebook from the base table to ensure /// distance comparisons are consistent between the in-memory and base table indexes. +/// +/// Uses lock-free pre-transposed (column-major) storage for PQ codes to avoid +/// expensive transpose operations at search time. #[derive(Debug)] pub struct IvfPqMemIndex { column_name: String, ivf_model: IvfModel, pq: ProductQuantizer, - /// Inverted index: (partition_id, row_position) -> pq_code. - inverted_index: SkipMap>, + /// Lock-free per-partition storage with pre-transposed PQ codes. + /// Index by partition_id for O(1) access. + partitions: Vec, /// Total number of vectors indexed. vector_count: AtomicUsize, /// Distance type for partition assignment. distance_type: DistanceType, /// Number of partitions. num_partitions: usize, + /// PQ code length per vector (num_sub_vectors for 8-bit, num_sub_vectors/2 for 4-bit). + code_len: usize, /// Maximum sequence number that has been indexed. /// Used for index coverage tracking in split plans. max_indexed_seq: AtomicU64, @@ -427,6 +618,8 @@ pub struct IvfPqMemIndex { impl IvfPqMemIndex { /// Create a new IVF-PQ index with centroids and codebook from base table. /// + /// Uses default partition capacity (4096 vectors per partition). + /// /// # Arguments /// /// * `column_name` - Vector column name @@ -438,16 +631,46 @@ impl IvfPqMemIndex { ivf_model: IvfModel, pq: ProductQuantizer, distance_type: DistanceType, + ) -> Self { + Self::with_capacity( + column_name, + ivf_model, + pq, + distance_type, + DEFAULT_PARTITION_CAPACITY, + ) + } + + /// Create a new IVF-PQ index with specified partition capacity. + /// + /// # Arguments + /// + /// * `column_name` - Vector column name + /// * `ivf_model` - IVF model with centroids from base table + /// * `pq` - Product quantizer with codebook from base table + /// * `distance_type` - Distance type for search + /// * `partition_capacity` - Maximum vectors per partition + pub fn with_capacity( + column_name: String, + ivf_model: IvfModel, + pq: ProductQuantizer, + distance_type: DistanceType, + partition_capacity: usize, ) -> Self { let num_partitions = ivf_model.num_partitions(); + let code_len = pq.num_sub_vectors * pq.num_bits as usize / 8; + let partitions = (0..num_partitions) + .map(|_| LockFreeIvfPartitionStorage::new(code_len, partition_capacity)) + .collect(); Self { column_name, ivf_model, pq, - inverted_index: SkipMap::new(), + partitions, vector_count: AtomicUsize::new(0), distance_type, num_partitions, + code_len, max_indexed_seq: AtomicU64::new(0), } } @@ -479,6 +702,31 @@ impl IvfPqMemIndex { } } + /// Check if any partition has reached its capacity. + /// + /// Returns true if at least one partition is at capacity, + /// which indicates the memtable should be flushed. + pub fn any_partition_at_capacity(&self) -> bool { + self.partitions + .iter() + .any(|partition| partition.is_at_capacity()) + } + + /// Check if any partition has overflow entries. + /// + /// Returns true if at least one partition has vectors in its overflow buffer, + /// indicating writes occurred after capacity was reached but before freeze. + pub fn any_partition_has_overflow(&self) -> bool { + self.partitions + .iter() + .any(|partition| partition.has_overflow()) + } + + /// Get total overflow count across all partitions. + pub fn total_overflow_count(&self) -> usize { + self.partitions.iter().map(|p| p.overflow_len()).sum() + } + /// Insert vectors from a batch into the index. pub fn insert(&self, batch: &RecordBatch, row_offset: u64) -> Result<()> { self.insert_with_seq(batch, row_offset, None) @@ -542,23 +790,18 @@ impl IvfPqMemIndex { // Extract PQ code for this vector let pq_code_arr = pq_codes_fsl.value(row_idx); - let pq_code: Vec = pq_code_arr + let pq_code: &[u8] = pq_code_arr .as_primitive::() - .values() - .iter() - .copied() - .collect(); + .values(); debug_assert_eq!(pq_code.len(), pq_code_len); let row_position = row_offset + row_idx as u64; if (partition_id as usize) < self.num_partitions { - let key = IvfPqKey { - partition_id, - row_position, - }; - self.inverted_index.insert(key, pq_code); + // Insert into lock-free pre-transposed partition storage + // This is O(m) where m = code_len, but avoids O(n*m) transpose at search time + self.partitions[partition_id as usize].insert(row_position, pq_code); inserted_count += 1; } } @@ -574,6 +817,106 @@ impl IvfPqMemIndex { Ok(()) } + /// Insert vectors from multiple batches with cross-batch vectorization. + /// + /// This method concatenates vectors from all batches and processes them + /// together for better SIMD utilization in partition assignment and PQ encoding. + pub fn insert_batches(&self, batches: &[BufferedBatch]) -> Result<()> { + if batches.is_empty() { + return Ok(()); + } + + // Collect vector arrays and track batch boundaries + let mut vector_arrays: Vec<&FixedSizeListArray> = Vec::with_capacity(batches.len()); + let mut batch_infos: Vec<(u64, usize, Option)> = Vec::with_capacity(batches.len()); + + for buffered in batches { + let col_idx = buffered + .batch + .schema() + .column_with_name(&self.column_name) + .map(|(idx, _)| idx); + + if let Some(col_idx) = col_idx { + let column = buffered.batch.column(col_idx); + if let Some(fsl) = column.as_fixed_size_list_opt() { + let num_vectors = fsl.len(); + if num_vectors > 0 { + vector_arrays.push(fsl); + batch_infos.push((buffered.row_offset, num_vectors, buffered.seq)); + } + } + } + + // Update max_indexed_seq even if no vectors in this batch + if let Some(s) = buffered.seq { + self.update_max_indexed_seq(s); + } + } + + if vector_arrays.is_empty() { + return Ok(()); + } + + // Concatenate all vectors into a single array for vectorized processing + let arrays_as_refs: Vec<&dyn Array> = + vector_arrays.iter().map(|a| *a as &dyn Array).collect(); + let concatenated = arrow_select::concat::concat(&arrays_as_refs)?; + let mega_fsl = concatenated.as_fixed_size_list(); + + // Batch compute partition assignments (SIMD-optimized) + let centroids = self + .ivf_model + .centroids + .as_ref() + .ok_or_else(|| Error::invalid_input("IVF model has no centroids", location!()))?; + let (partition_ids, _distances) = + compute_partitions_arrow_array(centroids, mega_fsl, self.distance_type)?; + + // Batch compute PQ codes (SIMD-optimized) + let pq_codes = self.pq.quantize(mega_fsl)?; + let pq_codes_fsl = pq_codes.as_fixed_size_list(); + let pq_code_len = pq_codes_fsl.value_length() as usize; + + // Distribute to partitions with correct row offsets + let mut global_idx = 0usize; + let mut inserted_count = 0usize; + + for (row_offset, num_vectors, _seq) in &batch_infos { + for local_idx in 0..*num_vectors { + let partition_id = partition_ids[global_idx]; + + // Skip null vectors + let Some(partition_id) = partition_id else { + global_idx += 1; + continue; + }; + + // Extract PQ code for this vector + let pq_code_arr = pq_codes_fsl.value(global_idx); + let pq_code: &[u8] = pq_code_arr + .as_primitive::() + .values(); + + debug_assert_eq!(pq_code.len(), pq_code_len); + + let row_position = row_offset + local_idx as u64; + + if (partition_id as usize) < self.num_partitions { + self.partitions[partition_id as usize].insert(row_position, pq_code); + inserted_count += 1; + } + + global_idx += 1; + } + } + + self.vector_count + .fetch_add(inserted_count, Ordering::Relaxed); + + Ok(()) + } + /// Search for nearest neighbors. /// /// # Arguments @@ -601,9 +944,9 @@ impl IvfPqMemIndex { // Find nearest partitions to probe // Note: find_partitions expects the inner primitive array, not FixedSizeListArray let query_values = query.value(0); - let (partition_ids, _) = self - .ivf_model - .find_partitions(&query_values, nprobes, self.distance_type)?; + let (partition_ids, _) = + self.ivf_model + .find_partitions(&query_values, nprobes, self.distance_type)?; let mut results: Vec<(f32, RowPosition)> = Vec::new(); @@ -613,35 +956,15 @@ impl IvfPqMemIndex { continue; } - let start_key = IvfPqKey { - partition_id, - row_position: 0, - }; - let end_key = IvfPqKey { - partition_id, - row_position: u64::MAX, - }; - - // Collect entries for this partition - let entries: Vec<_> = self - .inverted_index - .range(start_key..=end_key) - .map(|e| (e.key().row_position, e.value().clone())) - .collect(); - - if entries.is_empty() { + // Read from lock-free pre-transposed partition storage + let partition = &self.partitions[partition_id as usize]; + if partition.is_empty() { continue; } - // Collect all PQ codes from this partition into a single array - let pq_code_len = self.pq.num_sub_vectors * self.pq.num_bits as usize / 8; - let mut all_codes: Vec = Vec::with_capacity(entries.len() * pq_code_len); - for (_, pq_code) in &entries { - all_codes.extend_from_slice(pq_code); - } - - // Transpose PQ codes for distance computation - let transposed_codes = transpose_pq_codes(&all_codes, entries.len(), pq_code_len); + // Get pre-transposed codes (includes overflow) and all row positions + let transposed_codes = partition.transposed_codes(); + let row_positions = partition.all_row_positions(); let codes_array = UInt8Array::from(transposed_codes); // Compute distances using PQ distance table @@ -650,7 +973,7 @@ impl IvfPqMemIndex { // Collect results with row positions for (idx, &dist) in distances.values().iter().enumerate() { - results.push((dist, entries[idx].0)); + results.push((dist, row_positions[idx])); } } @@ -663,15 +986,10 @@ impl IvfPqMemIndex { /// Get the number of vectors in a partition. pub fn partition_size(&self, partition_id: usize) -> usize { - let start_key = IvfPqKey { - partition_id: partition_id as u32, - row_position: 0, - }; - let end_key = IvfPqKey { - partition_id: partition_id as u32, - row_position: u64::MAX, - }; - self.inverted_index.range(start_key..=end_key).count() + if partition_id >= self.num_partitions { + return 0; + } + self.partitions[partition_id].len() } /// Get total vector count. @@ -689,23 +1007,48 @@ impl IvfPqMemIndex { &self.column_name } - /// Get entries for a partition. + /// Get entries for a partition (including overflow). + /// Returns PQ codes in row-major format for compatibility with external APIs. pub fn get_partition(&self, partition_id: usize) -> Vec { - let start_key = IvfPqKey { - partition_id: partition_id as u32, - row_position: 0, - }; - let end_key = IvfPqKey { - partition_id: partition_id as u32, - row_position: u64::MAX, - }; - self.inverted_index - .range(start_key..=end_key) - .map(|e| IvfPqEntry { - row_position: e.key().row_position, - pq_code: e.value().clone(), + if partition_id >= self.num_partitions { + return Vec::new(); + } + let partition = &self.partitions[partition_id]; + let total_vectors = partition.len(); + if total_vectors == 0 { + return Vec::new(); + } + + let code_len = self.code_len; + let preallocated_len = partition.preallocated_len(); + + // Reconstruct row-major codes from column-major pre-allocated storage + let mut entries: Vec = partition + .row_positions() + .iter() + .enumerate() + .map(|(vec_idx, &row_position)| { + let mut pq_code = Vec::with_capacity(code_len); + for subvec_idx in 0..code_len { + pq_code.push(partition.subvec_codes(subvec_idx, preallocated_len)[vec_idx]); + } + IvfPqEntry { + row_position, + pq_code, + } }) - .collect() + .collect(); + + // Add overflow entries (already in row-major format) + let overflow = partition.overflow.read().unwrap(); + for entry in overflow.iter() { + entries.push(IvfPqEntry { + row_position: entry.row_position, + pq_code: entry.pq_code.clone(), + }); + } + + entries } /// Get the number of partitions. @@ -801,24 +1144,6 @@ impl IvfPqMemIndex { } } -/// Transpose PQ codes from row-major to column-major layout. -/// -/// Input: [v0_code, v1_code, v2_code, ...] where each code is [c0, c1, c2, ...] -/// Output: [all_c0, all_c1, all_c2, ...] where all_c0 = [v0_c0, v1_c0, v2_c0, ...] -fn transpose_pq_codes(codes: &[u8], num_vectors: usize, code_len: usize) -> Vec { - if codes.is_empty() { - return Vec::new(); - } - - let mut transposed = vec![0u8; codes.len()]; - for vec_idx in 0..num_vectors { - for code_idx in 0..code_len { - transposed[code_idx * num_vectors + vec_idx] = codes[vec_idx * code_len + code_idx]; - } - } - transposed -} - /// Composite key for FTS index. /// /// By combining (token, row_position), each entry is unique. @@ -1157,7 +1482,17 @@ impl IndexRegistry { } /// Create an index registry from index configurations. - pub fn from_configs(configs: &[MemIndexConfig]) -> Result { + /// + /// # Arguments + /// + /// * `configs` - Index configurations + /// * `max_rows` - Maximum rows in memtable, used to calculate IVF-PQ partition capacity + /// * `ivf_index_partition_capacity_safety_factor` - Safety factor for partition capacity (accounts for non-uniform distribution) + pub fn from_configs( + configs: &[MemIndexConfig], + max_rows: usize, + ivf_index_partition_capacity_safety_factor: usize, + ) -> Result { let mut registry = Self::new(); for config in configs { @@ -1168,11 +1503,20 @@ impl IndexRegistry { registry.btree_indexes.insert(c.name.clone(), index); } MemIndexConfig::IvfPq(c) => { - let index = IvfPqMemIndex::new( + let num_partitions = c.ivf_model.num_partitions(); + // Calculate capacity with safety factor for non-uniform distribution. + // Cap at max_rows to avoid over-allocation when num_partitions < safety_factor. + let avg_per_partition = max_rows / num_partitions; + let partition_capacity = (avg_per_partition + * ivf_index_partition_capacity_safety_factor) + .min(max_rows); + + let index = IvfPqMemIndex::with_capacity( c.column.clone(), c.ivf_model.clone(), c.pq.clone(), c.distance_type, + partition_capacity, ); registry.ivf_pq_indexes.insert(c.name.clone(), index); } @@ -1235,6 +1579,133 @@ impl IndexRegistry { Ok(()) } + /// Insert multiple batches into all indexes with cross-batch optimization. + /// + /// For IVF-PQ indexes, this enables vectorized partition assignment and + /// PQ encoding across all batches, improving performance through better + /// SIMD utilization. + pub fn insert_batches(&self, batches: &[BufferedBatch]) -> Result<()> { + // BTree indexes: iterate batches (no cross-batch optimization benefit) + for index in self.btree_indexes.values() { + for buffered in batches { + index.insert_with_seq(&buffered.batch, buffered.row_offset, buffered.seq)?; + } + } + + // IVF-PQ indexes: use batched insert for vectorization + for index in self.ivf_pq_indexes.values() { + index.insert_batches(batches)?; + } + + // FTS indexes: iterate batches (potential future optimization) + for index in self.fts_indexes.values() { + for buffered in batches { + index.insert_with_seq(&buffered.batch, buffered.row_offset, buffered.seq)?; + } + } + + Ok(()) + } + + /// Insert multiple batches into all indexes in parallel. + /// + /// Each index type (BTree, IVF-PQ, FTS) is processed in a separate thread. + /// Within each type, individual indexes are processed sequentially. + /// + /// This is used during WAL flush to parallelize index updates with WAL I/O. + pub fn insert_batches_parallel(&self, batches: &[BufferedBatch]) -> Result<()> { + if batches.is_empty() { + return Ok(()); + } + + // Use std::thread::scope for parallel CPU-bound work + std::thread::scope(|scope| { + // Spawn thread for BTree indexes + let btree_handle = if !self.btree_indexes.is_empty() { + Some(scope.spawn(|| -> Result<()> { + for index in self.btree_indexes.values() { + for buffered in batches { + index.insert_with_seq( + &buffered.batch, + buffered.row_offset, + buffered.seq, + )?; + } + } + Ok(()) + })) + } else { + None + }; + + // Spawn thread for IVF-PQ indexes + let ivfpq_handle = if !self.ivf_pq_indexes.is_empty() { + Some(scope.spawn(|| -> Result<()> { + for index in self.ivf_pq_indexes.values() { + index.insert_batches(batches)?; + } + Ok(()) + })) + } else { + None + }; + + // Spawn thread for FTS indexes + let fts_handle = if !self.fts_indexes.is_empty() { + Some(scope.spawn(|| -> Result<()> { + for index in self.fts_indexes.values() { + for buffered in batches { + index.insert_with_seq( + &buffered.batch, + buffered.row_offset, + buffered.seq, + )?; + } + } + Ok(()) + })) + } else { + None + }; + + // Collect results + let btree_result = btree_handle.map(|h| h.join()); + let ivfpq_result = ivfpq_handle.map(|h| h.join()); + let fts_result = fts_handle.map(|h| h.join()); + + // Check for errors (thread panic or index error) + if let Some(Ok(Err(e))) = btree_result { + return Err(e); + } + if let Some(Ok(Err(e))) = ivfpq_result { + return Err(e); + } + if let Some(Ok(Err(e))) = fts_result { + return Err(e); + } + if let Some(Err(_)) = btree_result { + return Err(Error::Internal { + message: "BTree index thread panicked".to_string(), + location: location!(), + }); + } + if let Some(Err(_)) = ivfpq_result { + return Err(Error::Internal { + message: "IVF-PQ index thread panicked".to_string(), + location: location!(), + }); + } + if let Some(Err(_)) = fts_result { + return Err(Error::Internal { + message: "FTS index thread panicked".to_string(), + location: location!(), + }); + } + + Ok(()) + }) + } + /// Get index coverage information. /// /// Returns the maximum indexed sequence numbers for all index types. @@ -1278,6 +1749,16 @@ impl IndexRegistry { self.fts_indexes.get(name) } + /// Check if any IVF-PQ index has a partition at capacity. + /// + /// Returns true if at least one partition in any IVF-PQ index has reached + /// its pre-allocated capacity, indicating the memtable should be flushed. + pub fn any_partition_at_capacity(&self) -> bool { + self.ivf_pq_indexes + .values() + .any(|index| index.any_partition_at_capacity()) + } + /// Check if the registry has any indexes. pub fn is_empty(&self) -> bool { self.btree_indexes.is_empty() @@ -1306,6 +1787,8 @@ pub enum IndexUpdateMsg { batch: RecordBatch, /// Row offset in MemTable. row_offset: u64, + /// Sequence number for MVCC tracking. + seq: Option, /// Optional completion notification. done: Option>>, }, @@ -1320,19 +1803,105 @@ pub enum IndexUpdateMsg { /// New IndexRegistry to use. indexes: Arc, }, + /// Periodic tick to check if buffer should be flushed. + Tick, } -/// Background handler for async index updates. +/// Buffered batch waiting for index processing. /// -/// Processes index update messages in FIFO order, maintaining strict ordering guarantees. +/// Used by IndexUpdateHandler to accumulate batches for cross-batch vectorization. +pub struct BufferedBatch { + /// The batch to index. + pub batch: RecordBatch, + /// Row offset in MemTable. + pub row_offset: u64, + /// Sequence number for MVCC tracking. + pub seq: Option, + /// Optional completion notification - sent after this batch is indexed. + pub done: Option>>, +} + +/// Background handler for async index updates with cross-batch batching. +/// +/// Accumulates batches before processing to enable vectorized operations, +/// especially beneficial for IVF-PQ indexes where partition assignment +/// and PQ encoding can be batched across multiple input batches. pub struct IndexUpdateHandler { indexes: Arc, + /// Maximum rows to buffer before flushing. + max_buffer_rows: usize, + /// Maximum time to buffer before flushing. + max_buffer_interval: Duration, + /// Buffered batches waiting for processing. + buffer: Vec, + /// Total rows in buffer. + buffer_rows: usize, + /// Last time buffer was flushed. + last_flush: Instant, } impl IndexUpdateHandler { - /// Create a new index update handler. + /// Create a new index update handler with default settings. pub fn new(indexes: Arc) -> Self { - Self { indexes } + Self { + indexes, + max_buffer_rows: 10_000, + max_buffer_interval: Duration::from_secs(1), + buffer: Vec::new(), + buffer_rows: 0, + last_flush: Instant::now(), + } + } + + /// Create a new index update handler with custom settings. + pub fn with_config( + indexes: Arc, + max_buffer_rows: usize, + max_buffer_interval: Duration, + ) -> Self { + Self { + indexes, + max_buffer_rows, + max_buffer_interval, + buffer: Vec::new(), + buffer_rows: 0, + last_flush: Instant::now(), + } + } + + /// Check if buffer should be flushed based on thresholds. + fn should_flush(&self) -> bool { + self.buffer_rows >= self.max_buffer_rows + || self.last_flush.elapsed() >= self.max_buffer_interval + } + + /// Flush buffered batches to indexes. + fn flush_buffer(&mut self) -> Result<()> { + if self.buffer.is_empty() { + return Ok(()); + } + + // Process all indexes with batched insert + let result = self.indexes.insert_batches(&self.buffer); + + // Convert error to string for sending to multiple waiters + let error_msg = result.as_ref().err().map(|e| e.to_string()); + + // Send completion signals for each batch + for buffered in self.buffer.drain(..) { + if let Some(tx) = buffered.done { + // Send result to waiter - create new error from message if needed + let send_result = match &error_msg { + None => Ok(()), + Some(msg) => Err(Error::io(msg.clone(), location!())), + }; + let _ = tx.send(send_result); + } + } + + self.buffer_rows = 0; + self.last_flush = Instant::now(); + result } /// Process an index update message. @@ -1343,19 +1912,38 @@ impl IndexUpdateHandler { IndexUpdateMsg::Update { batch, row_offset, + seq, done, } => { - let result = self.indexes.insert(&batch, row_offset); - if let Some(tx) = done { - let _ = tx.send(result); + let num_rows = batch.num_rows(); + self.buffer.push(BufferedBatch { + batch, + row_offset, + seq, + done, + }); + self.buffer_rows += num_rows; + + // Check flush triggers + if self.should_flush() { + self.flush_buffer()?; } } IndexUpdateMsg::SetIndexes { indexes } => { + // Flush any pending batches before switching indexes + self.flush_buffer()?; self.indexes = indexes; } IndexUpdateMsg::Drain { done } => { - // All pending messages have been processed (channel is FIFO) - let _ = done.send(Ok(())); + // Flush any remaining buffered batches + let result = self.flush_buffer(); + let _ = done.send(result); + } + IndexUpdateMsg::Tick => { + // Periodic tick - flush if buffer interval has elapsed + if self.should_flush() { + self.flush_buffer()?; + } } } Ok(()) @@ -1365,31 +1953,30 @@ impl IndexUpdateHandler { pub fn indexes(&self) -> &Arc { &self.indexes } + + /// Get count of buffered batches (for testing/monitoring). + pub fn buffered_batch_count(&self) -> usize { + self.buffer.len() + } + + /// Get count of buffered rows (for testing/monitoring). + pub fn buffered_row_count(&self) -> usize { + self.buffer_rows + } } +use crate::dataset::mem_wal::dispatcher::MessageFactory; + #[async_trait] impl MessageHandler for IndexUpdateHandler { + fn tickers(&mut self) -> Vec<(Duration, MessageFactory)> { + // Add a periodic ticker to flush the buffer based on max_buffer_interval + vec![(self.max_buffer_interval, Box::new(|| IndexUpdateMsg::Tick))] + } + async fn handle(&mut self, message: IndexUpdateMsg) -> Result<()> { - match message { - IndexUpdateMsg::Update { - batch, - row_offset, - done, - } => { - let result = self.indexes.insert(&batch, row_offset); - if let Some(tx) = done { - let _ = tx.send(result); - } - } - IndexUpdateMsg::SetIndexes { indexes } => { - self.indexes = indexes; - } - IndexUpdateMsg::Drain { done } => { - // All pending messages have been processed (channel is FIFO) - let _ = done.send(Ok(())); - } - } - Ok(()) + // Delegate to synchronous handle_message - batching is handled there + self.handle_message(message) } } @@ -1631,7 +2218,7 @@ mod tests { }), ]; - let registry = IndexRegistry::from_configs(&configs).unwrap(); + let registry = IndexRegistry::from_configs(&configs, 100_000, 8).unwrap(); assert_eq!(registry.len(), 2); assert!(registry.get_btree("pk_idx").is_some()); assert!(registry.get_fts("search_idx").is_some()); diff --git a/rust/lance/src/dataset/mem_wal/write/memtable.rs b/rust/lance/src/dataset/mem_wal/write/memtable.rs index 808cb2e49b0..010c68788ef 100644 --- a/rust/lance/src/dataset/mem_wal/write/memtable.rs +++ b/rust/lance/src/dataset/mem_wal/write/memtable.rs @@ -270,13 +270,14 @@ impl MemTable { indexes.insert_with_seq(&batch, row_offset, Some(seq))?; } - // Append to batch store - let batch_id = self.batch_store.append(batch, seq).map_err(|_| { - Error::invalid_input( - "MemTable batch store is full - should have been flushed", - location!(), - ) - })?; + // Append to batch store (returns batch_id, row_offset, estimated_size) + let (batch_id, _row_offset, _estimated_size) = + self.batch_store.append(batch, seq).map_err(|_| { + Error::invalid_input( + "MemTable batch store is full - should have been flushed", + location!(), + ) + })?; debug!( "Inserted {} rows into MemTable (batch_id={}, seq={}, row_offset={}, total_rows={})", @@ -304,7 +305,7 @@ impl MemTable { &mut self, batch: RecordBatch, seq: u64, - ) -> Result<(usize, u64)> { + ) -> Result<(usize, u64, usize)> { // Validate schema compatibility if batch.schema() != self.schema { return Err(Error::invalid_input( @@ -321,21 +322,19 @@ impl MemTable { )); } - // Row offset is the current row count (before adding this batch) - let row_offset = self.batch_store.total_rows() as u64; - // Update bloom filter with primary keys self.update_bloom_filter(&batch)?; // NOTE: Index update is skipped - caller will queue async update - // Append to batch store - let batch_id = self.batch_store.append(batch, seq).map_err(|_| { - Error::invalid_input( - "MemTable batch store is full - should have been flushed", - location!(), - ) - })?; + // Append to batch store (returns batch_id, row_offset, estimated_size) + let (batch_id, row_offset, estimated_size) = + self.batch_store.append(batch, seq).map_err(|_| { + Error::invalid_input( + "MemTable batch store is full - should have been flushed", + location!(), + ) + })?; debug!( "Inserted {} rows into MemTable (batch_only, batch_id={}, seq={}, row_offset={}, total_rows={})", @@ -346,7 +345,7 @@ impl MemTable { self.batch_store.total_rows() ); - Ok((batch_id, row_offset)) + Ok((batch_id, row_offset, estimated_size)) } /// Check if the MemTable should be flushed. diff --git a/rust/lance/src/dataset/mem_wal/write/stats.rs b/rust/lance/src/dataset/mem_wal/write/stats.rs index 9521e6f979a..15cd61cd6c2 100644 --- a/rust/lance/src/dataset/mem_wal/write/stats.rs +++ b/rust/lance/src/dataset/mem_wal/write/stats.rs @@ -24,12 +24,19 @@ pub struct WriteStats { put_count: AtomicU64, put_time_nanos: AtomicU64, - // WAL flush stats + // WAL flush stats (total time = max(wal_io, index_update) due to parallel execution) wal_flush_count: AtomicU64, wal_flush_time_nanos: AtomicU64, wal_flush_bytes: AtomicU64, wal_flush_fragments: AtomicU64, + // WAL flush sub-component stats (for diagnosing bottlenecks) + wal_io_time_nanos: AtomicU64, + wal_io_count: AtomicU64, + index_update_time_nanos: AtomicU64, + index_update_count: AtomicU64, + index_update_rows: AtomicU64, + // MemTable flush stats memtable_flush_count: AtomicU64, memtable_flush_time_nanos: AtomicU64, @@ -48,6 +55,13 @@ pub struct WriteStatsSnapshot { pub wal_flush_bytes: u64, pub wal_flush_fragments: u64, + // WAL flush sub-component stats + pub wal_io_time: Duration, + pub wal_io_count: u64, + pub index_update_time: Duration, + pub index_update_count: u64, + pub index_update_rows: u64, + pub memtable_flush_count: u64, pub memtable_flush_time: Duration, pub memtable_flush_rows: u64, @@ -67,7 +81,7 @@ impl WriteStats { .fetch_add(duration.as_nanos() as u64, Ordering::Relaxed); } - /// Record a WAL flush operation. + /// Record a WAL flush operation (total time including parallel I/O and index). pub fn record_wal_flush(&self, duration: Duration, bytes: usize, fragments: usize) { self.wal_flush_count.fetch_add(1, Ordering::Relaxed); self.wal_flush_time_nanos @@ -78,6 +92,22 @@ impl WriteStats { .fetch_add(fragments as u64, Ordering::Relaxed); } + /// Record WAL I/O duration (sub-component of WAL flush). + pub fn record_wal_io(&self, duration: Duration) { + self.wal_io_count.fetch_add(1, Ordering::Relaxed); + self.wal_io_time_nanos + .fetch_add(duration.as_nanos() as u64, Ordering::Relaxed); + } + + /// Record index update duration (sub-component of WAL flush). + pub fn record_index_update(&self, duration: Duration, rows: usize) { + self.index_update_count.fetch_add(1, Ordering::Relaxed); + self.index_update_time_nanos + .fetch_add(duration.as_nanos() as u64, Ordering::Relaxed); + self.index_update_rows + .fetch_add(rows as u64, Ordering::Relaxed); + } + /// Record a MemTable flush operation. pub fn record_memtable_flush(&self, duration: Duration, rows: usize, fragments: usize) { self.memtable_flush_count.fetch_add(1, Ordering::Relaxed); @@ -100,6 +130,14 @@ impl WriteStats { wal_flush_bytes: self.wal_flush_bytes.load(Ordering::Relaxed), wal_flush_fragments: self.wal_flush_fragments.load(Ordering::Relaxed), + wal_io_time: Duration::from_nanos(self.wal_io_time_nanos.load(Ordering::Relaxed)), + wal_io_count: self.wal_io_count.load(Ordering::Relaxed), + index_update_time: Duration::from_nanos( + self.index_update_time_nanos.load(Ordering::Relaxed), + ), + index_update_count: self.index_update_count.load(Ordering::Relaxed), + index_update_rows: self.index_update_rows.load(Ordering::Relaxed), + memtable_flush_count: self.memtable_flush_count.load(Ordering::Relaxed), memtable_flush_time: Duration::from_nanos( self.memtable_flush_time_nanos.load(Ordering::Relaxed), @@ -119,6 +157,12 @@ impl WriteStats { self.wal_flush_bytes.store(0, Ordering::Relaxed); self.wal_flush_fragments.store(0, Ordering::Relaxed); + self.wal_io_time_nanos.store(0, Ordering::Relaxed); + self.wal_io_count.store(0, Ordering::Relaxed); + self.index_update_time_nanos.store(0, Ordering::Relaxed); + self.index_update_count.store(0, Ordering::Relaxed); + self.index_update_rows.store(0, Ordering::Relaxed); + self.memtable_flush_count.store(0, Ordering::Relaxed); self.memtable_flush_time_nanos.store(0, Ordering::Relaxed); self.memtable_flush_rows.store(0, Ordering::Relaxed); @@ -172,6 +216,33 @@ impl WriteStatsSnapshot { } } + /// Get average WAL I/O latency. + pub fn avg_wal_io_latency(&self) -> Option { + if self.wal_io_count > 0 { + Some(self.wal_io_time / self.wal_io_count as u32) + } else { + None + } + } + + /// Get average index update latency. + pub fn avg_index_update_latency(&self) -> Option { + if self.index_update_count > 0 { + Some(self.index_update_time / self.index_update_count as u32) + } else { + None + } + } + + /// Get average rows per index update. + pub fn avg_index_update_rows(&self) -> Option { + if self.index_update_count > 0 { + Some(self.index_update_rows / self.index_update_count) + } else { + None + } + } + /// Get average MemTable flush latency. pub fn avg_memtable_flush_latency(&self) -> Option { if self.memtable_flush_count > 0 { @@ -206,6 +277,20 @@ impl WriteStatsSnapshot { self.avg_memtable_flush_latency().unwrap_or_default(), ); } + + /// Log detailed WAL flush breakdown (WAL I/O vs index update). + pub fn log_wal_breakdown(&self, prefix: &str) { + if self.wal_flush_count > 0 { + info!( + "{} | WAL flush breakdown: total={:?} | io={:?} | index={:?} ({} rows)", + prefix, + self.avg_wal_flush_latency().unwrap_or_default(), + self.avg_wal_io_latency().unwrap_or_default(), + self.avg_index_update_latency().unwrap_or_default(), + self.index_update_rows, + ); + } + } } /// Format bytes in human-readable form. diff --git a/rust/lance/src/dataset/mem_wal/write/wal.rs b/rust/lance/src/dataset/mem_wal/write/wal.rs index 9e8d1ee47c8..fb4c2544b84 100644 --- a/rust/lance/src/dataset/mem_wal/write/wal.rs +++ b/rust/lance/src/dataset/mem_wal/write/wal.rs @@ -24,8 +24,16 @@ //! This is simpler and faster than Lance format for write-ahead logging. use std::io::Cursor; -use std::sync::atomic::{AtomicU64, Ordering}; +use std::sync::atomic::{AtomicU64, AtomicUsize, Ordering}; use std::sync::Arc; +use std::time::Instant; + +/// Get a timestamp string for debug logging (seconds since program start). +fn log_ts() -> f64 { + use std::sync::OnceLock; + static START: OnceLock = OnceLock::new(); + START.get_or_init(Instant::now).elapsed().as_secs_f64() +} use arrow_array::RecordBatch; use arrow_ipc::reader::FileReader; @@ -36,26 +44,68 @@ use lance_core::{Error, Result}; use lance_io::object_store::ObjectStore; use object_store::path::Path; use snafu::location; -use std::sync::RwLock; -use tokio::sync::{mpsc, oneshot}; +use tokio::sync::{mpsc, oneshot, watch}; use tracing::debug; use uuid::Uuid; -use crate::dataset::mem_wal::dispatcher::{DurableSender, DurableWatcher}; use crate::dataset::mem_wal::util::{region_wal_path, wal_entry_filename}; -use super::MemTable; +use super::batch_store::LockFreeBatchStore; +use super::indexes::{BufferedBatch, IndexRegistry}; /// Key for storing writer epoch in Arrow IPC file schema metadata. pub const WRITER_EPOCH_KEY: &str = "writer_epoch"; -/// A pending batch waiting to be flushed to WAL. -#[derive(Debug)] -pub struct PendingBatch { - /// Batch ID (also the batch index in the MemTable). - pub batch_id: usize, - /// Sender to notify when this batch is durable. - pub durable_tx: Option, +/// Watcher for batch durability using watermark-based tracking. +/// +/// Instead of per-batch oneshot channels, this uses a shared watch channel +/// that broadcasts the durable watermark. The watcher waits until the +/// watermark reaches or exceeds its target batch ID. +#[derive(Clone)] +pub struct BatchDurableWatcher { + /// Watch receiver for the durable watermark. + rx: watch::Receiver, + /// Target batch ID to wait for. + target_batch_id: usize, +} + +impl BatchDurableWatcher { + /// Create a new watcher for a specific batch ID. + pub fn new(rx: watch::Receiver, target_batch_id: usize) -> Self { + Self { + rx, + target_batch_id, + } + } + + /// Wait until the batch is durable. + /// + /// Returns Ok(()) when `durable_watermark >= target_batch_id`. + pub async fn wait(&mut self) -> Result<()> { + loop { + let current = *self.rx.borrow(); + if current >= self.target_batch_id { + return Ok(()); + } + self.rx.changed().await.map_err(|_| { + Error::io("Durable watermark channel closed", location!()) + })?; + } + } + + /// Check if the batch is already durable (non-blocking). + pub fn is_durable(&self) -> bool { + *self.rx.borrow() >= self.target_batch_id + } +} + +impl std::fmt::Debug for BatchDurableWatcher { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + f.debug_struct("BatchDurableWatcher") + .field("target_batch_id", &self.target_batch_id) + .field("current_watermark", &*self.rx.borrow()) + .finish() + } } /// A single WAL entry representing a batch of batches. @@ -69,6 +119,21 @@ pub struct WalEntry { pub batch_positions: Vec<(usize, usize)>, // (batch_id, position) } +/// Result of a parallel WAL flush with index update. +#[derive(Debug)] +pub struct WalFlushResult { + /// WAL entry that was written (if any). + pub entry: Option, + /// Duration of WAL I/O operation. + pub wal_io_duration: std::time::Duration, + /// Duration of index update operation. + pub index_update_duration: std::time::Duration, + /// Number of rows indexed. + pub rows_indexed: usize, + /// Size of WAL data written in bytes. + pub wal_bytes: usize, +} + /// WAL flush message sent to background flush handler. #[derive(Debug)] pub enum WalFlushMsg { @@ -82,9 +147,26 @@ pub enum WalFlushMsg { } /// Buffer for tracking batches that need to be flushed to WAL. +/// +/// Uses a watermark-based approach instead of a pending list: +/// - `last_flushed_id`: Watermark of last batch flushed to WAL (exclusive) +/// - Pending batches = `[last_flushed_id, current_batch_count)` in LockFreeBatchStore +/// +/// Durability is tracked via a watch channel that broadcasts the durable watermark. +/// This eliminates per-batch oneshot channels and the pending list. pub struct WalBuffer { - /// Pending batches waiting to be flushed. - pending: RwLock>, + /// Watermark: last batch index that was flushed to WAL (exclusive). + /// Batches `[0, last_flushed_id)` are durable. + /// Starts at 0 (meaning no batches flushed yet). + last_flushed_id: AtomicUsize, + /// Pending bytes waiting to be flushed (for size-based flush trigger). + /// Incremented on append, reset on flush. + pending_bytes: AtomicUsize, + /// Watch channel sender for durable watermark. + /// Broadcasts the highest batch_id that is now durable. + durable_watermark_tx: watch::Sender, + /// Watch channel receiver for creating new watchers. + durable_watermark_rx: watch::Receiver, /// Object store for writing WAL files. object_store: Option>, /// Region ID. @@ -93,8 +175,6 @@ pub struct WalBuffer { writer_epoch: u64, /// Next WAL entry ID to use. next_wal_id: AtomicU64, - /// Maximum number of pending batches before triggering flush. - max_pending_batches: usize, /// Channel to send flush messages. flush_tx: Option>, /// WAL directory path. @@ -110,22 +190,19 @@ impl WalBuffer { /// * `region_id` - Region UUID /// * `writer_epoch` - Current writer epoch /// * `next_wal_id` - Next WAL entry ID (from recovery or 1 for new region) - /// * `max_pending_batches` - Maximum pending batches before flush - pub fn new( - base_path: &Path, - region_id: Uuid, - writer_epoch: u64, - next_wal_id: u64, - max_pending_batches: usize, - ) -> Self { + pub fn new(base_path: &Path, region_id: Uuid, writer_epoch: u64, next_wal_id: u64) -> Self { let wal_dir = region_wal_path(base_path, ®ion_id); + // Initialize durable watermark at 0 (no batches durable yet) + let (durable_watermark_tx, durable_watermark_rx) = watch::channel(0); Self { - pending: RwLock::new(Vec::new()), + last_flushed_id: AtomicUsize::new(0), + pending_bytes: AtomicUsize::new(0), + durable_watermark_tx, + durable_watermark_rx, object_store: None, region_id, writer_epoch, next_wal_id: AtomicU64::new(next_wal_id), - max_pending_batches, flush_tx: None, wal_dir, } @@ -141,38 +218,50 @@ impl WalBuffer { self.flush_tx = Some(tx); } - /// Append a batch to the WAL buffer. + /// Track a batch for WAL durability. /// - /// Returns a `DurableWatcher` that can be awaited for durability. + /// Returns a `BatchDurableWatcher` that can be awaited for durability. /// - /// Note: The actual batch data is stored in the MemTable's BatchStore. - /// This method only tracks the batch ID. + /// Note: The actual batch data is stored in the LockFreeBatchStore. + /// This method only tracks pending bytes for size-based flush triggers. /// /// # Arguments /// - /// * `batch_id` - Batch ID (also the batch index in the BatchStore) - pub fn append(&self, batch_id: usize) -> DurableWatcher { - let (watcher, sender) = DurableWatcher::new(); + /// * `batch_id` - Batch ID (index in the BatchStore) + /// * `estimated_size` - Estimated size in bytes (for flush threshold) + pub fn track_batch(&self, batch_id: usize, estimated_size: usize) -> BatchDurableWatcher { + // Add to pending bytes for size-based flush trigger + self.pending_bytes.fetch_add(estimated_size, Ordering::Relaxed); + + // Return a watcher that waits for this batch to become durable + // batch_id is 0-indexed, so we wait for watermark > batch_id (i.e., >= batch_id + 1) + BatchDurableWatcher::new(self.durable_watermark_rx.clone(), batch_id + 1) + } - let batch = PendingBatch { - batch_id, - durable_tx: Some(sender), - }; + /// Get the current pending bytes waiting for flush. + pub fn pending_bytes(&self) -> usize { + self.pending_bytes.load(Ordering::Relaxed) + } - self.pending.write().unwrap().push(batch); + /// Get the last flushed batch ID (exclusive watermark). + pub fn last_flushed_id(&self) -> usize { + self.last_flushed_id.load(Ordering::Acquire) + } - watcher + /// Get the current durable watermark. + pub fn durable_watermark(&self) -> usize { + *self.durable_watermark_rx.borrow() } - /// Check if buffer should be flushed based on pending batch count. + /// Reset watermarks for a new memtable. /// - /// If over threshold, sends a flush message to the background handler. - pub fn maybe_trigger_flush(&self) -> Result<()> { - let pending_count = self.pending.read().unwrap().len(); - if pending_count >= self.max_pending_batches { - self.trigger_flush(None)?; - } - Ok(()) + /// Called when a memtable is swapped out and a new one is created. + /// The new memtable starts with batch_id=0, so we reset the watermarks. + pub fn reset_for_new_memtable(&self) { + self.last_flushed_id.store(0, Ordering::Release); + self.pending_bytes.store(0, Ordering::Relaxed); + // Note: We don't reset durable_watermark since that's for notifying + // watchers from the old memtable. New watchers will use the new batch IDs. } /// Trigger an immediate flush. @@ -188,22 +277,28 @@ impl WalBuffer { Ok(()) } - /// Flush all pending batches to a WAL entry. + /// Flush pending batches to WAL using watermark-based tracking. /// - /// Writes batches as Arrow IPC format. + /// This method: + /// 1. Gets pending batch range from `[last_flushed_id, current_count)` + /// 2. Fetches batches from LockFreeBatchStore + /// 3. Writes to WAL as Arrow IPC + /// 4. Updates watermarks and notifies durability waiters /// /// # Arguments /// - /// * `memtable` - The MemTable to read batches from + /// * `batch_store` - The LockFreeBatchStore to read batches from /// /// # Returns /// /// The WAL entry ID that was written, or None if no pending data. - pub async fn flush(&self, memtable: &MemTable) -> Result> { - // Take pending batches - let mut pending = std::mem::take(&mut *self.pending.write().unwrap()); - if pending.is_empty() { - return Ok(None); + pub async fn flush(&self, batch_store: &LockFreeBatchStore) -> Result> { + // Get pending batch range + let flushed_id = self.last_flushed_id.load(Ordering::Acquire); + let current_count = batch_store.len(); + + if current_count <= flushed_id { + return Ok(None); // No pending batches } let object_store = self @@ -213,45 +308,43 @@ impl WalBuffer { let wal_id = self.next_wal_id.fetch_add(1, Ordering::SeqCst); let filename = wal_entry_filename(wal_id); - // Add .arrow extension for Arrow IPC format let final_path = self.wal_dir.child(format!("{}.arrow", filename).as_str()); - debug!( - "Flushing {} batches to WAL entry {} for region {}", - pending.len(), - wal_id, - self.region_id - ); - - // Build batch positions - let batch_positions: Vec<(usize, usize)> = pending - .iter() - .enumerate() - .map(|(pos, b)| (b.batch_id, pos)) - .collect(); + // Collect batches from the pending range + let mut batches = Vec::with_capacity(current_count - flushed_id); + let mut batch_positions = Vec::with_capacity(current_count - flushed_id); - // Get batch_ids - let batch_ids: Vec = pending.iter().map(|b| b.batch_id).collect(); + for batch_id in flushed_id..current_count { + if let Some(stored) = batch_store.get(batch_id) { + batch_positions.push((batch_id, batches.len())); + batches.push(stored.data.clone()); + } + } - // Get batches from MemTable - let batches = memtable.get_batches_for_wal(&batch_ids).await?; if batches.is_empty() { - return Err(Error::io( - "No batches found for pending batch IDs", - location!(), - )); + return Ok(None); } + debug!( + "Flushing {} batches (IDs {}..{}) to WAL entry {} for region {}", + batches.len(), + flushed_id, + current_count, + wal_id, + self.region_id + ); + // Write as Arrow IPC file self.write_arrow_ipc(&final_path, object_store, &batches) .await?; - // Notify durability - for batch in pending.drain(..) { - if let Some(tx) = batch.durable_tx { - tx.notify_durable(); - } - } + // Update watermarks + self.last_flushed_id.store(current_count, Ordering::Release); + self.pending_bytes.store(0, Ordering::Relaxed); + + // Notify durability waiters by updating the durable watermark + // This wakes up all BatchDurableWatcher instances waiting for batch_id < current_count + let _ = self.durable_watermark_tx.send(current_count); let entry = WalEntry { id: wal_id, @@ -322,14 +415,422 @@ impl WalBuffer { Ok(()) } + /// Flush pending batches to WAL and update indexes in parallel. + /// + /// This method: + /// 1. Gets pending batch range from watermarks + /// 2. Runs WAL I/O and index updates in parallel + /// 3. Returns timing metrics for both operations + /// + /// # Arguments + /// + /// * `batch_store` - The LockFreeBatchStore to read batches from + /// * `indexes` - Optional IndexRegistry to update (Arc for thread-safe sharing) + /// + /// # Returns + /// + /// A `WalFlushResult` with timing metrics and the WAL entry. + pub async fn flush_with_index_update( + &self, + batch_store: &LockFreeBatchStore, + indexes: Option>, + ) -> Result { + // Get pending batch range + let flushed_id = self.last_flushed_id.load(Ordering::Acquire); + let current_count = batch_store.len(); + + if current_count <= flushed_id { + return Ok(WalFlushResult { + entry: None, + wal_io_duration: std::time::Duration::ZERO, + index_update_duration: std::time::Duration::ZERO, + rows_indexed: 0, + wal_bytes: 0, + }); + } + + let object_store = self + .object_store + .as_ref() + .ok_or_else(|| Error::io("Object store not set on WAL buffer", location!()))?; + + let wal_id = self.next_wal_id.fetch_add(1, Ordering::SeqCst); + let filename = wal_entry_filename(wal_id); + let final_path = self.wal_dir.child(format!("{}.arrow", filename).as_str()); + + debug!( + "Flushing batches {}..{} to WAL entry {} with parallel index update", + flushed_id, current_count, wal_id + ); + + // Collect batches and prepare index data + let mut batches = Vec::with_capacity(current_count - flushed_id); + let mut batch_positions = Vec::with_capacity(current_count - flushed_id); + let mut index_batches = Vec::with_capacity(current_count - flushed_id); + + for batch_id in flushed_id..current_count { + if let Some(stored) = batch_store.get(batch_id) { + batch_positions.push((batch_id, batches.len())); + batches.push(stored.data.clone()); + index_batches.push(BufferedBatch { + batch: stored.data.clone(), + row_offset: stored.row_offset, + seq: if stored.seq == 0 { None } else { Some(stored.seq) }, + done: None, + }); + } + } + + if batches.is_empty() { + return Ok(WalFlushResult { + entry: None, + wal_io_duration: std::time::Duration::ZERO, + index_update_duration: std::time::Duration::ZERO, + rows_indexed: 0, + wal_bytes: 0, + }); + } + + let rows_to_index: usize = index_batches.iter().map(|b| b.batch.num_rows()).sum(); + + // Prepare WAL I/O data + let schema = batches[0].schema(); + let mut metadata = schema.metadata().clone(); + metadata.insert(WRITER_EPOCH_KEY.to_string(), self.writer_epoch.to_string()); + let schema_with_epoch = Arc::new(ArrowSchema::new_with_metadata( + schema.fields().to_vec(), + metadata, + )); + + // Serialize WAL data (CPU work before I/O) + let mut buffer = Vec::new(); + { + let mut writer = FileWriter::try_new(&mut buffer, &schema_with_epoch).map_err(|e| { + Error::io( + format!("Failed to create Arrow IPC writer: {}", e), + location!(), + ) + })?; + + for batch in &batches { + writer.write(batch).map_err(|e| { + Error::io( + format!("Failed to write batch to Arrow IPC: {}", e), + location!(), + ) + })?; + } + + writer.finish().map_err(|e| { + Error::io( + format!("Failed to finish Arrow IPC file: {}", e), + location!(), + ) + })?; + } + + let wal_bytes = buffer.len(); + + // WAL I/O task + let wal_path = final_path.clone(); + let wal_data = Bytes::from(buffer); + let store = object_store.clone(); + + // Index update task (runs in parallel via tokio::join!) + let (wal_result, index_result) = if let Some(idx_registry) = indexes { + // Run both in parallel + let wal_future = async { + let start = Instant::now(); + store + .inner + .put(&wal_path, wal_data.into()) + .await + .map_err(|e| Error::io(format!("Failed to write WAL file: {}", e), location!()))?; + Ok::<_, Error>(start.elapsed()) + }; + + let index_future = async { + let start = Instant::now(); + tokio::task::spawn_blocking(move || { + idx_registry.insert_batches_parallel(&index_batches) + }) + .await + .map_err(|e| Error::Internal { + message: format!("Index update task panicked: {}", e), + location: location!(), + })??; + Ok::<_, Error>(start.elapsed()) + }; + + tokio::join!(wal_future, index_future) + } else { + // No indexes, just do WAL I/O + let wal_future = async { + let start = Instant::now(); + store + .inner + .put(&wal_path, wal_data.into()) + .await + .map_err(|e| Error::io(format!("Failed to write WAL file: {}", e), location!()))?; + Ok::<_, Error>(start.elapsed()) + }; + + (wal_future.await, Ok(std::time::Duration::ZERO)) + }; + + // Check for errors + let wal_io_duration = wal_result?; + let index_update_duration = index_result?; + + // Update watermarks + self.last_flushed_id.store(current_count, Ordering::Release); + self.pending_bytes.store(0, Ordering::Relaxed); + + // Notify durability waiters + let _ = self.durable_watermark_tx.send(current_count); + + let entry = WalEntry { + id: wal_id, + writer_epoch: self.writer_epoch, + batch_positions, + }; + + debug!( + "WAL entry {} written: wal_io={:?}, index={:?}, {} rows", + wal_id, wal_io_duration, index_update_duration, rows_to_index + ); + + Ok(WalFlushResult { + entry: Some(entry), + wal_io_duration, + index_update_duration, + rows_indexed: rows_to_index, + wal_bytes, + }) + } + /// Get the current WAL ID (last written + 1). pub fn next_wal_id(&self) -> u64 { self.next_wal_id.load(Ordering::SeqCst) } - /// Get the number of pending batches. - pub fn pending_count(&self) -> usize { - self.pending.read().unwrap().len() + /// Get the region ID. + pub fn region_id(&self) -> Uuid { + self.region_id + } + + /// Flush a limited range of batches to WAL with index updates. + /// + /// This method flushes at most `limit` pending batches to avoid large S3 uploads. + /// + /// # Arguments + /// + /// * `batch_store` - The LockFreeBatchStore to read batches from + /// * `limit` - Maximum number of batches to flush in this call + /// * `indexes` - Optional IndexRegistry to update + /// + /// # Returns + /// + /// A `WalFlushResult` with timing metrics and the WAL entry. + pub async fn flush_limited( + &self, + batch_store: &LockFreeBatchStore, + limit: usize, + indexes: Option>, + ) -> Result { + // Get pending batch range + let flushed_id = self.last_flushed_id.load(Ordering::Acquire); + let current_count = batch_store.len(); + + if current_count <= flushed_id { + return Ok(WalFlushResult { + entry: None, + wal_io_duration: std::time::Duration::ZERO, + index_update_duration: std::time::Duration::ZERO, + rows_indexed: 0, + wal_bytes: 0, + }); + } + + // Limit the range to flush + let flush_end = (flushed_id + limit).min(current_count); + + let object_store = self + .object_store + .as_ref() + .ok_or_else(|| Error::io("Object store not set on WAL buffer", location!()))?; + + let wal_id = self.next_wal_id.fetch_add(1, Ordering::SeqCst); + let filename = wal_entry_filename(wal_id); + let final_path = self.wal_dir.child(format!("{}.arrow", filename).as_str()); + + // Collect batches and prepare index data + let mut batches = Vec::with_capacity(flush_end - flushed_id); + let mut batch_positions = Vec::with_capacity(flush_end - flushed_id); + let mut index_batches = Vec::with_capacity(flush_end - flushed_id); + + for batch_id in flushed_id..flush_end { + if let Some(stored) = batch_store.get(batch_id) { + batch_positions.push((batch_id, batches.len())); + batches.push(stored.data.clone()); + index_batches.push(BufferedBatch { + batch: stored.data.clone(), + row_offset: stored.row_offset, + seq: if stored.seq == 0 { None } else { Some(stored.seq) }, + done: None, + }); + } + } + + if batches.is_empty() { + return Ok(WalFlushResult { + entry: None, + wal_io_duration: std::time::Duration::ZERO, + index_update_duration: std::time::Duration::ZERO, + rows_indexed: 0, + wal_bytes: 0, + }); + } + + let rows_to_index: usize = index_batches.iter().map(|b| b.batch.num_rows()).sum(); + eprintln!( + "[{:.3}] [WAL_FLUSH] flush_limited: {} batches (IDs {}..{}), {} rows to index", + log_ts(), + batches.len(), + flushed_id, + flush_end, + rows_to_index + ); + + // Prepare WAL I/O data + let schema = batches[0].schema(); + let mut metadata = schema.metadata().clone(); + metadata.insert(WRITER_EPOCH_KEY.to_string(), self.writer_epoch.to_string()); + let schema_with_epoch = Arc::new(ArrowSchema::new_with_metadata( + schema.fields().to_vec(), + metadata, + )); + + // Serialize WAL data (CPU work before I/O) + let serialize_start = Instant::now(); + let mut buffer = Vec::new(); + { + let mut writer = FileWriter::try_new(&mut buffer, &schema_with_epoch).map_err(|e| { + Error::io( + format!("Failed to create Arrow IPC writer: {}", e), + location!(), + ) + })?; + + for batch in &batches { + writer.write(batch).map_err(|e| { + Error::io( + format!("Failed to write batch to Arrow IPC: {}", e), + location!(), + ) + })?; + } + + writer.finish().map_err(|e| { + Error::io( + format!("Failed to finish Arrow IPC file: {}", e), + location!(), + ) + })?; + } + + let wal_bytes = buffer.len(); + eprintln!( + "[{:.3}] [WAL_FLUSH] Serialized {} bytes in {}ms", + log_ts(), + wal_bytes, + serialize_start.elapsed().as_millis() + ); + + // WAL I/O task + let wal_path = final_path.clone(); + let wal_data = Bytes::from(buffer); + let store = object_store.clone(); + + // Index update task (runs in parallel via tokio::join!) + let (wal_result, index_result) = if let Some(idx_registry) = indexes { + let wal_future = async { + let start = Instant::now(); + store + .inner + .put(&wal_path, wal_data.into()) + .await + .map_err(|e| Error::io(format!("Failed to write WAL file: {}", e), location!()))?; + Ok::<_, Error>(start.elapsed()) + }; + + let index_future = async { + let start = Instant::now(); + tokio::task::spawn_blocking(move || { + idx_registry.insert_batches_parallel(&index_batches) + }) + .await + .map_err(|e| Error::Internal { + message: format!("Index update task panicked: {}", e), + location: location!(), + })??; + Ok::<_, Error>(start.elapsed()) + }; + + tokio::join!(wal_future, index_future) + } else { + let wal_future = async { + let start = Instant::now(); + store + .inner + .put(&wal_path, wal_data.into()) + .await + .map_err(|e| Error::io(format!("Failed to write WAL file: {}", e), location!()))?; + Ok::<_, Error>(start.elapsed()) + }; + + (wal_future.await, Ok(std::time::Duration::ZERO)) + }; + + // Check for errors + let wal_io_duration = wal_result?; + let index_update_duration = index_result?; + eprintln!( + "[{:.3}] [WAL_FLUSH] S3 put: {}ms, index update: {}ms, {} rows", + log_ts(), + wal_io_duration.as_millis(), + index_update_duration.as_millis(), + rows_to_index + ); + + // Update watermarks - only advance to the batches we actually flushed + self.last_flushed_id.store(flush_end, Ordering::Release); + // Only reset pending_bytes if we flushed everything + if flush_end >= current_count { + self.pending_bytes.store(0, Ordering::Relaxed); + } + + // Notify durability waiters + let _ = self.durable_watermark_tx.send(flush_end); + + let entry = WalEntry { + id: wal_id, + writer_epoch: self.writer_epoch, + batch_positions, + }; + + debug!( + "WAL entry {} written: wal_io={:?}, index={:?}, {} rows", + wal_id, wal_io_duration, index_update_duration, rows_to_index + ); + + Ok(WalFlushResult { + entry: Some(entry), + wal_io_duration, + index_update_duration, + rows_indexed: rows_to_index, + wal_bytes, + }) } /// Get the writer epoch. @@ -447,75 +948,83 @@ mod tests { } #[tokio::test] - async fn test_wal_buffer_append() { + async fn test_wal_buffer_track_batch() { let (store, base_path, _temp_dir) = create_local_store().await; let region_id = Uuid::new_v4(); - let mut buffer = WalBuffer::new(&base_path, region_id, 1, 1, 100); + let mut buffer = WalBuffer::new(&base_path, region_id, 1, 1); buffer.set_object_store(store); - let _watcher = buffer.append(0); + // Track a batch + let watcher = buffer.track_batch(0, 1024); - assert_eq!(buffer.pending_count(), 1); + // Check pending bytes increased + assert_eq!(buffer.pending_bytes(), 1024); + // Watcher should not be durable yet + assert!(!watcher.is_durable()); } #[tokio::test] async fn test_wal_buffer_flush() { let (store, base_path, _temp_dir) = create_local_store().await; let region_id = Uuid::new_v4(); - let mut buffer = WalBuffer::new(&base_path, region_id, 1, 1, 100); + let mut buffer = WalBuffer::new(&base_path, region_id, 1, 1); buffer.set_object_store(store); - // Create a MemTable with some data + // Create a LockFreeBatchStore with some data let schema = create_test_schema(); - let mut memtable = MemTable::new(schema.clone(), 1, vec![]).unwrap(); - memtable - .insert(create_test_batch(&schema, 10)) - .await + let batch_store = LockFreeBatchStore::with_capacity(10); + batch_store + .append(create_test_batch(&schema, 10), 1) .unwrap(); - memtable - .insert(create_test_batch(&schema, 5)) - .await + batch_store + .append(create_test_batch(&schema, 5), 2) .unwrap(); - // Append batch IDs to WAL buffer - let watcher1 = buffer.append(0); - let watcher2 = buffer.append(1); + // Track batch IDs in WAL buffer + let mut watcher1 = buffer.track_batch(0, 1024); + let mut watcher2 = buffer.track_batch(1, 512); + + // Verify initial state + assert!(!watcher1.is_durable()); + assert!(!watcher2.is_durable()); + assert_eq!(buffer.pending_bytes(), 1536); // Flush - let entry = buffer.flush(&memtable).await.unwrap().unwrap(); + let entry = buffer.flush(&batch_store).await.unwrap().unwrap(); assert_eq!(entry.id, 1); assert_eq!(entry.writer_epoch, 1); assert_eq!(entry.batch_positions.len(), 2); - assert_eq!(buffer.pending_count(), 0); + assert_eq!(buffer.last_flushed_id(), 2); + assert_eq!(buffer.pending_bytes(), 0); // Watchers should be notified watcher1.wait().await.unwrap(); watcher2.wait().await.unwrap(); + assert!(watcher1.is_durable()); + assert!(watcher2.is_durable()); } #[tokio::test] async fn test_wal_entry_read() { let (store, base_path, _temp_dir) = create_local_store().await; let region_id = Uuid::new_v4(); - let mut buffer = WalBuffer::new(&base_path, region_id, 42, 1, 100); + let mut buffer = WalBuffer::new(&base_path, region_id, 42, 1); buffer.set_object_store(store.clone()); - // Create a MemTable with some data + // Create a LockFreeBatchStore with some data let schema = create_test_schema(); - let mut memtable = MemTable::new(schema.clone(), 1, vec![]).unwrap(); - memtable - .insert(create_test_batch(&schema, 10)) - .await + let batch_store = LockFreeBatchStore::with_capacity(10); + batch_store + .append(create_test_batch(&schema, 10), 1) .unwrap(); - memtable - .insert(create_test_batch(&schema, 5)) - .await + batch_store + .append(create_test_batch(&schema, 5), 2) .unwrap(); - // Append batch IDs and flush - let _watcher1 = buffer.append(0); - let _watcher2 = buffer.append(1); - let entry = buffer.flush(&memtable).await.unwrap().unwrap(); + // Track batch IDs and flush + let _watcher1 = buffer.track_batch(0, 1024); + let _watcher2 = buffer.track_batch(1, 512); + let entry = buffer.flush(&batch_store).await.unwrap().unwrap(); // Read back the WAL entry let wal_path = buffer.wal_entry_path(entry.id); @@ -527,4 +1036,44 @@ mod tests { assert_eq!(wal_data.batches[0].num_rows(), 10); assert_eq!(wal_data.batches[1].num_rows(), 5); } + + #[tokio::test] + async fn test_wal_buffer_flush_limited() { + let (store, base_path, _temp_dir) = create_local_store().await; + let region_id = Uuid::new_v4(); + let mut buffer = WalBuffer::new(&base_path, region_id, 1, 1); + buffer.set_object_store(store); + + // Create a LockFreeBatchStore with 5 batches + let schema = create_test_schema(); + let batch_store = LockFreeBatchStore::with_capacity(10); + for i in 0..5 { + batch_store + .append(create_test_batch(&schema, 10), (i + 1) as u64) + .unwrap(); + let _ = buffer.track_batch(i, 1024); + } + + // Flush only 2 batches at a time + let result1 = buffer.flush_limited(&batch_store, 2, None).await.unwrap(); + let entry1 = result1.entry.unwrap(); + assert_eq!(entry1.batch_positions.len(), 2); + assert_eq!(buffer.last_flushed_id(), 2); + + // Flush next 2 + let result2 = buffer.flush_limited(&batch_store, 2, None).await.unwrap(); + let entry2 = result2.entry.unwrap(); + assert_eq!(entry2.batch_positions.len(), 2); + assert_eq!(buffer.last_flushed_id(), 4); + + // Flush remaining 1 + let result3 = buffer.flush_limited(&batch_store, 2, None).await.unwrap(); + let entry3 = result3.entry.unwrap(); + assert_eq!(entry3.batch_positions.len(), 1); + assert_eq!(buffer.last_flushed_id(), 5); + + // No more pending + let result4 = buffer.flush_limited(&batch_store, 2, None).await.unwrap(); + assert!(result4.entry.is_none()); + } } diff --git a/rust/lance/src/dataset/mem_wal/write/writer.rs b/rust/lance/src/dataset/mem_wal/write/writer.rs index f1c46e0adf1..d0b78e52c60 100644 --- a/rust/lance/src/dataset/mem_wal/write/writer.rs +++ b/rust/lance/src/dataset/mem_wal/write/writer.rs @@ -28,14 +28,21 @@ use uuid::Uuid; use std::time::Instant; +/// Get a timestamp string for debug logging (seconds since program start). +fn log_ts() -> f64 { + use std::sync::OnceLock; + static START: OnceLock = OnceLock::new(); + START.get_or_init(Instant::now).elapsed().as_secs_f64() +} + use super::batch_write::{ write_batch_channel, BackpressureController, BackpressureProvider, DurabilityResult, - DurabilityWatcher, WriteBatchHandler, WriteBatchMessage, WriteBatchSender, WriterStateOps, - WRITE_BATCH_TASK_NAME, + DurabilityWatcher, InsertBatchResult, WriteBatchHandler, WriteBatchMessage, WriteBatchSender, + WriterStateOps, WRITE_BATCH_TASK_NAME, }; use super::flush::{FlushMessage, FlushResult, MemTableFlusher}; use super::immutable::ImmutableMemTableQueue; -use super::indexes::{IndexRegistry, IndexUpdateHandler, IndexUpdateMsg, MemIndexConfig}; +use super::indexes::{IndexRegistry, MemIndexConfig}; use super::memtable::MemTable; use super::stats::{new_shared_stats, SharedWriteStats, WriteStatsSnapshot}; use super::wal::{WalBuffer, WalEntry, WalFlushMsg}; @@ -52,7 +59,7 @@ use crate::dataset::mem_wal::manifest::RegionManifestStore; pub struct WriteResult { /// Batch ID in the MemTable. pub batch_id: usize, - /// Watcher to await durability (if durable_writes enabled). + /// Watcher to await durability (if durable_write enabled). pub durable_watcher: Option, } @@ -70,101 +77,159 @@ struct WriterState { /// Shared state wrapper for WriteBatchHandler. /// /// This implements WriterStateOps to provide the writer task with access to: -/// - MemTable for inserts -/// - WAL buffer for durability tracking +/// - MemTable for inserts (WITHOUT index updates) +/// - WAL buffer for durability tracking (with batch data for deferred index updates) /// - Flush triggers -/// - Async index update channel (when sync_indexed_write=false) +/// +/// Index updates are deferred to WAL flush time, where they run in parallel with WAL I/O. +/// Shared flag to prevent duplicate memtable flush requests. +type FlushRequestedFlag = Arc; + +/// Shared flag for tracking pending flush requests. +type FlushPendingFlag = Arc; + struct SharedWriterState { state: Arc>, wal_buffer: Arc, + wal_flush_tx: mpsc::UnboundedSender, memtable_flush_tx: mpsc::UnboundedSender, config: RegionWriterConfig, - /// Optional channel for async index updates (when sync_indexed_write=false). - index_update_tx: Option>, + /// Shared flag to track if a memtable flush request is already pending. + flush_requested: FlushRequestedFlag, + /// Shared flag to track if a WAL flush request is already pending. + wal_flush_pending: FlushPendingFlag, } impl SharedWriterState { fn new( state: Arc>, wal_buffer: Arc, + wal_flush_tx: mpsc::UnboundedSender, memtable_flush_tx: mpsc::UnboundedSender, config: RegionWriterConfig, - index_update_tx: Option>, + flush_requested: FlushRequestedFlag, + wal_flush_pending: FlushPendingFlag, ) -> Self { Self { state, wal_buffer, + wal_flush_tx, memtable_flush_tx, config, - index_update_tx, + flush_requested, + wal_flush_pending, } } } #[async_trait] impl WriterStateOps for Arc { - async fn insert_batch(&self, batch: RecordBatch, seq: u64) -> Result { + async fn insert_batch(&self, batch: RecordBatch, seq: u64) -> Result { let mut state = self.state.write().await; - // Check if we should use async index updates - if let Some(ref index_tx) = self.index_update_tx { - // Async mode: insert batch without index update, then queue async update - let (batch_id, row_offset) = - state.memtable.insert_batch_only(batch.clone(), seq).await?; - - // Queue async index update (fire-and-forget) - let _ = index_tx.send(IndexUpdateMsg::Update { - batch, - row_offset, - done: None, - }); + // Always use insert_batch_only (no index update) + // Index updates are deferred to WAL flush for parallel execution + let (batch_id, row_offset, estimated_size) = + state.memtable.insert_batch_only(batch, seq).await?; - Ok(batch_id) - } else { - // Sync mode: insert with inline index update (Lance pattern preserved) - state.memtable.insert_with_seq(batch, seq).await - } + Ok(InsertBatchResult { + batch_id, + row_offset, + estimated_size, + }) } - fn append_to_wal(&self, batch_id: usize) -> DurabilityWatcher { - // Create a durability cell for this write + fn track_batch_for_wal( + &self, + batch_id: usize, + _row_offset: u64, + _seq: u64, + estimated_size: usize, + ) -> DurabilityWatcher { + // Track batch in WAL buffer for size-based flush triggers + // The batch data is stored in LockFreeBatchStore and read during flush + let _wal_watcher = self.wal_buffer.track_batch(batch_id, estimated_size); + + // Return a pre-resolved watcher that's immediately "durable" for the non-durable case. + // For durable writes, the caller will trigger a flush and wait for it. + // This avoids spawning a task per write just to bridge watcher types. let cell: WatchableOnceCell = WatchableOnceCell::new(); - let watcher = cell.reader(); + cell.write(DurabilityResult::ok()); + cell.reader() + } - // Append to WAL buffer - the old DurableWatcher will be converted - let old_watcher = self.wal_buffer.append(batch_id); + async fn maybe_trigger_memtable_flush(&self) -> Result<()> { + // Fast path: if flush already requested, skip + if self + .flush_requested + .load(std::sync::atomic::Ordering::Acquire) + { + return Ok(()); + } - // Spawn a task to convert the old watcher to the new format - tokio::spawn(async move { - match old_watcher.wait().await { - Ok(()) => cell.write(DurabilityResult::ok()), - Err(e) => cell.write(DurabilityResult::err(e.to_string())), + let should_flush = { + let state = self.state.read().await; + let size_exceeded = state.memtable.estimated_size() >= self.config.max_memtable_size; + let capacity_reached = state + .memtable + .indexes_arc() + .map(|idx| idx.any_partition_at_capacity()) + .unwrap_or(false); + let batch_store_full = state.memtable.is_batch_store_full(); + size_exceeded || capacity_reached || batch_store_full + }; + if should_flush { + // Atomically set flag - only send message if we win the race + if self + .flush_requested + .compare_exchange( + false, + true, + std::sync::atomic::Ordering::AcqRel, + std::sync::atomic::Ordering::Acquire, + ) + .is_ok() + { + self.memtable_flush_tx + .send(FlushMessage::FlushMemTable { done: None }) + .map_err(|_| Error::io("MemTable flush channel closed", location!()))?; } - }); - - watcher - } - - fn maybe_trigger_wal_flush(&self) -> Result<()> { - self.wal_buffer.maybe_trigger_flush() + } + Ok(()) } - async fn maybe_trigger_memtable_flush(&self) -> Result<()> { - let estimated_size = self.state.read().await.memtable.estimated_size(); - if estimated_size >= self.config.max_memtable_size { - self.memtable_flush_tx - .send(FlushMessage::FlushMemTable { done: None }) - .map_err(|_| Error::io("MemTable flush channel closed", location!()))?; + fn maybe_trigger_wal_flush(&self) { + let pending_bytes = self.wal_buffer.pending_bytes(); + if pending_bytes >= self.config.max_wal_buffer_size { + // Only send trigger if not already pending (avoid flooding the channel) + if self + .wal_flush_pending + .compare_exchange( + false, + true, + std::sync::atomic::Ordering::AcqRel, + std::sync::atomic::Ordering::Acquire, + ) + .is_ok() + { + eprintln!( + "[{:.3}][WAL_SIZE_TRIGGER] pending_bytes={} >= threshold={}, triggering flush", + log_ts(), + pending_bytes, + self.config.max_wal_buffer_size + ); + // Trigger WAL flush (fire-and-forget, no need to wait) + let _ = self.wal_flush_tx.send(WalFlushMsg::TriggerFlush { done: None }); + } } - Ok(()) } } +#[async_trait] impl BackpressureProvider for SharedWriterState { fn wal_buffer_bytes(&self) -> usize { - // WAL buffer size tracking not implemented yet - // Use pending count as a rough estimate (each entry ~4KB average) - self.wal_buffer.pending_count() * 4096 + // Get actual pending bytes from watermark-based tracking + self.wal_buffer.pending_bytes() } fn immutable_memtable_bytes(&self) -> usize { @@ -184,6 +249,46 @@ impl BackpressureProvider for SharedWriterState { .unwrap_or(0) } + fn remaining_batch_capacity(&self) -> usize { + self.state + .try_read() + .ok() + .map(|s| s.memtable.remaining_batch_capacity()) + .unwrap_or(0) + } + + fn batch_capacity(&self) -> usize { + self.state + .try_read() + .ok() + .map(|s| s.memtable.batch_capacity()) + .unwrap_or(0) + } + + async fn trigger_memtable_flush_and_wait(&self) { + eprintln!("[{:.3}][TRIGGER] Sending FlushMemTable message and waiting for completion", log_ts()); + let (tx, rx) = tokio::sync::oneshot::channel(); + let send_result = self + .memtable_flush_tx + .send(FlushMessage::FlushMemTable { done: Some(tx) }); + if send_result.is_err() { + eprintln!("[{:.3}][TRIGGER] Failed to send FlushMemTable message", log_ts()); + return; + } + // Wait for the flush to complete + match rx.await { + Ok(Ok(_)) => { + eprintln!("[{:.3}][TRIGGER] Flush completed successfully", log_ts()); + } + Ok(Err(e)) => { + eprintln!("[{:.3}][TRIGGER] Flush failed: {}", log_ts(), e); + } + Err(_) => { + eprintln!("[{:.3}][TRIGGER] Flush channel closed unexpectedly", log_ts()); + } + } + } + fn oldest_wal_watcher(&self) -> Option { // WAL doesn't currently have per-entry watchers, return None None @@ -202,7 +307,7 @@ impl BackpressureProvider for SharedWriterState { /// Coordinates all write operations including: /// - In-memory storage (MemTable) /// - Durability (WAL buffer) -/// - Index maintenance +/// - Index maintenance (WAL-coupled: indexes updated during WAL flush) /// - Background flush tasks pub struct RegionWriter { config: RegionWriterConfig, @@ -223,7 +328,10 @@ pub struct RegionWriter { stats: SharedWriteStats, write_batch_tx: WriteBatchSender, backpressure: BackpressureController, - index_update_tx: Option>, + /// Shared flag to prevent duplicate memtable flush requests. + flush_requested: FlushRequestedFlag, + /// Shared flag to prevent duplicate WAL flush requests. + wal_flush_pending: FlushPendingFlag, } impl RegionWriter { @@ -284,17 +392,23 @@ impl RegionWriter { .iter() .map(|f| f.id) .collect(); - let mut memtable = MemTable::new( + let mut memtable = MemTable::with_capacity( schema.clone(), manifest.current_generation, pk_field_ids.clone(), + super::memtable::CacheConfig::default(), + config.max_memtable_batches, )?; // Create indexes if configured and set them on the MemTable // Indexes are always created when index_configs is non-empty // (they will be updated either sync or async based on config) let indexes_arc = if !index_configs.is_empty() { - let indexes = Arc::new(IndexRegistry::from_configs(&index_configs)?); + let indexes = Arc::new(IndexRegistry::from_configs( + &index_configs, + config.max_memtable_rows, + config.ivf_index_partition_capacity_safety_factor, + )?); memtable.set_indexes_arc(indexes.clone()); Some(indexes) } else { @@ -313,7 +427,6 @@ impl RegionWriter { region_id, epoch_guard.epoch(), manifest.wal_id_last_seen + 1, - config.max_wal_buffer_size, ); wal_buffer.set_object_store(object_store.clone()); @@ -338,18 +451,34 @@ impl RegionWriter { let backpressure = BackpressureController::new(config.clone()); + // Shared flag to prevent duplicate memtable flush requests + let flush_requested: FlushRequestedFlag = + Arc::new(std::sync::atomic::AtomicBool::new(false)); + + // Shared flag to prevent duplicate WAL flush requests + let wal_flush_pending: FlushPendingFlag = + Arc::new(std::sync::atomic::AtomicBool::new(false)); + // Create task executor let task_executor = Arc::new(TaskExecutor::new()); // Start background WAL flush handler - // The WAL flush handler also checks memtable size and triggers flush if needed + // The WAL flush handler does parallel WAL I/O + index updates + eprintln!( + "[{:.3}][WRITER] Creating wal_flusher with flush_interval={:?}", + log_ts(), config.max_flush_interval + ); let wal_handler = WalFlushHandler::new( wal_buffer.clone(), state.clone(), + indexes_arc.clone(), // Pass indexes for WAL-coupled updates config.max_flush_interval, config.max_memtable_size, memtable_flush_tx.clone(), stats.clone(), + backpressure.stats().clone(), + config.stats_log_interval, + wal_flush_pending.clone(), ); task_executor.add_handler( "wal_flusher".to_string(), @@ -357,37 +486,30 @@ impl RegionWriter { wal_flush_rx, )?; - // Create async index update handler if needed (when !sync_indexed_write and has indexes) - let index_update_tx = if let (false, Some(ref indexes)) = - (config.sync_indexed_write, &indexes_arc) - { - let (tx, rx) = mpsc::unbounded_channel(); - let index_handler = IndexUpdateHandler::new(indexes.clone()); - task_executor.add_handler("index_updater".to_string(), Box::new(index_handler), rx)?; - info!("Started async index update handler"); - Some(tx) - } else { - None - }; - // Start background MemTable flush handler let memtable_handler = MemTableFlushHandler::new( state.clone(), flusher.clone(), epoch_guard.clone(), wal_buffer.clone(), + indexes_arc, // Pass indexes for WAL flush during memtable freeze config.max_memtable_size, + config.max_memtable_rows, + config.max_memtable_batches, + config.ivf_index_partition_capacity_safety_factor, schema.clone(), pk_field_ids.clone(), index_configs.clone(), stats.clone(), - index_update_tx.clone(), + flush_requested.clone(), // Share flag with writer ); + eprintln!("[{:.3}][WRITER] Adding memtable_flusher handler", log_ts()); task_executor.add_handler( "memtable_flusher".to_string(), Box::new(memtable_handler), memtable_flush_rx, )?; + eprintln!("[{:.3}][WRITER] memtable_flusher handler added", log_ts()); let (write_batch_tx, write_batch_rx) = write_batch_channel(); @@ -395,9 +517,11 @@ impl RegionWriter { let shared_writer_state = Arc::new(SharedWriterState::new( state.clone(), wal_buffer.clone(), + wal_flush_tx.clone(), memtable_flush_tx.clone(), config.clone(), - index_update_tx.clone(), + flush_requested.clone(), // Share flag with flush handler + wal_flush_pending.clone(), )); // Start the single writer task @@ -425,7 +549,8 @@ impl RegionWriter { stats, write_batch_tx, backpressure, - index_update_tx, + flush_requested, + wal_flush_pending, }) } @@ -445,6 +570,12 @@ impl RegionWriter { /// If another writer has taken over, the WAL flush will fail with /// `AlreadyExists`, indicating this writer has been fenced. pub async fn put(&self, batch: RecordBatch) -> Result { + static PUT_COUNT: std::sync::atomic::AtomicU64 = std::sync::atomic::AtomicU64::new(0); + let count = PUT_COUNT.fetch_add(1, std::sync::atomic::Ordering::Relaxed); + if count % 100 == 0 { + eprintln!("[{:.3}][PUT] put #{}", log_ts(), count); + } + let num_rows = batch.num_rows(); if num_rows == 0 { return Err(Error::invalid_input( @@ -454,17 +585,28 @@ impl RegionWriter { } // Apply backpressure if needed - // Note: index_update_tx is None here since this is only for backpressure checking let shared_state = SharedWriterState::new( self.state.clone(), self.wal_buffer.clone(), + self.wal_flush_tx.clone(), self.memtable_flush_tx.clone(), self.config.clone(), - None, // Not used for actual writes, just backpressure + self.flush_requested.clone(), + self.wal_flush_pending.clone(), ); + let bp_start = std::time::Instant::now(); self.backpressure .maybe_apply_backpressure(&shared_state) .await?; + let bp_elapsed = bp_start.elapsed(); + if bp_elapsed.as_millis() > 1 { + eprintln!( + "[{:.3}][BP] waited {}ms | remaining_batches={} total_batches={}", + log_ts(), bp_elapsed.as_millis(), + shared_state.remaining_batch_capacity(), + shared_state.batch_capacity() + ); + } let (tx, rx) = tokio::sync::oneshot::channel(); let message = WriteBatchMessage { batch, done: tx }; @@ -473,7 +615,7 @@ impl RegionWriter { .send(message) .map_err(|_| Error::io("Write batch channel closed", location!()))?; - // 3. Wait for result from writer task + // Wait for result from writer task let result = rx .await .map_err(|_| Error::io("Write batch result channel closed", location!()))??; @@ -484,7 +626,7 @@ impl RegionWriter { ); // 4. Wait for durability if configured - let durable_watcher = if self.config.durable_writes { + let durable_watcher = if self.config.durable_write { // Must trigger a flush to ensure durability self.wal_buffer.trigger_flush(None)?; result @@ -495,8 +637,7 @@ impl RegionWriter { .into_result()?; None } else { - // Convert to old DurableWatcher for compatibility - // (stats recording is now done in WriteBatchHandler) + // Stats recording is now done in WriteBatchHandler None }; @@ -526,7 +667,7 @@ impl RegionWriter { /// already written this WAL entry, returns an error. pub async fn flush_wal(&self) -> Result> { let state = self.state.read().await; - self.wal_buffer.flush(&state.memtable).await + self.wal_buffer.flush(&state.memtable.batch_store()).await } /// Trigger a MemTable flush. @@ -539,53 +680,52 @@ impl RegionWriter { let start = Instant::now(); let next_generation; - // Step 1: If using async index updates, drain pending updates first - if let Some(ref index_tx) = self.index_update_tx { - let (done_tx, done_rx) = tokio::sync::oneshot::channel(); - if index_tx - .send(IndexUpdateMsg::Drain { done: done_tx }) - .is_ok() - { - let _ = done_rx.await; - debug!("Async index drain completed before memtable freeze"); - } - } - - // Step 2: Freeze current memtable and add to queue - let (last_wal_id, new_indexes_arc) = { + // Freeze current memtable and add to queue + // WAL flush (with parallel index updates) happens during this process + let last_wal_id = { let mut state = self.state.write().await; - // Flush WAL while holding the lock - let wal_id = if let Some(entry) = self.wal_buffer.flush(&state.memtable).await? { + // Get current indexes for WAL flush + let indexes = state.memtable.indexes_arc(); + + // Flush WAL with parallel index update while holding the lock + let wal_id = if let Some(result) = self + .wal_buffer + .flush_with_index_update(&state.memtable.batch_store(), indexes) + .await? + .entry + { let batch_ids: Vec = - entry.batch_positions.iter().map(|(id, _)| *id).collect(); + result.batch_positions.iter().map(|(id, _)| *id).collect(); let positions: Vec = - entry.batch_positions.iter().map(|(_, pos)| *pos).collect(); + result.batch_positions.iter().map(|(_, pos)| *pos).collect(); state .memtable - .mark_wal_flushed(&batch_ids, entry.id, &positions); - entry.id + .mark_wal_flushed(&batch_ids, result.id, &positions); + result.id } else { state.last_flushed_wal_id }; // Create new memtable next_generation = state.memtable.generation() + 1; - let mut new_memtable = MemTable::new( + let mut new_memtable = MemTable::with_capacity( self.schema.clone(), next_generation, self.pk_field_ids.clone(), + super::memtable::CacheConfig::default(), + self.config.max_memtable_batches, )?; // Recreate indexes on the new memtable if configured - // For async mode, we use Arc and send to handler - let new_indexes = if !self.index_configs.is_empty() { - let indexes = Arc::new(IndexRegistry::from_configs(&self.index_configs)?); - new_memtable.set_indexes_arc(indexes.clone()); - Some(indexes) - } else { - None - }; + if !self.index_configs.is_empty() { + let indexes = Arc::new(IndexRegistry::from_configs( + &self.index_configs, + self.config.max_memtable_rows, + self.config.ivf_index_partition_capacity_safety_factor, + )?); + new_memtable.set_indexes_arc(indexes); + } // Swap memtables and freeze the old one let old_memtable = std::mem::replace(&mut state.memtable, new_memtable); @@ -602,7 +742,10 @@ impl RegionWriter { state.immutable_memtables.push(immutable); state.last_flushed_wal_id = wal_id; - (wal_id, new_indexes) + // Reset WAL watermarks for new memtable (batch IDs start from 0) + self.wal_buffer.reset_for_new_memtable(); + + wal_id }; debug!( @@ -611,16 +754,7 @@ impl RegionWriter { last_wal_id ); - // Step 5: If using async index updates, tell the handler about new indexes - if let (Some(ref index_tx), Some(indexes)) = (&self.index_update_tx, new_indexes_arc) { - let _ = index_tx.send(IndexUpdateMsg::SetIndexes { indexes }); - debug!( - "Sent new indexes to async index handler for generation {}", - next_generation - ); - } - - // Step 6: Flush from queue + // Flush from queue let immutable = { let mut state = self.state.write().await; state.immutable_memtables.pop_front() @@ -653,11 +787,21 @@ impl RegionWriter { Ok(result) } - /// Check if MemTable flush should be triggered based on size. + /// Check if MemTable flush should be triggered based on size, partition capacity, or batch count. #[allow(dead_code)] // Flush is now triggered by WriteBatchHandler async fn maybe_trigger_memtable_flush(&self) -> Result<()> { - let estimated_size = self.state.read().await.memtable.estimated_size(); - if estimated_size >= self.config.max_memtable_size { + let should_flush = { + let state = self.state.read().await; + let size_exceeded = state.memtable.estimated_size() >= self.config.max_memtable_size; + let capacity_reached = state + .memtable + .indexes_arc() + .map(|idx| idx.any_partition_at_capacity()) + .unwrap_or(false); + let batch_store_full = state.memtable.is_batch_store_full(); + size_exceeded || capacity_reached || batch_store_full + }; + if should_flush { self.memtable_flush_tx .send(FlushMessage::FlushMemTable { done: None }) .map_err(|_| Error::io("MemTable flush channel closed", location!()))?; @@ -694,7 +838,8 @@ impl RegionWriter { /// Get WAL buffer statistics. pub fn wal_stats(&self) -> WalStats { WalStats { - pending_count: self.wal_buffer.pending_count(), + pending_bytes: self.wal_buffer.pending_bytes(), + last_flushed_id: self.wal_buffer.last_flushed_id(), next_wal_id: self.wal_buffer.next_wal_id(), } } @@ -705,13 +850,16 @@ impl RegionWriter { pub async fn close(self) -> Result<()> { info!("Closing RegionWriter for region {}", self.config.region_id); - // Flush WAL + // Flush WAL using watermark-based approach + let state = self.state.read().await; + if let Err(e) = self + .wal_buffer + .flush(&state.memtable.batch_store()) + .await { - let state = self.state.read().await; - if let Err(e) = self.wal_buffer.flush(&state.memtable).await { - warn!("Error flushing WAL during close: {}", e); - } + warn!("Error flushing WAL during close: {}", e); } + drop(state); // Shutdown background tasks self.task_executor.shutdown_all().await?; @@ -733,36 +881,68 @@ pub struct MemTableStats { /// WAL buffer statistics. #[derive(Debug, Clone)] pub struct WalStats { - pub pending_count: usize, + pub pending_bytes: usize, + pub last_flushed_id: usize, pub next_wal_id: u64, } /// Background handler for WAL flush operations. +/// +/// This handler does parallel WAL I/O + index updates during flush. struct WalFlushHandler { wal_buffer: Arc, state: Arc>, + /// Indexes for WAL-coupled updates (updated in parallel with WAL I/O). + indexes: Option>, flush_interval: Option, max_memtable_size: usize, memtable_flush_tx: mpsc::UnboundedSender, stats: SharedWriteStats, + backpressure_stats: Arc, + /// Counter for periodic stats logging (log every N ticks). + tick_count: u64, + /// Log stats every this many ticks. + stats_log_interval_ticks: u64, + /// Shared flag to clear after WAL flush completes. + wal_flush_pending: FlushPendingFlag, } impl WalFlushHandler { + #[allow(clippy::too_many_arguments)] fn new( wal_buffer: Arc, state: Arc>, + indexes: Option>, flush_interval: Option, max_memtable_size: usize, memtable_flush_tx: mpsc::UnboundedSender, stats: SharedWriteStats, + backpressure_stats: Arc, + stats_log_interval: Option, + wal_flush_pending: FlushPendingFlag, ) -> Self { + // Calculate how many ticks between stats logs + // If either interval is None, disable stats logging (set to 0) + let stats_log_interval_ticks = match (flush_interval, stats_log_interval) { + (Some(flush_int), Some(log_int)) if !flush_int.is_zero() => { + // log_interval / flush_interval = number of ticks + (log_int.as_millis() / flush_int.as_millis()).max(1) as u64 + } + _ => 0, // Disabled + }; + Self { wal_buffer, state, + indexes, flush_interval, max_memtable_size, memtable_flush_tx, stats, + backpressure_stats, + tick_count: 0, + stats_log_interval_ticks, + wal_flush_pending, } } } @@ -780,15 +960,36 @@ impl MessageHandler for WalFlushHandler { async fn handle(&mut self, message: WalFlushMsg) -> Result<()> { match message { WalFlushMsg::TriggerFlush { done } => { + eprintln!( + "[{:.3}][WAL_FLUSH_HANDLER] Received TriggerFlush, starting flush", + log_ts() + ); let result = self.do_flush().await; + // Clear the pending flag so new triggers can be sent + self.wal_flush_pending + .store(false, std::sync::atomic::Ordering::Release); if let Some(tx) = done { let _ = tx.send(result.map(|entry| entry.map(|e| e.id).unwrap_or(0))); } } WalFlushMsg::Tick => { - if self.wal_buffer.pending_count() > 0 { + let pending_bytes = self.wal_buffer.pending_bytes(); + eprintln!("[{:.3}] [WAL_TICK] pending_bytes={}", log_ts(), pending_bytes); + if pending_bytes > 0 { + debug!( + "WAL flush triggered by Tick with {} pending bytes", + pending_bytes + ); let _ = self.do_flush().await; } + + // Periodic stats logging (if enabled) + if self.stats_log_interval_ticks > 0 { + self.tick_count += 1; + if self.tick_count % self.stats_log_interval_ticks == 0 { + self.log_periodic_stats().await; + } + } } } Ok(()) @@ -796,50 +997,142 @@ impl MessageHandler for WalFlushHandler { } impl WalFlushHandler { + /// Log periodic stats including write throughput and backpressure hits. + async fn log_periodic_stats(&self) { + let write_stats = self.stats.snapshot(); + let bp_stats = self.backpressure_stats.snapshot(); + + // Get memtable info for context + let (memtable_rows, memtable_batches, memtable_size_mb) = { + if let Ok(state) = self.state.try_read() { + ( + state.memtable.row_count(), + state.memtable.batch_count(), + state.memtable.estimated_size() as f64 / (1024.0 * 1024.0), + ) + } else { + (0, 0, 0.0) + } + }; + + // Log write stats + info!( + puts = write_stats.put_count, + put_throughput = format!("{:.0}/s", write_stats.put_throughput()), + avg_put_latency_us = write_stats + .avg_put_latency() + .map(|d| d.as_micros()) + .unwrap_or(0), + wal_flushes = write_stats.wal_flush_count, + memtable_flushes = write_stats.memtable_flush_count, + memtable_rows = memtable_rows, + memtable_batches = memtable_batches, + memtable_size_mb = format!("{:.2}", memtable_size_mb), + "Periodic write stats" + ); + + // Log backpressure stats if any occurred + if bp_stats.total_count > 0 { + info!( + total_backpressure_events = bp_stats.total_count, + total_wait_ms = bp_stats.total_wait_ms, + unflushed_bytes_events = bp_stats.unflushed_bytes_count, + immutable_memtables_events = bp_stats.immutable_memtables_count, + "Periodic backpressure stats" + ); + } + } + async fn do_flush(&self) -> Result> { let start = Instant::now(); - // Read memtable to pass to flush - let (entry, flush_bytes) = { + // Get the batch_store from memtable - this is lock-free read + let batch_store = { let state = self.state.read().await; - let entry = self.wal_buffer.flush(&state.memtable).await?; - // Estimate bytes written (fragment count * estimated bytes per fragment) - let bytes = entry - .as_ref() - .map(|e| e.batch_positions.len() * 4096) // rough estimate - .unwrap_or(0); - (entry, bytes) + state.memtable.batch_store() }; + let pending_bytes = self.wal_buffer.pending_bytes(); + let last_flushed = self.wal_buffer.last_flushed_id(); + let current_count = batch_store.len(); + let pending_count = current_count.saturating_sub(last_flushed); + + if pending_count == 0 { + return Ok(None); + } + + eprintln!( + "[{:.3}] [WAL_FLUSH] Starting: {} pending batches (IDs {}..{}), {} bytes", + log_ts(), + pending_count, + last_flushed, + current_count, + pending_bytes + ); + + // Flush all pending batches at once + let s3_start = Instant::now(); + let flush_result = self + .wal_buffer + .flush_with_index_update(&batch_store, self.indexes.clone()) + .await?; + let s3_elapsed = s3_start.elapsed(); + let batches_flushed = flush_result + .entry + .as_ref() + .map(|e| e.batch_positions.len()) + .unwrap_or(0); + eprintln!( + "[{:.3}][WAL_FLUSH] S3 I/O complete: {}ms for {} batches ({} bytes)", + log_ts(), + s3_elapsed.as_millis(), + batches_flushed, + flush_result.wal_bytes + ); + // Update MemTable with WAL mapping - let batches_flushed = if let Some(ref entry) = entry { + if let Some(ref entry) = flush_result.entry { let mut state = self.state.write().await; let batch_ids: Vec = entry.batch_positions.iter().map(|(id, _)| *id).collect(); - let batch_count = batch_ids.len(); let positions: Vec = entry.batch_positions.iter().map(|(_, pos)| *pos).collect(); state .memtable .mark_wal_flushed(&batch_ids, entry.id, &positions); - batch_count - } else { - 0 - }; + } - // Record WAL flush stats + // Record WAL flush stats (total time) if batches_flushed > 0 { self.stats - .record_wal_flush(start.elapsed(), flush_bytes, batches_flushed); + .record_wal_flush(start.elapsed(), flush_result.wal_bytes, batches_flushed); + + // Record sub-component stats for bottleneck diagnosis + self.stats.record_wal_io(flush_result.wal_io_duration); + self.stats + .record_index_update(flush_result.index_update_duration, flush_result.rows_indexed); } + eprintln!( + "[{:.3}][WAL_FLUSH] Complete: total={}ms, {} batches flushed", + log_ts(), start.elapsed().as_millis(), + batches_flushed + ); + self.maybe_trigger_memtable_flush().await; - Ok(entry) + Ok(flush_result.entry) } async fn maybe_trigger_memtable_flush(&self) { let should_flush = { let state = self.state.read().await; - state.memtable.estimated_size() >= self.max_memtable_size + let size_exceeded = state.memtable.estimated_size() >= self.max_memtable_size; + let capacity_reached = state + .memtable + .indexes_arc() + .map(|idx| idx.any_partition_at_capacity()) + .unwrap_or(false); + let batch_store_full = state.memtable.is_batch_store_full(); + (size_exceeded || capacity_reached || batch_store_full) && state.memtable.all_flushed_to_wal() }; if should_flush { @@ -854,7 +1147,15 @@ struct MemTableFlushHandler { flusher: Arc, epoch_guard: Arc, wal_buffer: Arc, + /// Current indexes for WAL-coupled updates during memtable freeze. + indexes: Option>, max_memtable_size: usize, + /// Maximum rows for index pre-allocation. + max_memtable_rows: usize, + /// Maximum batches for batch store pre-allocation. + max_memtable_batches: usize, + /// Safety factor for partition capacity. + ivf_index_partition_capacity_safety_factor: usize, /// Schema for creating new memtables after flush. schema: Arc, /// Primary key field IDs for creating new memtables. @@ -863,8 +1164,8 @@ struct MemTableFlushHandler { index_configs: Vec, /// Write statistics collector. stats: SharedWriteStats, - /// Channel for async index updates (when sync_indexed_write=false). - index_update_tx: Option>, + /// Shared flag to clear when flush completes. + flush_requested: FlushRequestedFlag, } impl MemTableFlushHandler { @@ -874,24 +1175,32 @@ impl MemTableFlushHandler { flusher: Arc, epoch_guard: Arc, wal_buffer: Arc, + indexes: Option>, max_memtable_size: usize, + max_memtable_rows: usize, + max_memtable_batches: usize, + ivf_index_partition_capacity_safety_factor: usize, schema: Arc, pk_field_ids: Vec, index_configs: Vec, stats: SharedWriteStats, - index_update_tx: Option>, + flush_requested: FlushRequestedFlag, ) -> Self { Self { state, flusher, epoch_guard, wal_buffer, + indexes, max_memtable_size, + max_memtable_rows, + max_memtable_batches, + ivf_index_partition_capacity_safety_factor, schema, pk_field_ids, index_configs, stats, - index_update_tx, + flush_requested, } } } @@ -906,19 +1215,41 @@ impl MessageHandler for MemTableFlushHandler { async fn handle(&mut self, message: FlushMessage) -> Result<()> { match message { FlushMessage::FlushMemTable { done } => { + let state = self.state.read().await; + let remaining = state.memtable.remaining_batch_capacity(); + let batch_count = state.memtable.batch_count(); + let pending_wal_bytes = self.wal_buffer.pending_bytes(); + drop(state); + eprintln!( + "[{:.3}][FLUSH_HANDLER] Received FlushMemTable: batches={}, remaining={}, pending_wal_bytes={}", + log_ts(), batch_count, remaining, pending_wal_bytes + ); let result = self.do_flush().await; if let Some(tx) = done { let _ = tx.send(result); } } FlushMessage::Tick => { - // Tick is sent by WalFlushHandler when memtable size exceeds threshold + // Tick is sent by WalFlushHandler when memtable triggers are reached let should_flush = { let state = self.state.read().await; - state.memtable.estimated_size() >= self.max_memtable_size - && state.memtable.all_flushed_to_wal() + let size_exceeded = state.memtable.estimated_size() >= self.max_memtable_size; + let capacity_reached = state + .memtable + .indexes_arc() + .map(|idx| idx.any_partition_at_capacity()) + .unwrap_or(false); + let batch_store_full = state.memtable.is_batch_store_full(); + let remaining = state.memtable.remaining_batch_capacity(); + let all_flushed = state.memtable.all_flushed_to_wal(); + eprintln!( + "[{:.3}][FLUSH_HANDLER] Tick: size_exceeded={} capacity_reached={} batch_store_full={} remaining={} all_flushed={}", + log_ts(), size_exceeded, capacity_reached, batch_store_full, remaining, all_flushed + ); + (size_exceeded || capacity_reached || batch_store_full) && all_flushed }; if should_flush { + eprintln!("[{:.3}][FLUSH_HANDLER] Tick triggering flush", log_ts()); let _ = self.do_flush().await; } } @@ -929,60 +1260,96 @@ impl MessageHandler for MemTableFlushHandler { impl MemTableFlushHandler { /// Freeze the current memtable and add it to the immutable queue. + /// + /// This method uses a lock-free approach for S3 I/O: + /// 1. Get batch_store reference (brief read lock) + /// 2. Write to S3 WITHOUT holding lock (watermark-based) + /// 3. Acquire write lock to update state and swap memtables + /// + /// If state update fails after S3 write, the writer should crash and + /// WAL replay will recover the data on restart. async fn freeze_memtable(&mut self) -> Result { - // Step 1: If using async index updates, drain pending updates first - // This ensures all index updates for the current memtable are complete - // before we freeze it. - if let Some(ref index_tx) = self.index_update_tx { - let (done_tx, done_rx) = tokio::sync::oneshot::channel(); - if index_tx - .send(IndexUpdateMsg::Drain { done: done_tx }) - .is_ok() - { - // Wait for drain to complete (ignore errors from closed channel) - let _ = done_rx.await; - debug!("Async index drain completed before memtable freeze"); - } - } + let freeze_start = std::time::Instant::now(); + eprintln!("[{:.3}][FREEZE] Starting freeze_memtable", log_ts()); - let mut state = self.state.write().await; + // Get batch_store reference for watermark-based flush + let batch_store = { + let state = self.state.read().await; + let remaining = state.memtable.remaining_batch_capacity(); + eprintln!( + "[{:.3}][FREEZE] WAL flush: pending_bytes={}, remaining_capacity={}", + log_ts(), + self.wal_buffer.pending_bytes(), + remaining + ); + state.memtable.batch_store() + }; // Read lock released here + + // Flush all pending batches using watermark-based approach + let s3_start = std::time::Instant::now(); + let flush_result = self + .wal_buffer + .flush_with_index_update(&batch_store, self.indexes.clone()) + .await?; + eprintln!( + "[{:.3}][FREEZE] WAL S3 flush took {}ms", + log_ts(), + s3_start.elapsed().as_millis() + ); - // Flush WAL while holding the lock to ensure all batches are durable - let last_wal_id = if let Some(entry) = self.wal_buffer.flush(&state.memtable).await? { - let batch_ids: Vec = entry.batch_positions.iter().map(|(id, _)| *id).collect(); - let positions: Vec = entry.batch_positions.iter().map(|(_, pos)| *pos).collect(); + // Update state with WAL mapping + if let Some(ref entry) = flush_result.entry { + let mut state = self.state.write().await; + let batch_ids: Vec = + entry.batch_positions.iter().map(|(id, _)| *id).collect(); + let positions: Vec = + entry.batch_positions.iter().map(|(_, pos)| *pos).collect(); state .memtable .mark_wal_flushed(&batch_ids, entry.id, &positions); - entry.id - } else { - state.last_flushed_wal_id - }; + state.last_flushed_wal_id = entry.id; + } + + // Now acquire write lock for the memtable swap + let mut state = self.state.write().await; + let last_wal_id = state.last_flushed_wal_id; + let old_batch_count = + state.memtable.batch_capacity() - state.memtable.remaining_batch_capacity(); + eprintln!( + "[{:.3}][FREEZE] Swapping memtable: old had {} batches", + log_ts(), old_batch_count + ); // Create a new empty memtable with the next generation let next_generation = state.memtable.generation() + 1; - let mut new_memtable = MemTable::new( + let mut new_memtable = MemTable::with_capacity( self.schema.clone(), next_generation, self.pk_field_ids.clone(), + super::memtable::CacheConfig::default(), + self.max_memtable_batches, )?; - // Recreate indexes on the new memtable if configured - // For async mode, we create Arc and send to handler - // For sync mode, we just set indexes directly - let new_indexes_arc = if !self.index_configs.is_empty() { - let indexes = Arc::new(IndexRegistry::from_configs(&self.index_configs)?); + // Recreate indexes on the new memtable + let new_indexes = if !self.index_configs.is_empty() { + let indexes = Arc::new(IndexRegistry::from_configs( + &self.index_configs, + self.max_memtable_rows, + self.ivf_index_partition_capacity_safety_factor, + )?); new_memtable.set_indexes_arc(indexes.clone()); Some(indexes) } else { None }; + // Update our indexes reference for future WAL flushes + self.indexes = new_indexes; + // Swap memtables and freeze the old one let old_memtable = std::mem::replace(&mut state.memtable, new_memtable); // Get max sequence from the old memtable (for MVCC visibility) - // For now, use row_count as a proxy since we don't have per-batch sequence yet let max_seq = old_memtable.row_count() as u64; // Wrap in ImmutableMemTable and add to queue @@ -1000,14 +1367,13 @@ impl MemTableFlushHandler { state.immutable_memtables.len() ); - // Step 5: If using async index updates, tell the handler about new indexes - if let (Some(ref index_tx), Some(indexes)) = (&self.index_update_tx, new_indexes_arc) { - let _ = index_tx.send(IndexUpdateMsg::SetIndexes { indexes }); - debug!( - "Sent new indexes to async index handler for generation {}", - next_generation - ); - } + eprintln!( + "[{:.3}][FREEZE] Complete: gen={} imm_queue={} new_capacity={} took={}ms", + log_ts(), next_generation - 1, + state.immutable_memtables.len(), + state.memtable.remaining_batch_capacity(), + freeze_start.elapsed().as_millis() + ); Ok(next_generation) } @@ -1015,6 +1381,7 @@ impl MemTableFlushHandler { /// Flush the oldest immutable memtable from the queue. async fn flush_oldest_immutable(&mut self) -> Result> { let start = Instant::now(); + eprintln!("[{:.3}][LANCE_FLUSH] Starting flush_oldest_immutable", log_ts()); // Pop the oldest immutable memtable from the queue let immutable = { @@ -1023,14 +1390,26 @@ impl MemTableFlushHandler { }; let Some(immutable) = immutable else { + eprintln!("[{:.3}][LANCE_FLUSH] No immutable memtable in queue", log_ts()); return Ok(None); }; + eprintln!( + "[{:.3}][LANCE_FLUSH] Flushing memtable with {} rows, {} batches", + log_ts(), immutable.memtable().row_count(), + immutable.memtable().batch_count() + ); + // Flush the memtable + let flusher_start = std::time::Instant::now(); let result = self .flusher .flush(immutable.memtable(), &self.epoch_guard) .await?; + eprintln!( + "[{:.3}][LANCE_FLUSH] flusher.flush() took {}ms", + log_ts(), flusher_start.elapsed().as_millis() + ); // Record stats self.stats.record_memtable_flush( @@ -1054,17 +1433,71 @@ impl MemTableFlushHandler { } async fn do_flush(&mut self) -> Result { + // Check if memtable has data before flushing + // This prevents spurious flushes from queued messages + let (batch_count, pending_wal_bytes) = { + let state = self.state.read().await; + (state.memtable.batch_count(), self.wal_buffer.pending_bytes()) + }; + + if batch_count == 0 && pending_wal_bytes == 0 { + eprintln!("[{:.3}][MEMTABLE_FLUSH] Skipping flush - no data (batches=0, pending_wal_bytes=0)", log_ts()); + // Return a dummy result - no actual flush needed + return Ok(FlushResult { + generation: lance_index::mem_wal::FlushedGeneration { + generation: 0, + path: String::new(), + }, + rows_flushed: 0, + fragments_created: 0, + covered_wal_id: 0, + }); + } + + eprintln!( + "[{:.3}][MEMTABLE_FLUSH] Starting do_flush: {} batches, {} pending WAL bytes", + log_ts(), batch_count, pending_wal_bytes + ); + let flush_start = std::time::Instant::now(); + // Step 1: Freeze current memtable and add to queue + let freeze_start = std::time::Instant::now(); let _next_generation = self.freeze_memtable().await?; + eprintln!( + "[{:.3}][MEMTABLE_FLUSH] freeze_memtable took {}ms", + log_ts(), freeze_start.elapsed().as_millis() + ); // Step 2: Flush from queue - match self.flush_oldest_immutable().await? { - Some(result) => Ok(result), + let lance_start = std::time::Instant::now(); + let result = match self.flush_oldest_immutable().await? { + Some(result) => { + eprintln!( + "[{:.3}][MEMTABLE_FLUSH] flush_oldest_immutable (Lance format) took {}ms, {} rows, {} fragments", + log_ts(), lance_start.elapsed().as_millis(), + result.rows_flushed, + result.fragments_created + ); + Ok(result) + } None => Err(Error::Internal { message: "No immutable memtable to flush after freeze".to_string(), location: location!(), }), - } + }; + + eprintln!( + "[{:.3}][MEMTABLE_FLUSH] do_flush complete: {}ms (freeze={}ms, lance={}ms)", + log_ts(), flush_start.elapsed().as_millis(), + freeze_start.elapsed().as_millis(), + lance_start.elapsed().as_millis() + ); + + // Clear the flush_requested flag so new flush requests can be made + self.flush_requested + .store(false, std::sync::atomic::Ordering::Release); + + result } } @@ -1112,7 +1545,7 @@ mod tests { let config = RegionWriterConfig { region_id: Uuid::new_v4(), region_spec_id: 0, - durable_writes: false, + durable_write: false, sync_indexed_write: false, max_wal_buffer_size: 1024 * 1024, max_flush_interval: None, @@ -1155,7 +1588,7 @@ mod tests { let config = RegionWriterConfig { region_id: Uuid::new_v4(), region_spec_id: 0, - durable_writes: false, + durable_write: false, sync_indexed_write: false, max_wal_buffer_size: 1024 * 1024, max_flush_interval: None, @@ -1190,7 +1623,7 @@ mod tests { let config = RegionWriterConfig { region_id: Uuid::new_v4(), region_spec_id: 0, - durable_writes: false, + durable_write: false, sync_indexed_write: false, max_wal_buffer_size: 1024 * 1024, max_flush_interval: None, @@ -1225,7 +1658,7 @@ mod tests { let config = RegionWriterConfig { region_id: Uuid::new_v4(), region_spec_id: 0, - durable_writes: false, + durable_write: false, sync_indexed_write: true, max_wal_buffer_size: 1024 * 1024, max_flush_interval: None, @@ -1272,7 +1705,7 @@ mod tests { let config = RegionWriterConfig { region_id: Uuid::new_v4(), region_spec_id: 0, - durable_writes: false, + durable_write: false, sync_indexed_write: false, max_wal_buffer_size: 1024 * 1024, // 1MB WAL buffer max_flush_interval: None, @@ -1326,7 +1759,7 @@ mod tests { let config = RegionWriterConfig { region_id: Uuid::new_v4(), region_spec_id: 0, - durable_writes: false, + durable_write: false, sync_indexed_write: false, max_wal_buffer_size: 1024 * 1024, max_flush_interval: None, From c49d5d72b465f64837b103e18a99061ac45b609d Mon Sep 17 00:00:00 2001 From: Heng Ge Date: Wed, 21 Jan 2026 22:19:52 -0800 Subject: [PATCH 03/20] feat(mem_wal): unify time and size-based WAL flush triggers - Move time-based flush check into maybe_trigger_wal_flush() called after each write, eliminating the separate Tick ticker process - This fixes the priority conflict where Tick (with higher priority in biased select) would flush everything before queued size-based triggers - Both time and size triggers now use TriggerWalFlush message with captured end_batch_id, ensuring sequential processing - Rename TriggerFlush to TriggerWalFlush for clarity Co-Authored-By: Jack Ye Co-Authored-By: Claude Opus 4.5 --- result.log | 7761 ----------------- rust/lance/src/dataset/mem_wal/config.rs | 8 +- rust/lance/src/dataset/mem_wal/dispatcher.rs | 28 +- rust/lance/src/dataset/mem_wal/write.rs | 6 +- .../src/dataset/mem_wal/write/batch_write.rs | 42 +- rust/lance/src/dataset/mem_wal/write/flush.rs | 26 +- rust/lance/src/dataset/mem_wal/write/wal.rs | 367 +- .../lance/src/dataset/mem_wal/write/writer.rs | 448 +- 8 files changed, 706 insertions(+), 7980 deletions(-) delete mode 100644 result.log diff --git a/result.log b/result.log deleted file mode 100644 index af2f2fab6c5..00000000000 --- a/result.log +++ /dev/null @@ -1,7761 +0,0 @@ -warning: lance-linalg@2.1.0-beta.0: fp16kernels feature is not enabled, skipping build of fp16 kernels - Compiling lance v2.1.0-beta.0 (/Users/jackye/oss/lance-lsm-writer/rust/lance) - Finished `test` profile [unoptimized + debuginfo] target(s) in 8.13s - Running unittests src/lib.rs (target/debug/deps/lance-5ca2f9988fe2a9ec) - -running 1 test -[TEST] Creating dataset at s3://gh-dev-us-east-1/t39/test_s3_a8dda88c-6882-48ea-b00f-7c8770c523bf -[TEST] Config: flush_interval=Some(100ms), wal_buffer_size=10485760 -[0.000][WRITER] Creating wal_flusher with flush_interval=Some(100ms) -[0.000][EXECUTOR] Adding handler task 'wal_flusher' -[0.000][WRITER] Adding memtable_flusher handler -[0.000][EXECUTOR] Adding handler task 'memtable_flusher' -[0.000][WRITER] memtable_flusher handler added -[0.000][EXECUTOR] Adding handler task 'writer' -[TEST] Writing 10000 batches x 20 rows = 200000 total rows -[2.552][PUT] put #0 -[2.552][EXECUTOR] Task 'wal_flusher' spawned and starting -[2.552][DISPATCHER] Task 'wal_flusher' started, has 1 tickers -[2.552][DISPATCHER] wal_flusher select iteration 0 -[2.552][EXECUTOR] Task 'memtable_flusher' spawned and starting -[2.552][DISPATCHER] Task 'memtable_flusher' started, has 0 tickers -[2.552][EXECUTOR] Task 'writer' spawned and starting -[2.552][DISPATCHER] Task 'writer' started, has 0 tickers -[2.552][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.552][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.552][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.552][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.552][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.552][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.552][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.552][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.552][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.552][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.552][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.552][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.552][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.552][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 100 batches in 3.171084ms -[2.555][PUT] put #100 -[2.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.556][WAL_SIZE_TRIGGER] pending_bytes=10486344 >= threshold=10485760, triggering flush -[2.556][DISPATCHER] Task 'wal_flusher' received message (not tick) -[2.556][WAL_FLUSH_HANDLER] Received TriggerFlush, starting flush -[2.556] [WAL_FLUSH] Starting: 157 pending batches (IDs 0..157), 10486344 bytes -[2.562][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.562][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.562][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.562][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.562][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.562][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.562][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.562][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.562][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.562][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.562][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.562][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.562][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.562][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.562][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.562][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.562][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.562][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 200 batches in 11.423042ms -[2.563][PUT] put #200 -[2.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 300 batches in 14.027584ms -[2.566][PUT] put #300 -[2.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 400 batches in 16.62ms -[2.568][PUT] put #400 -[2.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 500 batches in 19.168875ms -[2.571][PUT] put #500 -[2.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 600 batches in 21.715959ms -[2.574][PUT] put #600 -[2.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 700 batches in 24.24225ms -[2.576][PUT] put #700 -[2.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 800 batches in 26.774959ms -[2.579][PUT] put #800 -[2.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 900 batches in 29.274084ms -[2.581][PUT] put #900 -[2.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 1000 batches in 31.865625ms -[2.584][PUT] put #1000 -[2.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 1100 batches in 34.355709ms -[2.586][PUT] put #1100 -[2.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 1200 batches in 36.634125ms -[2.588][PUT] put #1200 -[2.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 1300 batches in 39.291375ms -[2.591][PUT] put #1300 -[2.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 1400 batches in 41.791084ms -[2.594][PUT] put #1400 -[2.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.595][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.595][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.595][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.595][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.595][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.595][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.595][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.595][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.595][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.595][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.595][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.595][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.595][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.595][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.595][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.595][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.595][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.595][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.595][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.595][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.595][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.595][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.595][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.595][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.595][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.595][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.595][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.595][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.595][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.595][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.595][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.595][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.595][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.595][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.595][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.595][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.595][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.595][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.595][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 1500 batches in 44.326459ms -[2.596][PUT] put #1500 -[2.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.599][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.599][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.599][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.599][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 1600 batches in 46.873834ms -[2.599][PUT] put #1600 -[2.599][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.599][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.599][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.599][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.599][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.599][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.599][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.599][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.599][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.599][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.599][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.599][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.599][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.599][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.599][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.599][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.599][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.599][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.599][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.599][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.599][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.599][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.599][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.599][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.599][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.599][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.599][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.599][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.599][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.599][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.599][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.599][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.599][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.599][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.599][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.599][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.600][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.600][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.600][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.600][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.600][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.600][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.600][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.600][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.600][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.600][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.600][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.600][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.600][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.600][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.600][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.600][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.600][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.600][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.600][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.600][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.600][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.600][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.600][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.600][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.600][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.600][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.600][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.600][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.600][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.600][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.600][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.600][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.600][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.600][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.600][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.600][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.600][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.600][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.600][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.600][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 1700 batches in 49.339625ms -[2.601][PUT] put #1700 -[2.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.604][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.604][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.604][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 1800 batches in 51.835792ms -[2.604][PUT] put #1800 -[2.604][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.604][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.604][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.604][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.604][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.604][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.604][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.604][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.604][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.604][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.604][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.604][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.604][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.604][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.604][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.604][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.604][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.604][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.604][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.604][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.604][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.604][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.604][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.604][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.604][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.604][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.604][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.604][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.604][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.604][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.604][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.604][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.604][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.604][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.604][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.604][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.604][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 1900 batches in 54.274167ms -[2.606][PUT] put #1900 -[2.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.608][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.608][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.608][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.608][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.608][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.608][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.608][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.608][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.608][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.608][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.608][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.608][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.608][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.608][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.608][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.608][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.608][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.608][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.608][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.608][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.608][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.608][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.608][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.608][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.608][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.608][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.608][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.608][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.608][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.608][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.608][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.608][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.608][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.608][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.608][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.608][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.608][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.608][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.608][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.608][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 2000 batches in 56.752417ms -[2.609][PUT] put #2000 -[2.609][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.609][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.609][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.609][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.609][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.609][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.609][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.609][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.609][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.609][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.609][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.609][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.609][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.609][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.609][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.609][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.609][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.609][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.609][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.609][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.609][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.609][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.609][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.609][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.609][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.609][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.609][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.609][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.609][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.609][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.609][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.609][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.609][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.609][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.609][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.609][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.609][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.609][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.609][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.610][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.610][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.610][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.610][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.610][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.610][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.610][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.610][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.610][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.610][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.610][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.610][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.610][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.610][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.610][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.610][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.610][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.610][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.610][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.610][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.610][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.610][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.610][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.610][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.610][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.610][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.610][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.610][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.610][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.610][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.610][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.610][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.610][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.610][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.610][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.610][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.610][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.610][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.610][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.611][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.611][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.611][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.611][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.611][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.611][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.611][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.611][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.611][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.611][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.611][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.611][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.611][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.611][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.611][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.611][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.611][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.611][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.611][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.611][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.611][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.611][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 2100 batches in 59.289042ms -[2.611][PUT] put #2100 -[2.611][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.611][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.611][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.611][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.611][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.611][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.611][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.611][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.611][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.611][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.611][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.611][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.611][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.611][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.611][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.611][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.611][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.611][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.611][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.612][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.612][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.612][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.612][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.612][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.612][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.612][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.612][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.612][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.612][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.612][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.612][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.612][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.612][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.612][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.612][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.612][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.612][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.612][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.612][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.612][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.612][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.612][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.612][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.612][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.612][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.612][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.612][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.612][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.612][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.612][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.612][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.612][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.612][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.612][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.612][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.612][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.612][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.612][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.612][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.612][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.613][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.613][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.613][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.613][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.613][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.613][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.613][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.613][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.613][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.613][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.613][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.613][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.613][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.613][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.613][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.613][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.613][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.613][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.613][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.613][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.613][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.613][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.613][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.613][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.613][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.613][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.613][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.613][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.613][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.613][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.613][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.613][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.613][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.613][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.613][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.613][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.613][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.613][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.613][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.613][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 2200 batches in 61.769667ms -[2.614][PUT] put #2200 -[2.614][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.614][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.614][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.614][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.614][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.614][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.614][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.614][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.614][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.614][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.614][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.614][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.614][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.614][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.614][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.614][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.614][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.614][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.614][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.614][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.614][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.614][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.614][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.614][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.614][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.614][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.614][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.614][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.614][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.614][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.614][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.614][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.614][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.614][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.614][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.614][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.614][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.614][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.614][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.614][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.615][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.615][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.615][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.615][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.615][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.615][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.615][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.615][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.615][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.615][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.615][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.615][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.615][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.615][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.615][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.615][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.615][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.615][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.615][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.615][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.615][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.615][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.615][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.615][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.615][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.615][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.615][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.615][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.615][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.615][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.615][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.615][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.615][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.615][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.615][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.615][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.615][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.615][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.616][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.616][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.616][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.616][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.616][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.616][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.616][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.616][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.616][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.616][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.616][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.616][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.616][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.616][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.616][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.616][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.616][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.616][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.616][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.616][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.616][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.616][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 2300 batches in 64.290459ms -[2.616][PUT] put #2300 -[2.616][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.616][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.616][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.616][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.616][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.616][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.616][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.616][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.616][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.616][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.616][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.616][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.616][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.616][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.616][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.616][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.616][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.616][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.616][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.617][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.617][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.617][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.617][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.617][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.617][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.617][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.617][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.617][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.617][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.617][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.617][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.617][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.617][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.617][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.617][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.617][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.617][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.617][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.617][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.617][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.617][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.617][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.617][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.617][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.617][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.617][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.617][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.617][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.617][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.617][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.617][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.617][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.617][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.617][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.617][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.617][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.617][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.617][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.617][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.617][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.618][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.618][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.618][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.618][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.618][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.618][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.618][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.618][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.618][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.618][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.618][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.618][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.618][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.618][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.618][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.618][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.618][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.618][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.618][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.618][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.618][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.618][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.618][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.618][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.618][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.618][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.618][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.618][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.618][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.618][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.618][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.618][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.618][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.618][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.618][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.618][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.618][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.618][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.618][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.619][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 2400 batches in 66.797875ms -[2.619][PUT] put #2400 -[2.619][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.619][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.619][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.619][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.619][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.619][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.619][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.619][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.619][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.619][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.619][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.619][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.619][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.619][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.619][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.619][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.619][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.619][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.619][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.619][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.619][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.619][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.619][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.619][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.619][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.619][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.619][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.619][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.619][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.619][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.619][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.619][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.619][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.619][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.619][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.619][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.619][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.620][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.620][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.620][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.620][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.620][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.620][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.620][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.620][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.620][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.620][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.620][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.620][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.620][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.620][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.620][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.620][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.620][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.620][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.620][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.620][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.620][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.620][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.620][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.620][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.620][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.620][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.620][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.620][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.620][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.620][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.620][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.620][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.620][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.620][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.620][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.620][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.620][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.620][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.620][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.620][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 2500 batches in 69.34425ms -[2.621][PUT] put #2500 -[2.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 2600 batches in 71.744917ms -[2.624][PUT] put #2600 -[2.624][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.624][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.624][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.624][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.624][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.624][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.624][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.624][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.624][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.624][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.624][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.624][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.624][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.624][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.624][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.624][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.624][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.624][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.624][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.624][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.624][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.624][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.624][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.624][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.624][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.624][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.624][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.624][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.624][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.624][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.624][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.624][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.624][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.624][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.624][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.624][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.624][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.624][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.624][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 2700 batches in 74.309167ms -[2.626][PUT] put #2700 -[2.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 2800 batches in 76.770709ms -[2.629][PUT] put #2800 -[2.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 2900 batches in 79.252ms -[2.631][PUT] put #2900 -[2.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 3000 batches in 81.754ms -[2.634][PUT] put #3000 -[2.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 3100 batches in 84.316375ms -[2.636][PUT] put #3100 -[2.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 3200 batches in 86.798625ms -[2.639][PUT] put #3200 -[2.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 3300 batches in 89.237042ms -[2.641][PUT] put #3300 -[2.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 3400 batches in 91.737375ms -[2.644][PUT] put #3400 -[2.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.645][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.645][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.645][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.645][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.645][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.645][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.645][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.645][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.645][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.645][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.645][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.645][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.645][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.645][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.645][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.645][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.645][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.645][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.645][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.645][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.645][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.645][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.645][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.645][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.645][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.645][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.645][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.645][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.645][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.645][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.645][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.645][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.645][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.645][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.645][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.645][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.645][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 3500 batches in 94.29725ms -[2.646][PUT] put #3500 -[2.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 3600 batches in 96.816625ms -[2.649][PUT] put #3600 -[2.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 3700 batches in 99.407917ms -[2.651][PUT] put #3700 -[2.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 3800 batches in 101.90125ms -[2.654][PUT] put #3800 -[2.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 3900 batches in 104.30125ms -[2.656][PUT] put #3900 -[2.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 4000 batches in 106.693292ms -[2.658][PUT] put #4000 -[2.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.659][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.659][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.659][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.659][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.659][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.659][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.659][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.659][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.659][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.659][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.659][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.659][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.659][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.659][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.659][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.659][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.659][DISPATCHER] Task 'memtable_flusher' received message: FlushMemTable { done: None } -[2.659][FLUSH_HANDLER] Received FlushMemTable: batches=4019, remaining=3981, pending_wal_bytes=268437048 -[2.659][MEMTABLE_FLUSH] Starting do_flush: 4019 batches, 268437048 pending WAL bytes -[2.659][FREEZE] Starting freeze_memtable -[2.659][FREEZE] WAL flush: pending_bytes=268437048, remaining_capacity=3981 -[2.785][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.785][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.785][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.785][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.785][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.785][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.785][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.785][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.785][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.785][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.785][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.785][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.785][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.785][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.785][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.785][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.785][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.785][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 4100 batches in 235.293834ms -[2.787][PUT] put #4100 -[2.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 4200 batches in 237.784959ms -[2.790][PUT] put #4200 -[2.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 4300 batches in 240.252417ms -[2.792][PUT] put #4300 -[2.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 4400 batches in 242.725167ms -[2.795][PUT] put #4400 -[2.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.797][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.797][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.797][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.797][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.797][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.797][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.797][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.797][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.797][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.797][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.797][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.797][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.797][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.797][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.797][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.797][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.797][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.797][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.797][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.797][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 4500 batches in 245.2535ms -[2.797][PUT] put #4500 -[2.797][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.797][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.797][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.797][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.797][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.797][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.797][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.797][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.797][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.797][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.797][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.797][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.797][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.797][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.797][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.797][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.797][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.797][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.797][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 4600 batches in 247.682834ms -[2.799][PUT] put #4600 -[2.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 4700 batches in 250.122625ms -[2.802][PUT] put #4700 -[2.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 4800 batches in 252.595375ms -[2.804][PUT] put #4800 -[2.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 4900 batches in 255.064917ms -[2.807][PUT] put #4900 -[2.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 5000 batches in 257.502375ms -[2.809][PUT] put #5000 -[2.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 5100 batches in 259.944084ms -[2.812][PUT] put #5100 -[2.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 5200 batches in 262.455125ms -[2.814][PUT] put #5200 -[2.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 5300 batches in 264.932ms -[2.817][PUT] put #5300 -[2.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 5400 batches in 267.419959ms -[2.819][PUT] put #5400 -[2.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 5500 batches in 269.64125ms -[2.821][PUT] put #5500 -[2.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 5600 batches in 272.14175ms -[2.824][PUT] put #5600 -[2.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 5700 batches in 274.618959ms -[2.826][PUT] put #5700 -[2.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 5800 batches in 277.067917ms -[2.829][PUT] put #5800 -[2.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 5900 batches in 279.569209ms -[2.831][PUT] put #5900 -[2.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 6000 batches in 282.061917ms -[2.834][PUT] put #6000 -[2.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 6100 batches in 284.457459ms -[2.836][PUT] put #6100 -[2.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 6200 batches in 286.970959ms -[2.839][PUT] put #6200 -[2.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 6300 batches in 289.448334ms -[2.841][PUT] put #6300 -[2.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 6400 batches in 291.9055ms -[2.844][PUT] put #6400 -[2.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 6500 batches in 294.336125ms -[2.846][PUT] put #6500 -[2.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 6600 batches in 296.850584ms -[2.849][PUT] put #6600 -[2.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 6700 batches in 299.271042ms -[2.851][PUT] put #6700 -[2.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 6800 batches in 301.792292ms -[2.854][PUT] put #6800 -[2.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 6900 batches in 304.118375ms -[2.856][PUT] put #6900 -[2.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 7000 batches in 306.55575ms -[2.858][PUT] put #7000 -[2.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 7100 batches in 308.962084ms -[2.861][PUT] put #7100 -[2.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.863][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.863][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.863][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.863][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.863][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.863][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.863][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.863][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.863][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.863][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.863][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.863][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.863][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.863][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.863][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.863][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.863][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.863][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.863][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.863][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.863][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.863][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.863][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.863][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.863][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.863][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.863][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[2.863][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 7200 batches in 311.434042ms -[2.863][PUT] put #7200 -[2.863][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[0.000][BP_TRIGGER] iter=0 batch_store_nearly_full: remaining=799/8000 (<10%), triggering flush and waiting -[2.863][TRIGGER] Sending FlushMemTable message and waiting for completion -[10.997][WAL_FLUSH] S3 I/O complete: 8440ms for 157 batches (6847202 bytes) -[10.998][WAL_FLUSH] Complete: total=8442ms, 157 batches flushed -[10.999][DISPATCHER] wal_flusher select iteration 1 -[10.999][DISPATCHER] Task 'wal_flusher' ticker fired -[10.999] [WAL_TICK] pending_bytes=0 -[10.999][DISPATCHER] wal_flusher select iteration 2 -[10.999][DISPATCHER] Task 'wal_flusher' ticker fired -[10.999] [WAL_TICK] pending_bytes=0 -[10.999][DISPATCHER] wal_flusher select iteration 3 -[10.999][DISPATCHER] Task 'wal_flusher' ticker fired -[10.999] [WAL_TICK] pending_bytes=0 -[10.999][DISPATCHER] wal_flusher select iteration 4 -[10.999][DISPATCHER] Task 'wal_flusher' ticker fired -[10.999] [WAL_TICK] pending_bytes=0 -[10.999][DISPATCHER] wal_flusher select iteration 5 -[10.999][DISPATCHER] Task 'wal_flusher' ticker fired -[10.999] [WAL_TICK] pending_bytes=0 -[10.999][DISPATCHER] wal_flusher select iteration 6 -[10.999][DISPATCHER] Task 'wal_flusher' ticker fired -[10.999] [WAL_TICK] pending_bytes=0 -[10.999][DISPATCHER] wal_flusher select iteration 7 -[10.999][DISPATCHER] Task 'wal_flusher' ticker fired -[10.999] [WAL_TICK] pending_bytes=0 -[10.999][DISPATCHER] wal_flusher select iteration 8 -[10.999][DISPATCHER] Task 'wal_flusher' ticker fired -[10.999] [WAL_TICK] pending_bytes=0 -[10.999][DISPATCHER] wal_flusher select iteration 9 -[10.999][DISPATCHER] Task 'wal_flusher' ticker fired -[10.999] [WAL_TICK] pending_bytes=0 -[10.999][DISPATCHER] Task 'wal_flusher' ticker fired -[10.999] [WAL_TICK] pending_bytes=0 -[10.999][DISPATCHER] Task 'wal_flusher' ticker fired -[10.999] [WAL_TICK] pending_bytes=0 -[10.999][DISPATCHER] Task 'wal_flusher' ticker fired -[10.999] [WAL_TICK] pending_bytes=0 -[10.999][DISPATCHER] Task 'wal_flusher' ticker fired -[10.999] [WAL_TICK] pending_bytes=0 -[10.999][DISPATCHER] Task 'wal_flusher' ticker fired -[10.999] [WAL_TICK] pending_bytes=0 -[10.999][DISPATCHER] Task 'wal_flusher' ticker fired -[10.999] [WAL_TICK] pending_bytes=0 -[10.999][DISPATCHER] Task 'wal_flusher' ticker fired -[10.999] [WAL_TICK] pending_bytes=0 -[10.999][DISPATCHER] Task 'wal_flusher' ticker fired -[10.999] [WAL_TICK] pending_bytes=0 -[10.999][DISPATCHER] Task 'wal_flusher' ticker fired -[10.999] [WAL_TICK] pending_bytes=0 -[10.999][DISPATCHER] Task 'wal_flusher' ticker fired -[10.999] [WAL_TICK] pending_bytes=0 -[10.999][DISPATCHER] Task 'wal_flusher' ticker fired -[10.999] [WAL_TICK] pending_bytes=0 -[10.999][DISPATCHER] Task 'wal_flusher' ticker fired -[10.999] [WAL_TICK] pending_bytes=0 -[10.999][DISPATCHER] Task 'wal_flusher' ticker fired -[10.999] [WAL_TICK] pending_bytes=0 -[10.999][DISPATCHER] Task 'wal_flusher' ticker fired -[10.999] [WAL_TICK] pending_bytes=0 -[10.999][DISPATCHER] Task 'wal_flusher' ticker fired -[10.999] [WAL_TICK] pending_bytes=0 -[10.999][DISPATCHER] Task 'wal_flusher' ticker fired -[10.999] [WAL_TICK] pending_bytes=0 -[10.999][DISPATCHER] Task 'wal_flusher' ticker fired -[10.999] [WAL_TICK] pending_bytes=0 -[10.999][DISPATCHER] Task 'wal_flusher' ticker fired -[10.999] [WAL_TICK] pending_bytes=0 -[10.999][DISPATCHER] Task 'wal_flusher' ticker fired -[10.999] [WAL_TICK] pending_bytes=0 -[10.999][DISPATCHER] Task 'wal_flusher' ticker fired -[10.999] [WAL_TICK] pending_bytes=0 -[10.999][DISPATCHER] Task 'wal_flusher' ticker fired -[10.999] [WAL_TICK] pending_bytes=0 -[10.999][DISPATCHER] Task 'wal_flusher' ticker fired -[10.999] [WAL_TICK] pending_bytes=0 -[10.999][DISPATCHER] Task 'wal_flusher' ticker fired -[10.999] [WAL_TICK] pending_bytes=0 -[10.999][DISPATCHER] Task 'wal_flusher' ticker fired -[10.999] [WAL_TICK] pending_bytes=0 -[10.999][DISPATCHER] Task 'wal_flusher' ticker fired -[10.999] [WAL_TICK] pending_bytes=0 -[10.999][DISPATCHER] Task 'wal_flusher' ticker fired -[10.999] [WAL_TICK] pending_bytes=0 -[10.999][DISPATCHER] Task 'wal_flusher' ticker fired -[10.999] [WAL_TICK] pending_bytes=0 -[10.999][DISPATCHER] Task 'wal_flusher' ticker fired -[10.999] [WAL_TICK] pending_bytes=0 -[10.999][DISPATCHER] Task 'wal_flusher' ticker fired -[10.999] [WAL_TICK] pending_bytes=0 -[10.999][DISPATCHER] Task 'wal_flusher' ticker fired -[10.999] [WAL_TICK] pending_bytes=0 -[10.999][DISPATCHER] Task 'wal_flusher' ticker fired -[10.999] [WAL_TICK] pending_bytes=0 -[10.999][DISPATCHER] Task 'wal_flusher' ticker fired -[10.999] [WAL_TICK] pending_bytes=0 -[10.999][DISPATCHER] Task 'wal_flusher' ticker fired -[10.999] [WAL_TICK] pending_bytes=0 -[10.999][DISPATCHER] Task 'wal_flusher' ticker fired -[11.000] [WAL_TICK] pending_bytes=0 -[10.999][DISPATCHER] Task 'wal_flusher' ticker fired -[11.000] [WAL_TICK] pending_bytes=0 -[10.999][DISPATCHER] Task 'wal_flusher' ticker fired -[11.000] [WAL_TICK] pending_bytes=0 -[11.000][DISPATCHER] Task 'wal_flusher' ticker fired -[11.000] [WAL_TICK] pending_bytes=0 -[11.000][DISPATCHER] Task 'wal_flusher' ticker fired -[11.000] [WAL_TICK] pending_bytes=0 -[11.000][DISPATCHER] Task 'wal_flusher' ticker fired -[11.000] [WAL_TICK] pending_bytes=0 -[11.000][DISPATCHER] Task 'wal_flusher' ticker fired -[11.000] [WAL_TICK] pending_bytes=0 -[11.000][DISPATCHER] Task 'wal_flusher' ticker fired -[11.000] [WAL_TICK] pending_bytes=0 -[11.000][DISPATCHER] Task 'wal_flusher' ticker fired -[11.000] [WAL_TICK] pending_bytes=0 -[11.000][DISPATCHER] Task 'wal_flusher' ticker fired -[11.000] [WAL_TICK] pending_bytes=0 -[11.000][DISPATCHER] Task 'wal_flusher' ticker fired -[11.000] [WAL_TICK] pending_bytes=0 -[11.000][DISPATCHER] Task 'wal_flusher' ticker fired -[11.000] [WAL_TICK] pending_bytes=0 -[11.000][DISPATCHER] Task 'wal_flusher' ticker fired -[11.000] [WAL_TICK] pending_bytes=0 -[11.000][DISPATCHER] Task 'wal_flusher' ticker fired -[11.000] [WAL_TICK] pending_bytes=0 -[11.000][DISPATCHER] Task 'wal_flusher' ticker fired -[11.000] [WAL_TICK] pending_bytes=0 -[11.000][DISPATCHER] Task 'wal_flusher' ticker fired -[11.000] [WAL_TICK] pending_bytes=0 -[11.000][DISPATCHER] Task 'wal_flusher' ticker fired -[11.000] [WAL_TICK] pending_bytes=0 -[11.000][DISPATCHER] Task 'wal_flusher' ticker fired -[11.000] [WAL_TICK] pending_bytes=0 -[11.000][DISPATCHER] Task 'wal_flusher' ticker fired -[11.000] [WAL_TICK] pending_bytes=0 -[11.000][DISPATCHER] Task 'wal_flusher' ticker fired -[11.000] [WAL_TICK] pending_bytes=0 -[11.000][DISPATCHER] Task 'wal_flusher' ticker fired -[11.000] [WAL_TICK] pending_bytes=0 -[11.000][DISPATCHER] Task 'wal_flusher' ticker fired -[11.000] [WAL_TICK] pending_bytes=0 -[11.000][DISPATCHER] Task 'wal_flusher' ticker fired -[11.000] [WAL_TICK] pending_bytes=0 -[11.000][DISPATCHER] Task 'wal_flusher' ticker fired -[11.000] [WAL_TICK] pending_bytes=0 -[11.000][DISPATCHER] Task 'wal_flusher' ticker fired -[11.000] [WAL_TICK] pending_bytes=0 -[11.000][DISPATCHER] Task 'wal_flusher' ticker fired -[11.000] [WAL_TICK] pending_bytes=0 -[11.000][DISPATCHER] Task 'wal_flusher' ticker fired -[11.000] [WAL_TICK] pending_bytes=0 -[11.000][DISPATCHER] Task 'wal_flusher' ticker fired -[11.000] [WAL_TICK] pending_bytes=0 -[11.000][DISPATCHER] Task 'wal_flusher' ticker fired -[11.000] [WAL_TICK] pending_bytes=0 -[11.000][DISPATCHER] Task 'wal_flusher' ticker fired -[11.000] [WAL_TICK] pending_bytes=0 -[11.000][DISPATCHER] Task 'wal_flusher' ticker fired -[11.000] [WAL_TICK] pending_bytes=0 -[11.000][DISPATCHER] Task 'wal_flusher' ticker fired -[11.000] [WAL_TICK] pending_bytes=0 -[11.000][DISPATCHER] Task 'wal_flusher' ticker fired -[11.000] [WAL_TICK] pending_bytes=0 -[11.000][DISPATCHER] Task 'wal_flusher' ticker fired -[11.000] [WAL_TICK] pending_bytes=0 -[11.000][DISPATCHER] Task 'wal_flusher' ticker fired -[11.000] [WAL_TICK] pending_bytes=0 -[11.000][DISPATCHER] Task 'wal_flusher' ticker fired -[11.000] [WAL_TICK] pending_bytes=0 -[11.000][DISPATCHER] Task 'wal_flusher' ticker fired -[11.000] [WAL_TICK] pending_bytes=0 -[11.000][DISPATCHER] Task 'wal_flusher' ticker fired -[11.000] [WAL_TICK] pending_bytes=0 -[11.000][DISPATCHER] Task 'wal_flusher' ticker fired -[11.000] [WAL_TICK] pending_bytes=0 -[11.000][DISPATCHER] Task 'wal_flusher' ticker fired -[11.000] [WAL_TICK] pending_bytes=0 -[11.000][DISPATCHER] Task 'wal_flusher' ticker fired -[11.000] [WAL_TICK] pending_bytes=0 -[11.000][DISPATCHER] Task 'wal_flusher' ticker fired -[11.000] [WAL_TICK] pending_bytes=0 -[11.054][DISPATCHER] Task 'wal_flusher' ticker fired -[11.054] [WAL_TICK] pending_bytes=0 -[11.153][DISPATCHER] Task 'wal_flusher' ticker fired -[11.153] [WAL_TICK] pending_bytes=0 -[11.253][DISPATCHER] Task 'wal_flusher' ticker fired -[11.253] [WAL_TICK] pending_bytes=0 -[11.353][DISPATCHER] Task 'wal_flusher' ticker fired -[11.353] [WAL_TICK] pending_bytes=0 -[11.453][DISPATCHER] Task 'wal_flusher' ticker fired -[11.453] [WAL_TICK] pending_bytes=0 -[11.554][DISPATCHER] Task 'wal_flusher' ticker fired -[11.554] [WAL_TICK] pending_bytes=0 -[11.654][DISPATCHER] Task 'wal_flusher' ticker fired -[11.654] [WAL_TICK] pending_bytes=0 -[11.754][DISPATCHER] Task 'wal_flusher' ticker fired -[11.754] [WAL_TICK] pending_bytes=0 -[11.854][DISPATCHER] Task 'wal_flusher' ticker fired -[11.854] [WAL_TICK] pending_bytes=0 -[11.953][DISPATCHER] Task 'wal_flusher' ticker fired -[11.953] [WAL_TICK] pending_bytes=0 -[12.053][DISPATCHER] Task 'wal_flusher' ticker fired -[12.053] [WAL_TICK] pending_bytes=0 -[12.153][DISPATCHER] Task 'wal_flusher' ticker fired -[12.153] [WAL_TICK] pending_bytes=0 -[12.253][DISPATCHER] Task 'wal_flusher' ticker fired -[12.253] [WAL_TICK] pending_bytes=0 -[12.355][DISPATCHER] Task 'wal_flusher' ticker fired -[12.355] [WAL_TICK] pending_bytes=0 -[12.454][DISPATCHER] Task 'wal_flusher' ticker fired -[12.454] [WAL_TICK] pending_bytes=0 -[12.454][DISPATCHER] wal_flusher select iteration 100 -[12.553][DISPATCHER] Task 'wal_flusher' ticker fired -[12.553] [WAL_TICK] pending_bytes=0 -[12.653][DISPATCHER] Task 'wal_flusher' ticker fired -[12.653] [WAL_TICK] pending_bytes=0 -[12.754][DISPATCHER] Task 'wal_flusher' ticker fired -[12.754] [WAL_TICK] pending_bytes=0 -[12.854][DISPATCHER] Task 'wal_flusher' ticker fired -[12.854] [WAL_TICK] pending_bytes=0 -[12.954][DISPATCHER] Task 'wal_flusher' ticker fired -[12.954] [WAL_TICK] pending_bytes=0 -[13.054][DISPATCHER] Task 'wal_flusher' ticker fired -[13.054] [WAL_TICK] pending_bytes=0 -[13.154][DISPATCHER] Task 'wal_flusher' ticker fired -[13.154] [WAL_TICK] pending_bytes=0 -[13.253][DISPATCHER] Task 'wal_flusher' ticker fired -[13.253] [WAL_TICK] pending_bytes=0 -[13.353][DISPATCHER] Task 'wal_flusher' ticker fired -[13.353] [WAL_TICK] pending_bytes=0 -[13.454][DISPATCHER] Task 'wal_flusher' ticker fired -[13.454] [WAL_TICK] pending_bytes=0 -[13.554][DISPATCHER] Task 'wal_flusher' ticker fired -[13.554] [WAL_TICK] pending_bytes=0 -[13.653][DISPATCHER] Task 'wal_flusher' ticker fired -[13.653] [WAL_TICK] pending_bytes=0 -[13.754][DISPATCHER] Task 'wal_flusher' ticker fired -[13.754] [WAL_TICK] pending_bytes=0 -[13.853][DISPATCHER] Task 'wal_flusher' ticker fired -[13.853] [WAL_TICK] pending_bytes=0 -[13.954][DISPATCHER] Task 'wal_flusher' ticker fired -[13.954] [WAL_TICK] pending_bytes=0 -[14.053][DISPATCHER] Task 'wal_flusher' ticker fired -[14.053] [WAL_TICK] pending_bytes=0 -[14.154][DISPATCHER] Task 'wal_flusher' ticker fired -[14.154] [WAL_TICK] pending_bytes=0 -[14.254][DISPATCHER] Task 'wal_flusher' ticker fired -[14.254] [WAL_TICK] pending_bytes=0 -[14.353][DISPATCHER] Task 'wal_flusher' ticker fired -[14.353] [WAL_TICK] pending_bytes=0 -[14.453][DISPATCHER] Task 'wal_flusher' ticker fired -[14.453] [WAL_TICK] pending_bytes=0 -[14.553][DISPATCHER] Task 'wal_flusher' ticker fired -[14.553] [WAL_TICK] pending_bytes=0 -[14.653][DISPATCHER] Task 'wal_flusher' ticker fired -[14.653] [WAL_TICK] pending_bytes=0 -[14.754][DISPATCHER] Task 'wal_flusher' ticker fired -[14.754] [WAL_TICK] pending_bytes=0 -[14.853][DISPATCHER] Task 'wal_flusher' ticker fired -[14.853] [WAL_TICK] pending_bytes=0 -[14.953][DISPATCHER] Task 'wal_flusher' ticker fired -[14.953] [WAL_TICK] pending_bytes=0 -[15.053][DISPATCHER] Task 'wal_flusher' ticker fired -[15.053] [WAL_TICK] pending_bytes=0 -[15.153][DISPATCHER] Task 'wal_flusher' ticker fired -[15.153] [WAL_TICK] pending_bytes=0 -[15.253][DISPATCHER] Task 'wal_flusher' ticker fired -[15.253] [WAL_TICK] pending_bytes=0 -[15.353][DISPATCHER] Task 'wal_flusher' ticker fired -[15.353] [WAL_TICK] pending_bytes=0 -[15.454][DISPATCHER] Task 'wal_flusher' ticker fired -[15.454] [WAL_TICK] pending_bytes=0 -[15.553][DISPATCHER] Task 'wal_flusher' ticker fired -[15.553] [WAL_TICK] pending_bytes=0 -[15.654][DISPATCHER] Task 'wal_flusher' ticker fired -[15.655] [WAL_TICK] pending_bytes=0 -[15.753][DISPATCHER] Task 'wal_flusher' ticker fired -[15.753] [WAL_TICK] pending_bytes=0 -[15.853][DISPATCHER] Task 'wal_flusher' ticker fired -[15.853] [WAL_TICK] pending_bytes=0 -[15.953][DISPATCHER] Task 'wal_flusher' ticker fired -[15.954] [WAL_TICK] pending_bytes=0 -[16.053][DISPATCHER] Task 'wal_flusher' ticker fired -[16.053] [WAL_TICK] pending_bytes=0 -[16.153][DISPATCHER] Task 'wal_flusher' ticker fired -[16.153] [WAL_TICK] pending_bytes=0 -[16.254][DISPATCHER] Task 'wal_flusher' ticker fired -[16.254] [WAL_TICK] pending_bytes=0 -[16.354][DISPATCHER] Task 'wal_flusher' ticker fired -[16.354] [WAL_TICK] pending_bytes=0 -[16.453][DISPATCHER] Task 'wal_flusher' ticker fired -[16.453] [WAL_TICK] pending_bytes=0 -[16.553][DISPATCHER] Task 'wal_flusher' ticker fired -[16.553] [WAL_TICK] pending_bytes=0 -[16.653][DISPATCHER] Task 'wal_flusher' ticker fired -[16.653] [WAL_TICK] pending_bytes=0 -[16.753][DISPATCHER] Task 'wal_flusher' ticker fired -[16.754] [WAL_TICK] pending_bytes=0 -[16.853][DISPATCHER] Task 'wal_flusher' ticker fired -[16.853] [WAL_TICK] pending_bytes=0 -[16.954][DISPATCHER] Task 'wal_flusher' ticker fired -[16.954] [WAL_TICK] pending_bytes=0 -[17.054][DISPATCHER] Task 'wal_flusher' ticker fired -[17.054] [WAL_TICK] pending_bytes=0 -[17.153][DISPATCHER] Task 'wal_flusher' ticker fired -[17.153] [WAL_TICK] pending_bytes=0 -[17.254][DISPATCHER] Task 'wal_flusher' ticker fired -[17.255] [WAL_TICK] pending_bytes=0 -[17.353][DISPATCHER] Task 'wal_flusher' ticker fired -[17.354] [WAL_TICK] pending_bytes=0 -[17.454][DISPATCHER] Task 'wal_flusher' ticker fired -[17.454] [WAL_TICK] pending_bytes=0 -[17.553][DISPATCHER] Task 'wal_flusher' ticker fired -[17.553] [WAL_TICK] pending_bytes=0 -[17.653][DISPATCHER] Task 'wal_flusher' ticker fired -[17.653] [WAL_TICK] pending_bytes=0 -[17.753][DISPATCHER] Task 'wal_flusher' ticker fired -[17.753] [WAL_TICK] pending_bytes=0 -[17.853][DISPATCHER] Task 'wal_flusher' ticker fired -[17.853] [WAL_TICK] pending_bytes=0 -[17.953][DISPATCHER] Task 'wal_flusher' ticker fired -[17.953] [WAL_TICK] pending_bytes=0 -[18.054][DISPATCHER] Task 'wal_flusher' ticker fired -[18.054] [WAL_TICK] pending_bytes=0 -[18.154][DISPATCHER] Task 'wal_flusher' ticker fired -[18.154] [WAL_TICK] pending_bytes=0 -[18.253][DISPATCHER] Task 'wal_flusher' ticker fired -[18.253] [WAL_TICK] pending_bytes=0 -[18.353][DISPATCHER] Task 'wal_flusher' ticker fired -[18.353] [WAL_TICK] pending_bytes=0 -[18.453][DISPATCHER] Task 'wal_flusher' ticker fired -[18.453] [WAL_TICK] pending_bytes=0 -[18.553][DISPATCHER] Task 'wal_flusher' ticker fired -[18.553] [WAL_TICK] pending_bytes=0 -[18.653][DISPATCHER] Task 'wal_flusher' ticker fired -[18.653] [WAL_TICK] pending_bytes=0 -[18.753][DISPATCHER] Task 'wal_flusher' ticker fired -[18.753] [WAL_TICK] pending_bytes=0 -[18.853][DISPATCHER] Task 'wal_flusher' ticker fired -[18.853] [WAL_TICK] pending_bytes=0 -[18.953][DISPATCHER] Task 'wal_flusher' ticker fired -[18.953] [WAL_TICK] pending_bytes=0 -[19.054][DISPATCHER] Task 'wal_flusher' ticker fired -[19.054] [WAL_TICK] pending_bytes=0 -[19.153][DISPATCHER] Task 'wal_flusher' ticker fired -[19.153] [WAL_TICK] pending_bytes=0 -[19.253][DISPATCHER] Task 'wal_flusher' ticker fired -[19.253] [WAL_TICK] pending_bytes=0 -[19.354][DISPATCHER] Task 'wal_flusher' ticker fired -[19.354] [WAL_TICK] pending_bytes=0 -[19.454][DISPATCHER] Task 'wal_flusher' ticker fired -[19.454] [WAL_TICK] pending_bytes=0 -[19.553][DISPATCHER] Task 'wal_flusher' ticker fired -[19.553] [WAL_TICK] pending_bytes=0 -[19.654][DISPATCHER] Task 'wal_flusher' ticker fired -[19.654] [WAL_TICK] pending_bytes=0 -[19.754][DISPATCHER] Task 'wal_flusher' ticker fired -[19.754] [WAL_TICK] pending_bytes=0 -[19.853][DISPATCHER] Task 'wal_flusher' ticker fired -[19.853] [WAL_TICK] pending_bytes=0 -[19.953][DISPATCHER] Task 'wal_flusher' ticker fired -[19.953] [WAL_TICK] pending_bytes=0 -[20.053][DISPATCHER] Task 'wal_flusher' ticker fired -[20.053] [WAL_TICK] pending_bytes=0 -[20.154][DISPATCHER] Task 'wal_flusher' ticker fired -[20.154] [WAL_TICK] pending_bytes=0 -[20.253][DISPATCHER] Task 'wal_flusher' ticker fired -[20.253] [WAL_TICK] pending_bytes=0 -[20.354][DISPATCHER] Task 'wal_flusher' ticker fired -[20.354] [WAL_TICK] pending_bytes=0 -[20.453][DISPATCHER] Task 'wal_flusher' ticker fired -[20.453] [WAL_TICK] pending_bytes=0 -[20.553][DISPATCHER] Task 'wal_flusher' ticker fired -[20.554] [WAL_TICK] pending_bytes=0 -[20.654][DISPATCHER] Task 'wal_flusher' ticker fired -[20.654] [WAL_TICK] pending_bytes=0 -[20.754][DISPATCHER] Task 'wal_flusher' ticker fired -[20.754] [WAL_TICK] pending_bytes=0 -[20.854][DISPATCHER] Task 'wal_flusher' ticker fired -[20.854] [WAL_TICK] pending_bytes=0 -[20.955][DISPATCHER] Task 'wal_flusher' ticker fired -[20.955] [WAL_TICK] pending_bytes=0 -[21.053][DISPATCHER] Task 'wal_flusher' ticker fired -[21.054] [WAL_TICK] pending_bytes=0 diff --git a/rust/lance/src/dataset/mem_wal/config.rs b/rust/lance/src/dataset/mem_wal/config.rs index a8a9c395c2d..7f333b649b2 100644 --- a/rust/lance/src/dataset/mem_wal/config.rs +++ b/rust/lance/src/dataset/mem_wal/config.rs @@ -151,11 +151,11 @@ impl Default for RegionWriterConfig { region_spec_id: 0, durable_write: true, sync_indexed_write: true, - max_wal_buffer_size: 10 * 1024 * 1024, // 10MB + max_wal_buffer_size: 10 * 1024 * 1024, // 10MB max_flush_interval: Some(Duration::from_millis(100)), // 100ms - max_memtable_size: 256 * 1024 * 1024, // 256MB - max_memtable_rows: 100_000, // 100k rows - max_memtable_batches: 8_000, // 8k batches + max_memtable_size: 256 * 1024 * 1024, // 256MB + max_memtable_rows: 100_000, // 100k rows + max_memtable_batches: 8_000, // 8k batches ivf_index_partition_capacity_safety_factor: 8, manifest_scan_batch_size: 2, max_unflushed_bytes: 1024 * 1024 * 1024, // 1GB diff --git a/rust/lance/src/dataset/mem_wal/dispatcher.rs b/rust/lance/src/dataset/mem_wal/dispatcher.rs index 28f07f4910d..b89d2443904 100644 --- a/rust/lance/src/dataset/mem_wal/dispatcher.rs +++ b/rust/lance/src/dataset/mem_wal/dispatcher.rs @@ -38,12 +38,10 @@ use tokio::time::{interval_at, Instant, Interval}; use tokio_util::sync::CancellationToken; use tracing::{debug, error, info, warn}; -/// Get a timestamp string for debug logging (seconds since program start). -fn log_ts() -> f64 { - use std::sync::OnceLock; - use std::time::Instant as StdInstant; - static START: OnceLock = OnceLock::new(); - START.get_or_init(StdInstant::now).elapsed().as_secs_f64() +/// Get a timestamp for debug logging (HH:MM:SS.mmm format). +/// Uses wall clock time so all threads share the same time reference. +fn log_ts() -> String { + chrono::Local::now().format("%H:%M:%S%.3f").to_string() } /// Factory function for creating ticker messages. @@ -105,7 +103,7 @@ impl TaskDispatcher { debug!("Task dispatcher '{}' started", self.name); eprintln!( - "[{:.3}][DISPATCHER] Task '{}' started, has {} tickers", + "[{}][DISPATCHER] Task '{}' started, has {} tickers", log_ts(), self.name, ticker_intervals.len() @@ -129,7 +127,7 @@ impl TaskDispatcher { match msg { Some(message) => { eprintln!( - "[{:.3}][DISPATCHER] Task '{}' received message: {:?}", + "[{}][DISPATCHER] Task '{}' received message: {:?}", log_ts(), self.name, message @@ -159,7 +157,7 @@ impl TaskDispatcher { let iter = ITER_COUNT.fetch_add(1, Ordering::Relaxed); if iter < 10 || iter % 100 == 0 { eprintln!( - "[{:.3}][DISPATCHER] wal_flusher select iteration {}", + "[{}][DISPATCHER] wal_flusher select iteration {}", log_ts(), iter ); @@ -180,7 +178,7 @@ impl TaskDispatcher { // Generate message from the first ticker let message = (ticker_intervals[0].1)(); eprintln!( - "[{:.3}][DISPATCHER] Task '{}' ticker fired", + "[{}][DISPATCHER] Task '{}' ticker fired", log_ts(), self.name ); @@ -195,7 +193,7 @@ impl TaskDispatcher { match msg { Some(message) => { eprintln!( - "[{:.3}][DISPATCHER] Task '{}' received message (not tick)", + "[{}][DISPATCHER] Task '{}' received message (not tick)", log_ts(), self.name ); @@ -253,11 +251,7 @@ impl TaskExecutor { handler: Box>, rx: mpsc::UnboundedReceiver, ) -> Result<()> { - eprintln!( - "[{:.3}][EXECUTOR] Adding handler task '{}'", - log_ts(), - name - ); + eprintln!("[{}][EXECUTOR] Adding handler task '{}'", log_ts(), name); let dispatcher = TaskDispatcher { handler, rx, @@ -268,7 +262,7 @@ impl TaskExecutor { let task_name = name.clone(); let handle = tokio::spawn(async move { eprintln!( - "[{:.3}][EXECUTOR] Task '{}' spawned and starting", + "[{}][EXECUTOR] Task '{}' spawned and starting", log_ts(), task_name ); diff --git a/rust/lance/src/dataset/mem_wal/write.rs b/rust/lance/src/dataset/mem_wal/write.rs index 5dcb0b7dea3..d854306b1a3 100644 --- a/rust/lance/src/dataset/mem_wal/write.rs +++ b/rust/lance/src/dataset/mem_wal/write.rs @@ -211,7 +211,11 @@ mod region_writer_tests { let num_batches = 10000; let schema = create_test_schema(vector_dim); - let uri = format!("{}/test_s3_{}", prefix.trim_end_matches('/'), Uuid::new_v4()); + let uri = format!( + "{}/test_s3_{}", + prefix.trim_end_matches('/'), + Uuid::new_v4() + ); eprintln!("[TEST] Creating dataset at {}", uri); diff --git a/rust/lance/src/dataset/mem_wal/write/batch_write.rs b/rust/lance/src/dataset/mem_wal/write/batch_write.rs index bc1abdc20c0..41249d937c3 100644 --- a/rust/lance/src/dataset/mem_wal/write/batch_write.rs +++ b/rust/lance/src/dataset/mem_wal/write/batch_write.rs @@ -14,12 +14,10 @@ use tracing::{debug, warn}; use crate::dataset::mem_wal::config::RegionWriterConfig; -/// Get a timestamp string for debug logging (seconds since program start). -fn log_ts() -> f64 { - use std::sync::OnceLock; - use std::time::Instant; - static START: OnceLock = OnceLock::new(); - START.get_or_init(Instant::now).elapsed().as_secs_f64() +/// Get a timestamp for debug logging (HH:MM:SS.mmm format). +/// Uses wall clock time so all threads share the same time reference. +fn log_ts() -> String { + chrono::Local::now().format("%H:%M:%S%.3f").to_string() } /// Result of a durability notification. @@ -173,9 +171,7 @@ impl BackpressureStats { BackpressureType::ImmutableMemtables => { self.immutable_memtables_count.load(Ordering::Relaxed) } - BackpressureType::BatchStoreFull => { - self.batch_store_full_count.load(Ordering::Relaxed) - } + BackpressureType::BatchStoreFull => self.batch_store_full_count.load(Ordering::Relaxed), } } @@ -300,7 +296,7 @@ impl BackpressureController { let bp_type = if batch_store_nearly_full { // Trigger memtable flush when batch store is nearly full and WAIT for it eprintln!( - "[{:.3}][BP_TRIGGER] iter={} batch_store_nearly_full: remaining={}/{} (<10%), triggering flush and waiting", + "[{}][BP_TRIGGER] iter={} batch_store_nearly_full: remaining={}/{} (<10%), triggering flush and waiting", log_ts(), iteration, remaining_batches, total_batches ); let start = std::time::Instant::now(); @@ -308,22 +304,30 @@ impl BackpressureController { let wait_ms = start.elapsed().as_millis() as u64; self.stats.record(BackpressureType::BatchStoreFull, wait_ms); eprintln!( - "[{:.3}][BP_TRIGGER] flush complete after {}ms, new remaining={}", - log_ts(), wait_ms, provider.remaining_batch_capacity() + "[{}][BP_TRIGGER] flush complete after {}ms, new remaining={}", + log_ts(), + wait_ms, + provider.remaining_batch_capacity() ); // After flush completes, loop to re-check all conditions iteration += 1; continue; } else if imm_exceeded { eprintln!( - "[{:.3}][BP_TRIGGER] iter={} imm_exceeded: imm_count={} >= max={}", - log_ts(), iteration, imm_count, self.config.max_immutable_memtables + "[{}][BP_TRIGGER] iter={} imm_exceeded: imm_count={} >= max={}", + log_ts(), + iteration, + imm_count, + self.config.max_immutable_memtables ); BackpressureType::ImmutableMemtables } else { eprintln!( - "[{:.3}][BP_TRIGGER] iter={} bytes_exceeded: unflushed={} >= max={}", - log_ts(), iteration, total_unflushed, self.config.max_unflushed_bytes + "[{}][BP_TRIGGER] iter={} bytes_exceeded: unflushed={} >= max={}", + log_ts(), + iteration, + total_unflushed, + self.config.max_unflushed_bytes ); BackpressureType::UnflushedBytes }; @@ -715,7 +719,11 @@ mod tests { #[async_trait::async_trait] impl WriterStateOps for Arc { - async fn insert_batch(&self, batch: RecordBatch, seq: u64) -> Result { + async fn insert_batch( + &self, + batch: RecordBatch, + seq: u64, + ) -> Result { let mut id = self.next_batch_id.write().await; let mut row_offset = self.next_row_offset.write().await; let batch_id = *id; diff --git a/rust/lance/src/dataset/mem_wal/write/flush.rs b/rust/lance/src/dataset/mem_wal/write/flush.rs index 403007d4060..5fbf2158c84 100644 --- a/rust/lance/src/dataset/mem_wal/write/flush.rs +++ b/rust/lance/src/dataset/mem_wal/write/flush.rs @@ -10,13 +10,11 @@ //! 4. Updates the region manifest atomically use std::sync::Arc; -use std::time::Instant; -/// Get a timestamp string for debug logging (seconds since program start). -fn log_ts() -> f64 { - use std::sync::OnceLock; - static START: OnceLock = OnceLock::new(); - START.get_or_init(Instant::now).elapsed().as_secs_f64() +/// Get a timestamp for debug logging (HH:MM:SS.mmm format). +/// Uses wall clock time so all threads share the same time reference. +fn log_ts() -> String { + chrono::Local::now().format("%H:%M:%S%.3f").to_string() } use bytes::Bytes; @@ -133,7 +131,7 @@ impl MemTableFlusher { epoch_guard: &EpochGuard, ) -> Result { eprintln!( - "[{:.3}] [FLUSHER] flush() called: {} rows, {} batches", + "[{}] [FLUSHER] flush() called: {} rows, {} batches", log_ts(), memtable.row_count(), memtable.batch_count() @@ -174,7 +172,7 @@ impl MemTableFlusher { memtable.batch_count() ); eprintln!( - "[{:.3}] [FLUSHER] Starting flush: gen={}, {} rows, {} batches", + "[{}] [FLUSHER] Starting flush: gen={}, {} rows, {} batches", log_ts(), generation, memtable.row_count(), @@ -186,7 +184,7 @@ impl MemTableFlusher { let lance_start = std::time::Instant::now(); self.write_data_file(&gen_path, memtable).await?; eprintln!( - "[{:.3}] [FLUSHER] write_data_file (Lance) took {}ms", + "[{}] [FLUSHER] write_data_file (Lance) took {}ms", log_ts(), lance_start.elapsed().as_millis() ); @@ -197,7 +195,7 @@ impl MemTableFlusher { self.write_bloom_filter(&bloom_path, memtable.bloom_filter()) .await?; eprintln!( - "[{:.3}] [FLUSHER] write_bloom_filter took {}ms", + "[{}] [FLUSHER] write_bloom_filter took {}ms", log_ts(), bloom_start.elapsed().as_millis() ); @@ -209,7 +207,7 @@ impl MemTableFlusher { .update_manifest(epoch_guard, generation, gen_path.as_ref(), last_wal_id) .await?; eprintln!( - "[{:.3}] [FLUSHER] update_manifest took {}ms", + "[{}] [FLUSHER] update_manifest took {}ms", log_ts(), manifest_start.elapsed().as_millis() ); @@ -220,7 +218,7 @@ impl MemTableFlusher { ); eprintln!( - "[{:.3}] [FLUSHER] flush() complete: total={}ms, {} rows", + "[{}] [FLUSHER] flush() complete: total={}ms, {} rows", log_ts(), flush_total_start.elapsed().as_millis(), memtable.row_count() @@ -259,7 +257,7 @@ impl MemTableFlusher { let num_batches = batches.len(); let total_rows: usize = batches.iter().map(|b| b.num_rows()).sum(); eprintln!( - "[{:.3}] [LANCE_WRITE] scan_batches: {}ms, {} batches, {} rows", + "[{}] [LANCE_WRITE] scan_batches: {}ms, {} batches, {} rows", log_ts(), scan_start.elapsed().as_millis(), num_batches, @@ -275,7 +273,7 @@ impl MemTableFlusher { RecordBatchIterator::new(batches.into_iter().map(Ok), memtable.schema().clone()); Dataset::write(reader, &uri, None).await?; eprintln!( - "[{:.3}] [LANCE_WRITE] Dataset::write: {}ms, {} rows to {}", + "[{}] [LANCE_WRITE] Dataset::write: {}ms, {} rows to {}", log_ts(), write_start.elapsed().as_millis(), total_rows, diff --git a/rust/lance/src/dataset/mem_wal/write/wal.rs b/rust/lance/src/dataset/mem_wal/write/wal.rs index fb4c2544b84..9263683528a 100644 --- a/rust/lance/src/dataset/mem_wal/write/wal.rs +++ b/rust/lance/src/dataset/mem_wal/write/wal.rs @@ -28,11 +28,10 @@ use std::sync::atomic::{AtomicU64, AtomicUsize, Ordering}; use std::sync::Arc; use std::time::Instant; -/// Get a timestamp string for debug logging (seconds since program start). -fn log_ts() -> f64 { - use std::sync::OnceLock; - static START: OnceLock = OnceLock::new(); - START.get_or_init(Instant::now).elapsed().as_secs_f64() +/// Get a timestamp for debug logging (HH:MM:SS.mmm format). +/// Uses wall clock time so all threads share the same time reference. +fn log_ts() -> String { + chrono::Local::now().format("%H:%M:%S%.3f").to_string() } use arrow_array::RecordBatch; @@ -87,9 +86,10 @@ impl BatchDurableWatcher { if current >= self.target_batch_id { return Ok(()); } - self.rx.changed().await.map_err(|_| { - Error::io("Durable watermark channel closed", location!()) - })?; + self.rx + .changed() + .await + .map_err(|_| Error::io("Durable watermark channel closed", location!()))?; } } @@ -137,8 +137,13 @@ pub struct WalFlushResult { /// WAL flush message sent to background flush handler. #[derive(Debug)] pub enum WalFlushMsg { - /// Trigger an immediate flush. - TriggerFlush { + /// Trigger an immediate flush up to a specific batch ID. + /// The end_batch_id is captured at trigger time to ensure each flush + /// handles exactly the batches that caused the trigger. + TriggerWalFlush { + /// End batch ID (exclusive) - flush batches from last_flushed_id to this. + /// Captured at trigger time to bound how much each flush handles. + end_batch_id: usize, /// Optional channel to send result. done: Option>>, }, @@ -231,7 +236,8 @@ impl WalBuffer { /// * `estimated_size` - Estimated size in bytes (for flush threshold) pub fn track_batch(&self, batch_id: usize, estimated_size: usize) -> BatchDurableWatcher { // Add to pending bytes for size-based flush trigger - self.pending_bytes.fetch_add(estimated_size, Ordering::Relaxed); + self.pending_bytes + .fetch_add(estimated_size, Ordering::Relaxed); // Return a watcher that waits for this batch to become durable // batch_id is 0-indexed, so we wait for watermark > batch_id (i.e., >= batch_id + 1) @@ -264,14 +270,19 @@ impl WalBuffer { // watchers from the old memtable. New watchers will use the new batch IDs. } - /// Trigger an immediate flush. + /// Trigger an immediate flush up to a specific batch. /// /// # Arguments /// + /// * `end_batch_id` - End batch ID (exclusive). Use usize::MAX to flush all pending. /// * `done` - Optional channel to receive flush result - pub fn trigger_flush(&self, done: Option>>) -> Result<()> { + pub fn trigger_flush( + &self, + end_batch_id: usize, + done: Option>>, + ) -> Result<()> { if let Some(tx) = &self.flush_tx { - tx.send(WalFlushMsg::TriggerFlush { done }) + tx.send(WalFlushMsg::TriggerWalFlush { end_batch_id, done }) .map_err(|_| Error::io("WAL flush channel closed", location!()))?; } Ok(()) @@ -311,11 +322,21 @@ impl WalBuffer { let final_path = self.wal_dir.child(format!("{}.arrow", filename).as_str()); // Collect batches from the pending range + // Track estimated size of batches being flushed for pending_bytes update let mut batches = Vec::with_capacity(current_count - flushed_id); let mut batch_positions = Vec::with_capacity(current_count - flushed_id); + let mut flushed_estimated_bytes: usize = 0; for batch_id in flushed_id..current_count { if let Some(stored) = batch_store.get(batch_id) { + // Estimate size same way as track_batch does + let batch_size: usize = stored + .data + .columns() + .iter() + .map(|c| c.get_array_memory_size()) + .sum(); + flushed_estimated_bytes += batch_size; batch_positions.push((batch_id, batches.len())); batches.push(stored.data.clone()); } @@ -340,7 +361,9 @@ impl WalBuffer { // Update watermarks self.last_flushed_id.store(current_count, Ordering::Release); - self.pending_bytes.store(0, Ordering::Relaxed); + // Subtract only the bytes we flushed (not reset to 0) so that writes during flush are tracked + self.pending_bytes + .fetch_sub(flushed_estimated_bytes, Ordering::Relaxed); // Notify durability waiters by updating the durable watermark // This wakes up all BatchDurableWatcher instances waiting for batch_id < current_count @@ -464,18 +487,32 @@ impl WalBuffer { ); // Collect batches and prepare index data + // Track estimated size of batches being flushed for pending_bytes update let mut batches = Vec::with_capacity(current_count - flushed_id); let mut batch_positions = Vec::with_capacity(current_count - flushed_id); let mut index_batches = Vec::with_capacity(current_count - flushed_id); + let mut flushed_estimated_bytes: usize = 0; for batch_id in flushed_id..current_count { if let Some(stored) = batch_store.get(batch_id) { + // Estimate size same way as track_batch does + let batch_size: usize = stored + .data + .columns() + .iter() + .map(|c| c.get_array_memory_size()) + .sum(); + flushed_estimated_bytes += batch_size; batch_positions.push((batch_id, batches.len())); batches.push(stored.data.clone()); index_batches.push(BufferedBatch { batch: stored.data.clone(), row_offset: stored.row_offset, - seq: if stored.seq == 0 { None } else { Some(stored.seq) }, + seq: if stored.seq == 0 { + None + } else { + Some(stored.seq) + }, done: None, }); } @@ -545,7 +582,9 @@ impl WalBuffer { .inner .put(&wal_path, wal_data.into()) .await - .map_err(|e| Error::io(format!("Failed to write WAL file: {}", e), location!()))?; + .map_err(|e| { + Error::io(format!("Failed to write WAL file: {}", e), location!()) + })?; Ok::<_, Error>(start.elapsed()) }; @@ -571,7 +610,9 @@ impl WalBuffer { .inner .put(&wal_path, wal_data.into()) .await - .map_err(|e| Error::io(format!("Failed to write WAL file: {}", e), location!()))?; + .map_err(|e| { + Error::io(format!("Failed to write WAL file: {}", e), location!()) + })?; Ok::<_, Error>(start.elapsed()) }; @@ -584,7 +625,9 @@ impl WalBuffer { // Update watermarks self.last_flushed_id.store(current_count, Ordering::Release); - self.pending_bytes.store(0, Ordering::Relaxed); + // Subtract only the bytes we flushed (not reset to 0) so that writes during flush are tracked + self.pending_bytes + .fetch_sub(flushed_estimated_bytes, Ordering::Relaxed); // Notify durability waiters let _ = self.durable_watermark_tx.send(current_count); @@ -609,6 +652,223 @@ impl WalBuffer { }) } + /// Flush batches up to a specific end_batch_id with index updates. + /// + /// This method flushes batches from `last_flushed_id` to `end_batch_id`, + /// allowing each trigger to flush only the batches that existed at trigger time. + /// + /// # Arguments + /// + /// * `batch_store` - The LockFreeBatchStore to read batches from + /// * `end_batch_id` - End batch ID (exclusive) - flush up to this batch + /// * `indexes` - Optional IndexRegistry to update + /// + /// # Returns + /// + /// A `WalFlushResult` with timing metrics and the WAL entry. + /// Returns empty result if nothing to flush (already flushed past end_batch_id). + pub async fn flush_to_with_index_update( + &self, + batch_store: &LockFreeBatchStore, + end_batch_id: usize, + indexes: Option>, + ) -> Result { + // Get current flush position + let flushed_id = self.last_flushed_id.load(Ordering::Acquire); + + // If we've already flushed past this end, nothing to do + if flushed_id >= end_batch_id { + return Ok(WalFlushResult { + entry: None, + wal_io_duration: std::time::Duration::ZERO, + index_update_duration: std::time::Duration::ZERO, + rows_indexed: 0, + wal_bytes: 0, + }); + } + + let object_store = self + .object_store + .as_ref() + .ok_or_else(|| Error::io("Object store not set on WAL buffer", location!()))?; + + let wal_id = self.next_wal_id.fetch_add(1, Ordering::SeqCst); + let filename = wal_entry_filename(wal_id); + let final_path = self.wal_dir.child(format!("{}.arrow", filename).as_str()); + + // Collect batches in range [flushed_id, end_batch_id) + let mut batches = Vec::with_capacity(end_batch_id - flushed_id); + let mut batch_positions = Vec::with_capacity(end_batch_id - flushed_id); + let mut index_batches = Vec::with_capacity(end_batch_id - flushed_id); + let mut flushed_estimated_bytes: usize = 0; + + for batch_id in flushed_id..end_batch_id { + if let Some(stored) = batch_store.get(batch_id) { + let batch_size: usize = stored + .data + .columns() + .iter() + .map(|c| c.get_array_memory_size()) + .sum(); + flushed_estimated_bytes += batch_size; + batch_positions.push((batch_id, batches.len())); + batches.push(stored.data.clone()); + index_batches.push(BufferedBatch { + batch: stored.data.clone(), + row_offset: stored.row_offset, + seq: if stored.seq == 0 { + None + } else { + Some(stored.seq) + }, + done: None, + }); + } + } + + if batches.is_empty() { + return Ok(WalFlushResult { + entry: None, + wal_io_duration: std::time::Duration::ZERO, + index_update_duration: std::time::Duration::ZERO, + rows_indexed: 0, + wal_bytes: 0, + }); + } + + let rows_to_index: usize = index_batches.iter().map(|b| b.batch.num_rows()).sum(); + + eprintln!( + "[{}] [WAL_FLUSH] Flushing range {}..{} ({} batches, {} rows) to WAL #{}", + log_ts(), + flushed_id, + end_batch_id, + batches.len(), + rows_to_index, + wal_id + ); + + // Prepare WAL I/O data + let schema = batches[0].schema(); + let mut metadata = schema.metadata().clone(); + metadata.insert(WRITER_EPOCH_KEY.to_string(), self.writer_epoch.to_string()); + let schema_with_epoch = Arc::new(ArrowSchema::new_with_metadata( + schema.fields().to_vec(), + metadata, + )); + + // Serialize WAL data + let mut buffer = Vec::new(); + { + let mut writer = FileWriter::try_new(&mut buffer, &schema_with_epoch).map_err(|e| { + Error::io( + format!("Failed to create Arrow IPC writer: {}", e), + location!(), + ) + })?; + + for batch in &batches { + writer.write(batch).map_err(|e| { + Error::io( + format!("Failed to write batch to Arrow IPC: {}", e), + location!(), + ) + })?; + } + + writer.finish().map_err(|e| { + Error::io( + format!("Failed to finish Arrow IPC file: {}", e), + location!(), + ) + })?; + } + + let wal_bytes = buffer.len(); + + // WAL I/O and index update in parallel + let wal_path = final_path.clone(); + let wal_data = Bytes::from(buffer); + let store = object_store.clone(); + + let (wal_result, index_result) = if let Some(idx_registry) = indexes { + let wal_future = async { + let start = Instant::now(); + store + .inner + .put(&wal_path, wal_data.into()) + .await + .map_err(|e| { + Error::io(format!("Failed to write WAL file: {}", e), location!()) + })?; + Ok::<_, Error>(start.elapsed()) + }; + + let index_future = async { + let start = Instant::now(); + tokio::task::spawn_blocking(move || { + idx_registry.insert_batches_parallel(&index_batches) + }) + .await + .map_err(|e| Error::Internal { + message: format!("Index update task panicked: {}", e), + location: location!(), + })??; + Ok::<_, Error>(start.elapsed()) + }; + + tokio::join!(wal_future, index_future) + } else { + let wal_future = async { + let start = Instant::now(); + store + .inner + .put(&wal_path, wal_data.into()) + .await + .map_err(|e| { + Error::io(format!("Failed to write WAL file: {}", e), location!()) + })?; + Ok::<_, Error>(start.elapsed()) + }; + + (wal_future.await, Ok(std::time::Duration::ZERO)) + }; + + let wal_io_duration = wal_result?; + let index_update_duration = index_result?; + + eprintln!( + "[{}] [WAL_FLUSH] WAL #{} complete: S3={}ms, index={}ms, {} batches", + log_ts(), + wal_id, + wal_io_duration.as_millis(), + index_update_duration.as_millis(), + batches.len() + ); + + // Update watermarks + self.last_flushed_id.store(end_batch_id, Ordering::Release); + self.pending_bytes + .fetch_sub(flushed_estimated_bytes, Ordering::Relaxed); + + // Notify durability waiters + let _ = self.durable_watermark_tx.send(end_batch_id); + + let entry = WalEntry { + id: wal_id, + writer_epoch: self.writer_epoch, + batch_positions, + }; + + Ok(WalFlushResult { + entry: Some(entry), + wal_io_duration, + index_update_duration, + rows_indexed: rows_to_index, + wal_bytes, + }) + } + /// Get the current WAL ID (last written + 1). pub fn next_wal_id(&self) -> u64 { self.next_wal_id.load(Ordering::SeqCst) @@ -665,18 +925,32 @@ impl WalBuffer { let final_path = self.wal_dir.child(format!("{}.arrow", filename).as_str()); // Collect batches and prepare index data + // Track estimated size of batches being flushed for pending_bytes update let mut batches = Vec::with_capacity(flush_end - flushed_id); let mut batch_positions = Vec::with_capacity(flush_end - flushed_id); let mut index_batches = Vec::with_capacity(flush_end - flushed_id); + let mut flushed_estimated_bytes: usize = 0; for batch_id in flushed_id..flush_end { if let Some(stored) = batch_store.get(batch_id) { + // Estimate size same way as track_batch does + let batch_size: usize = stored + .data + .columns() + .iter() + .map(|c| c.get_array_memory_size()) + .sum(); + flushed_estimated_bytes += batch_size; batch_positions.push((batch_id, batches.len())); batches.push(stored.data.clone()); index_batches.push(BufferedBatch { batch: stored.data.clone(), row_offset: stored.row_offset, - seq: if stored.seq == 0 { None } else { Some(stored.seq) }, + seq: if stored.seq == 0 { + None + } else { + Some(stored.seq) + }, done: None, }); } @@ -694,7 +968,7 @@ impl WalBuffer { let rows_to_index: usize = index_batches.iter().map(|b| b.batch.num_rows()).sum(); eprintln!( - "[{:.3}] [WAL_FLUSH] flush_limited: {} batches (IDs {}..{}), {} rows to index", + "[{}] [WAL_FLUSH] flush_limited: {} batches (IDs {}..{}), {} rows to index", log_ts(), batches.len(), flushed_id, @@ -741,7 +1015,7 @@ impl WalBuffer { let wal_bytes = buffer.len(); eprintln!( - "[{:.3}] [WAL_FLUSH] Serialized {} bytes in {}ms", + "[{}] [WAL_FLUSH] Serialized {} bytes in {}ms", log_ts(), wal_bytes, serialize_start.elapsed().as_millis() @@ -760,7 +1034,9 @@ impl WalBuffer { .inner .put(&wal_path, wal_data.into()) .await - .map_err(|e| Error::io(format!("Failed to write WAL file: {}", e), location!()))?; + .map_err(|e| { + Error::io(format!("Failed to write WAL file: {}", e), location!()) + })?; Ok::<_, Error>(start.elapsed()) }; @@ -785,7 +1061,9 @@ impl WalBuffer { .inner .put(&wal_path, wal_data.into()) .await - .map_err(|e| Error::io(format!("Failed to write WAL file: {}", e), location!()))?; + .map_err(|e| { + Error::io(format!("Failed to write WAL file: {}", e), location!()) + })?; Ok::<_, Error>(start.elapsed()) }; @@ -796,7 +1074,7 @@ impl WalBuffer { let wal_io_duration = wal_result?; let index_update_duration = index_result?; eprintln!( - "[{:.3}] [WAL_FLUSH] S3 put: {}ms, index update: {}ms, {} rows", + "[{}] [WAL_FLUSH] S3 put: {}ms, index update: {}ms, {} rows", log_ts(), wal_io_duration.as_millis(), index_update_duration.as_millis(), @@ -805,10 +1083,9 @@ impl WalBuffer { // Update watermarks - only advance to the batches we actually flushed self.last_flushed_id.store(flush_end, Ordering::Release); - // Only reset pending_bytes if we flushed everything - if flush_end >= current_count { - self.pending_bytes.store(0, Ordering::Relaxed); - } + // Subtract only the bytes we flushed (not reset to 0) so that writes during flush are tracked + self.pending_bytes + .fetch_sub(flushed_estimated_bytes, Ordering::Relaxed); // Notify durability waiters let _ = self.durable_watermark_tx.send(flush_end); @@ -972,22 +1249,33 @@ mod tests { // Create a LockFreeBatchStore with some data let schema = create_test_schema(); + let batch1 = create_test_batch(&schema, 10); + let batch2 = create_test_batch(&schema, 5); + + // Compute actual sizes same way as flush does (for consistent tracking) + let batch1_size: usize = batch1 + .columns() + .iter() + .map(|c| c.get_array_memory_size()) + .sum(); + let batch2_size: usize = batch2 + .columns() + .iter() + .map(|c| c.get_array_memory_size()) + .sum(); + let batch_store = LockFreeBatchStore::with_capacity(10); - batch_store - .append(create_test_batch(&schema, 10), 1) - .unwrap(); - batch_store - .append(create_test_batch(&schema, 5), 2) - .unwrap(); + batch_store.append(batch1, 1).unwrap(); + batch_store.append(batch2, 2).unwrap(); - // Track batch IDs in WAL buffer - let mut watcher1 = buffer.track_batch(0, 1024); - let mut watcher2 = buffer.track_batch(1, 512); + // Track batch IDs in WAL buffer with actual sizes + let mut watcher1 = buffer.track_batch(0, batch1_size); + let mut watcher2 = buffer.track_batch(1, batch2_size); // Verify initial state assert!(!watcher1.is_durable()); assert!(!watcher2.is_durable()); - assert_eq!(buffer.pending_bytes(), 1536); + assert_eq!(buffer.pending_bytes(), batch1_size + batch2_size); // Flush let entry = buffer.flush(&batch_store).await.unwrap().unwrap(); @@ -995,6 +1283,7 @@ mod tests { assert_eq!(entry.writer_epoch, 1); assert_eq!(entry.batch_positions.len(), 2); assert_eq!(buffer.last_flushed_id(), 2); + // After flush, pending_bytes should be 0 since we tracked the same sizes assert_eq!(buffer.pending_bytes(), 0); // Watchers should be notified diff --git a/rust/lance/src/dataset/mem_wal/write/writer.rs b/rust/lance/src/dataset/mem_wal/write/writer.rs index d0b78e52c60..e6357a96e9f 100644 --- a/rust/lance/src/dataset/mem_wal/write/writer.rs +++ b/rust/lance/src/dataset/mem_wal/write/writer.rs @@ -28,11 +28,10 @@ use uuid::Uuid; use std::time::Instant; -/// Get a timestamp string for debug logging (seconds since program start). -fn log_ts() -> f64 { - use std::sync::OnceLock; - static START: OnceLock = OnceLock::new(); - START.get_or_init(Instant::now).elapsed().as_secs_f64() +/// Get a timestamp for debug logging (HH:MM:SS.mmm format). +/// Uses wall clock time so all threads share the same time reference. +fn log_ts() -> String { + chrono::Local::now().format("%H:%M:%S%.3f").to_string() } use super::batch_write::{ @@ -85,8 +84,24 @@ struct WriterState { /// Shared flag to prevent duplicate memtable flush requests. type FlushRequestedFlag = Arc; -/// Shared flag for tracking pending flush requests. -type FlushPendingFlag = Arc; +/// Counter for tracking how many WAL flush thresholds have been triggered. +/// This allows multiple parallel flushes - one per 10MB threshold crossing. +type WalFlushTriggerCount = Arc; + +/// Tracks the last time a WAL flush was triggered (millis since start). +type LastWalFlushTriggerTime = Arc; + +/// Reference start time for tracking flush trigger times. +fn start_time() -> std::time::Instant { + use std::sync::OnceLock; + static START: OnceLock = OnceLock::new(); + *START.get_or_init(std::time::Instant::now) +} + +/// Get current time as millis since start. +fn now_millis() -> u64 { + start_time().elapsed().as_millis() as u64 +} struct SharedWriterState { state: Arc>, @@ -96,8 +111,10 @@ struct SharedWriterState { config: RegionWriterConfig, /// Shared flag to track if a memtable flush request is already pending. flush_requested: FlushRequestedFlag, - /// Shared flag to track if a WAL flush request is already pending. - wal_flush_pending: FlushPendingFlag, + /// Counter for WAL flush threshold crossings (allows multiple parallel flushes). + wal_flush_trigger_count: WalFlushTriggerCount, + /// Last time a WAL flush was triggered (millis since start). + last_wal_flush_trigger_time: LastWalFlushTriggerTime, } impl SharedWriterState { @@ -108,7 +125,8 @@ impl SharedWriterState { memtable_flush_tx: mpsc::UnboundedSender, config: RegionWriterConfig, flush_requested: FlushRequestedFlag, - wal_flush_pending: FlushPendingFlag, + wal_flush_trigger_count: WalFlushTriggerCount, + last_wal_flush_trigger_time: LastWalFlushTriggerTime, ) -> Self { Self { state, @@ -117,7 +135,8 @@ impl SharedWriterState { memtable_flush_tx, config, flush_requested, - wal_flush_pending, + wal_flush_trigger_count, + last_wal_flush_trigger_time, } } } @@ -200,27 +219,133 @@ impl WriterStateOps for Arc { fn maybe_trigger_wal_flush(&self) { let pending_bytes = self.wal_buffer.pending_bytes(); - if pending_bytes >= self.config.max_wal_buffer_size { - // Only send trigger if not already pending (avoid flooding the channel) + let threshold = self.config.max_wal_buffer_size; + + // Check time-based trigger first + let time_trigger = if let Some(interval) = self.config.max_flush_interval { + let interval_millis = interval.as_millis() as u64; + let last_trigger = self + .last_wal_flush_trigger_time + .load(std::sync::atomic::Ordering::Acquire); + let now = now_millis(); + + // If last_trigger is 0, this is the first write - start the timer but don't flush + if last_trigger == 0 { + let _ = self.last_wal_flush_trigger_time.compare_exchange( + 0, + now, + std::sync::atomic::Ordering::AcqRel, + std::sync::atomic::Ordering::Acquire, + ); + None + } else { + let elapsed = now.saturating_sub(last_trigger); + + if elapsed >= interval_millis && pending_bytes > 0 { + // Try to claim this time-based trigger + if self + .last_wal_flush_trigger_time + .compare_exchange( + last_trigger, + now, + std::sync::atomic::Ordering::AcqRel, + std::sync::atomic::Ordering::Acquire, + ) + .is_ok() + { + Some(now) + } else { + None + } + } else { + None + } + } + } else { + None + }; + + // If time trigger fired, send a flush message + if time_trigger.is_some() { + let end_batch_id = self + .state + .try_read() + .map(|s| s.memtable.batch_count()) + .unwrap_or(0); + + eprintln!( + "[{}][WAL_TIME_TRIGGER] pending_bytes={}, interval elapsed, triggering flush to batch #{}", + log_ts(), + pending_bytes, + end_batch_id + ); + let _ = self.wal_flush_tx.send(WalFlushMsg::TriggerWalFlush { + end_batch_id, + done: None, + }); + // Time trigger sent, don't also send size trigger in same call + return; + } + + // Check size-based trigger + if threshold == 0 { + return; + } + + // Calculate how many thresholds have been crossed (1 at 10MB, 2 at 20MB, etc.) + let thresholds_crossed = pending_bytes / threshold; + + // Try to trigger a flush for each unclaimed threshold crossing + // This allows multiple parallel flushes - one per 10MB boundary + loop { + let current_count = self + .wal_flush_trigger_count + .load(std::sync::atomic::Ordering::Acquire); + + if thresholds_crossed <= current_count { + // No new threshold crossed, nothing to trigger + break; + } + + // Try to claim the next threshold if self - .wal_flush_pending + .wal_flush_trigger_count .compare_exchange( - false, - true, + current_count, + current_count + 1, std::sync::atomic::Ordering::AcqRel, std::sync::atomic::Ordering::Acquire, ) .is_ok() { + // Capture the current batch count at trigger time + // This bounds how much this flush will handle + let end_batch_id = self + .state + .try_read() + .map(|s| s.memtable.batch_count()) + .unwrap_or(0); + + // Update last trigger time so time-based trigger doesn't fire immediately after + self.last_wal_flush_trigger_time + .store(now_millis(), std::sync::atomic::Ordering::Release); + eprintln!( - "[{:.3}][WAL_SIZE_TRIGGER] pending_bytes={} >= threshold={}, triggering flush", + "[{}][WAL_SIZE_TRIGGER] pending_bytes={}, threshold #{} crossed ({}MB), triggering flush to batch #{}", log_ts(), pending_bytes, - self.config.max_wal_buffer_size + current_count + 1, + (current_count + 1) * threshold / (1024 * 1024), + end_batch_id ); - // Trigger WAL flush (fire-and-forget, no need to wait) - let _ = self.wal_flush_tx.send(WalFlushMsg::TriggerFlush { done: None }); + // Trigger WAL flush with captured batch range + let _ = self.wal_flush_tx.send(WalFlushMsg::TriggerWalFlush { + end_batch_id, + done: None, + }); + // Continue loop to check if more thresholds need triggering } + // If compare_exchange failed, another thread claimed this threshold, retry } } } @@ -266,25 +391,31 @@ impl BackpressureProvider for SharedWriterState { } async fn trigger_memtable_flush_and_wait(&self) { - eprintln!("[{:.3}][TRIGGER] Sending FlushMemTable message and waiting for completion", log_ts()); + eprintln!( + "[{}][TRIGGER] Sending FlushMemTable message and waiting for completion", + log_ts() + ); let (tx, rx) = tokio::sync::oneshot::channel(); let send_result = self .memtable_flush_tx .send(FlushMessage::FlushMemTable { done: Some(tx) }); if send_result.is_err() { - eprintln!("[{:.3}][TRIGGER] Failed to send FlushMemTable message", log_ts()); + eprintln!( + "[{}][TRIGGER] Failed to send FlushMemTable message", + log_ts() + ); return; } // Wait for the flush to complete match rx.await { Ok(Ok(_)) => { - eprintln!("[{:.3}][TRIGGER] Flush completed successfully", log_ts()); + eprintln!("[{}][TRIGGER] Flush completed successfully", log_ts()); } Ok(Err(e)) => { - eprintln!("[{:.3}][TRIGGER] Flush failed: {}", log_ts(), e); + eprintln!("[{}][TRIGGER] Flush failed: {}", log_ts(), e); } Err(_) => { - eprintln!("[{:.3}][TRIGGER] Flush channel closed unexpectedly", log_ts()); + eprintln!("[{}][TRIGGER] Flush channel closed unexpectedly", log_ts()); } } } @@ -330,8 +461,10 @@ pub struct RegionWriter { backpressure: BackpressureController, /// Shared flag to prevent duplicate memtable flush requests. flush_requested: FlushRequestedFlag, - /// Shared flag to prevent duplicate WAL flush requests. - wal_flush_pending: FlushPendingFlag, + /// Counter for WAL flush threshold crossings (allows multiple parallel flushes). + wal_flush_trigger_count: WalFlushTriggerCount, + /// Last time a WAL flush was triggered (millis since start). + last_wal_flush_trigger_time: LastWalFlushTriggerTime, } impl RegionWriter { @@ -455,9 +588,14 @@ impl RegionWriter { let flush_requested: FlushRequestedFlag = Arc::new(std::sync::atomic::AtomicBool::new(false)); - // Shared flag to prevent duplicate WAL flush requests - let wal_flush_pending: FlushPendingFlag = - Arc::new(std::sync::atomic::AtomicBool::new(false)); + // Counter for WAL flush threshold crossings (allows multiple parallel flushes) + let wal_flush_trigger_count: WalFlushTriggerCount = + Arc::new(std::sync::atomic::AtomicUsize::new(0)); + + // Last time a WAL flush was triggered (for time-based flush) + // Initialize to 0 - timer starts on first write, not writer creation + let last_wal_flush_trigger_time: LastWalFlushTriggerTime = + Arc::new(std::sync::atomic::AtomicU64::new(0)); // Create task executor let task_executor = Arc::new(TaskExecutor::new()); @@ -465,20 +603,18 @@ impl RegionWriter { // Start background WAL flush handler // The WAL flush handler does parallel WAL I/O + index updates eprintln!( - "[{:.3}][WRITER] Creating wal_flusher with flush_interval={:?}", - log_ts(), config.max_flush_interval + "[{}][WRITER] Creating wal_flusher with flush_interval={:?}", + log_ts(), + config.max_flush_interval ); let wal_handler = WalFlushHandler::new( wal_buffer.clone(), state.clone(), indexes_arc.clone(), // Pass indexes for WAL-coupled updates - config.max_flush_interval, config.max_memtable_size, memtable_flush_tx.clone(), stats.clone(), backpressure.stats().clone(), - config.stats_log_interval, - wal_flush_pending.clone(), ); task_executor.add_handler( "wal_flusher".to_string(), @@ -503,13 +639,13 @@ impl RegionWriter { stats.clone(), flush_requested.clone(), // Share flag with writer ); - eprintln!("[{:.3}][WRITER] Adding memtable_flusher handler", log_ts()); + eprintln!("[{}][WRITER] Adding memtable_flusher handler", log_ts()); task_executor.add_handler( "memtable_flusher".to_string(), Box::new(memtable_handler), memtable_flush_rx, )?; - eprintln!("[{:.3}][WRITER] memtable_flusher handler added", log_ts()); + eprintln!("[{}][WRITER] memtable_flusher handler added", log_ts()); let (write_batch_tx, write_batch_rx) = write_batch_channel(); @@ -521,7 +657,8 @@ impl RegionWriter { memtable_flush_tx.clone(), config.clone(), flush_requested.clone(), // Share flag with flush handler - wal_flush_pending.clone(), + wal_flush_trigger_count.clone(), + last_wal_flush_trigger_time.clone(), )); // Start the single writer task @@ -550,7 +687,8 @@ impl RegionWriter { write_batch_tx, backpressure, flush_requested, - wal_flush_pending, + wal_flush_trigger_count, + last_wal_flush_trigger_time, }) } @@ -573,7 +711,7 @@ impl RegionWriter { static PUT_COUNT: std::sync::atomic::AtomicU64 = std::sync::atomic::AtomicU64::new(0); let count = PUT_COUNT.fetch_add(1, std::sync::atomic::Ordering::Relaxed); if count % 100 == 0 { - eprintln!("[{:.3}][PUT] put #{}", log_ts(), count); + eprintln!("[{}][PUT] put #{}", log_ts(), count); } let num_rows = batch.num_rows(); @@ -592,7 +730,8 @@ impl RegionWriter { self.memtable_flush_tx.clone(), self.config.clone(), self.flush_requested.clone(), - self.wal_flush_pending.clone(), + self.wal_flush_trigger_count.clone(), + self.last_wal_flush_trigger_time.clone(), ); let bp_start = std::time::Instant::now(); self.backpressure @@ -601,8 +740,9 @@ impl RegionWriter { let bp_elapsed = bp_start.elapsed(); if bp_elapsed.as_millis() > 1 { eprintln!( - "[{:.3}][BP] waited {}ms | remaining_batches={} total_batches={}", - log_ts(), bp_elapsed.as_millis(), + "[{}][BP] waited {}ms | remaining_batches={} total_batches={}", + log_ts(), + bp_elapsed.as_millis(), shared_state.remaining_batch_capacity(), shared_state.batch_capacity() ); @@ -627,8 +767,8 @@ impl RegionWriter { // 4. Wait for durability if configured let durable_watcher = if self.config.durable_write { - // Must trigger a flush to ensure durability - self.wal_buffer.trigger_flush(None)?; + // Must trigger a flush to ensure durability (flush up to and including this batch) + self.wal_buffer.trigger_flush(result.batch_id + 1, None)?; result .durable_watcher .clone() @@ -852,11 +992,7 @@ impl RegionWriter { // Flush WAL using watermark-based approach let state = self.state.read().await; - if let Err(e) = self - .wal_buffer - .flush(&state.memtable.batch_store()) - .await - { + if let Err(e) = self.wal_buffer.flush(&state.memtable.batch_store()).await { warn!("Error flushing WAL during close: {}", e); } drop(state); @@ -894,17 +1030,17 @@ struct WalFlushHandler { state: Arc>, /// Indexes for WAL-coupled updates (updated in parallel with WAL I/O). indexes: Option>, - flush_interval: Option, + #[allow(dead_code)] max_memtable_size: usize, memtable_flush_tx: mpsc::UnboundedSender, stats: SharedWriteStats, backpressure_stats: Arc, /// Counter for periodic stats logging (log every N ticks). + #[allow(dead_code)] tick_count: u64, /// Log stats every this many ticks. + #[allow(dead_code)] stats_log_interval_ticks: u64, - /// Shared flag to clear after WAL flush completes. - wal_flush_pending: FlushPendingFlag, } impl WalFlushHandler { @@ -913,75 +1049,50 @@ impl WalFlushHandler { wal_buffer: Arc, state: Arc>, indexes: Option>, - flush_interval: Option, max_memtable_size: usize, memtable_flush_tx: mpsc::UnboundedSender, stats: SharedWriteStats, backpressure_stats: Arc, - stats_log_interval: Option, - wal_flush_pending: FlushPendingFlag, ) -> Self { - // Calculate how many ticks between stats logs - // If either interval is None, disable stats logging (set to 0) - let stats_log_interval_ticks = match (flush_interval, stats_log_interval) { - (Some(flush_int), Some(log_int)) if !flush_int.is_zero() => { - // log_interval / flush_interval = number of ticks - (log_int.as_millis() / flush_int.as_millis()).max(1) as u64 - } - _ => 0, // Disabled - }; - Self { wal_buffer, state, indexes, - flush_interval, max_memtable_size, memtable_flush_tx, stats, backpressure_stats, tick_count: 0, - stats_log_interval_ticks, - wal_flush_pending, + stats_log_interval_ticks: 0, } } } #[async_trait] impl MessageHandler for WalFlushHandler { - fn tickers(&mut self) -> Vec<(Duration, MessageFactory)> { - if let Some(interval) = self.flush_interval { - vec![(interval, Box::new(|| WalFlushMsg::Tick))] - } else { - vec![] - } - } + // No tickers - time-based flush is now checked in maybe_trigger_wal_flush() + // This eliminates the priority conflict between Tick and TriggerWalFlush messages async fn handle(&mut self, message: WalFlushMsg) -> Result<()> { match message { - WalFlushMsg::TriggerFlush { done } => { + WalFlushMsg::TriggerWalFlush { end_batch_id, done } => { eprintln!( - "[{:.3}][WAL_FLUSH_HANDLER] Received TriggerFlush, starting flush", - log_ts() + "[{}][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #{}, starting flush", + log_ts(), + end_batch_id ); - let result = self.do_flush().await; - // Clear the pending flag so new triggers can be sent - self.wal_flush_pending - .store(false, std::sync::atomic::Ordering::Release); + let result = self.do_flush_to(end_batch_id).await; if let Some(tx) = done { let _ = tx.send(result.map(|entry| entry.map(|e| e.id).unwrap_or(0))); } } WalFlushMsg::Tick => { - let pending_bytes = self.wal_buffer.pending_bytes(); - eprintln!("[{:.3}] [WAL_TICK] pending_bytes={}", log_ts(), pending_bytes); - if pending_bytes > 0 { - debug!( - "WAL flush triggered by Tick with {} pending bytes", - pending_bytes - ); - let _ = self.do_flush().await; - } + // Tick is deprecated - time-based flush is now handled in maybe_trigger_wal_flush() + // This code path should not be hit in normal operation + eprintln!( + "[{}][WAL_TICK] DEPRECATED: Tick message received, this should not happen", + log_ts() + ); // Periodic stats logging (if enabled) if self.stats_log_interval_ticks > 0 { @@ -1043,6 +1154,7 @@ impl WalFlushHandler { } } + #[allow(dead_code)] async fn do_flush(&self) -> Result> { let start = Instant::now(); @@ -1062,7 +1174,7 @@ impl WalFlushHandler { } eprintln!( - "[{:.3}] [WAL_FLUSH] Starting: {} pending batches (IDs {}..{}), {} bytes", + "[{}] [WAL_FLUSH] Starting: {} pending batches (IDs {}..{}), {} bytes", log_ts(), pending_count, last_flushed, @@ -1083,7 +1195,7 @@ impl WalFlushHandler { .map(|e| e.batch_positions.len()) .unwrap_or(0); eprintln!( - "[{:.3}][WAL_FLUSH] S3 I/O complete: {}ms for {} batches ({} bytes)", + "[{}][WAL_FLUSH] S3 I/O complete: {}ms for {} batches ({} bytes)", log_ts(), s3_elapsed.as_millis(), batches_flushed, @@ -1107,13 +1219,16 @@ impl WalFlushHandler { // Record sub-component stats for bottleneck diagnosis self.stats.record_wal_io(flush_result.wal_io_duration); - self.stats - .record_index_update(flush_result.index_update_duration, flush_result.rows_indexed); + self.stats.record_index_update( + flush_result.index_update_duration, + flush_result.rows_indexed, + ); } eprintln!( - "[{:.3}][WAL_FLUSH] Complete: total={}ms, {} batches flushed", - log_ts(), start.elapsed().as_millis(), + "[{}][WAL_FLUSH] Complete: total={}ms, {} batches flushed", + log_ts(), + start.elapsed().as_millis(), batches_flushed ); @@ -1122,6 +1237,70 @@ impl WalFlushHandler { Ok(flush_result.entry) } + /// Flush batches up to a specific end_batch_id. + /// + /// This method flushes batches in range [last_flushed_id, end_batch_id), + /// ensuring each trigger handles only the batches that existed at trigger time. + async fn do_flush_to(&self, end_batch_id: usize) -> Result> { + let start = Instant::now(); + + // Get the batch_store from memtable + let batch_store = { + let state = self.state.read().await; + state.memtable.batch_store() + }; + + let last_flushed = self.wal_buffer.last_flushed_id(); + + // If we've already flushed past this end, nothing to do + if last_flushed >= end_batch_id { + eprintln!( + "[{}][WAL_FLUSH_HANDLER] Skipping flush to batch #{} - already at #{}", + log_ts(), + end_batch_id, + last_flushed + ); + return Ok(None); + } + + // Flush up to the specified end_batch_id + let flush_result = self + .wal_buffer + .flush_to_with_index_update(&batch_store, end_batch_id, self.indexes.clone()) + .await?; + + let batches_flushed = flush_result + .entry + .as_ref() + .map(|e| e.batch_positions.len()) + .unwrap_or(0); + + // Update MemTable with WAL mapping + if let Some(ref entry) = flush_result.entry { + let mut state = self.state.write().await; + let batch_ids: Vec = entry.batch_positions.iter().map(|(id, _)| *id).collect(); + let positions: Vec = entry.batch_positions.iter().map(|(_, pos)| *pos).collect(); + state + .memtable + .mark_wal_flushed(&batch_ids, entry.id, &positions); + } + + // Record WAL flush stats + if batches_flushed > 0 { + self.stats + .record_wal_flush(start.elapsed(), flush_result.wal_bytes, batches_flushed); + self.stats.record_wal_io(flush_result.wal_io_duration); + self.stats.record_index_update( + flush_result.index_update_duration, + flush_result.rows_indexed, + ); + } + + self.maybe_trigger_memtable_flush().await; + + Ok(flush_result.entry) + } + async fn maybe_trigger_memtable_flush(&self) { let should_flush = { let state = self.state.read().await; @@ -1221,7 +1400,7 @@ impl MessageHandler for MemTableFlushHandler { let pending_wal_bytes = self.wal_buffer.pending_bytes(); drop(state); eprintln!( - "[{:.3}][FLUSH_HANDLER] Received FlushMemTable: batches={}, remaining={}, pending_wal_bytes={}", + "[{}][FLUSH_HANDLER] Received FlushMemTable: batches={}, remaining={}, pending_wal_bytes={}", log_ts(), batch_count, remaining, pending_wal_bytes ); let result = self.do_flush().await; @@ -1243,13 +1422,13 @@ impl MessageHandler for MemTableFlushHandler { let remaining = state.memtable.remaining_batch_capacity(); let all_flushed = state.memtable.all_flushed_to_wal(); eprintln!( - "[{:.3}][FLUSH_HANDLER] Tick: size_exceeded={} capacity_reached={} batch_store_full={} remaining={} all_flushed={}", + "[{}][FLUSH_HANDLER] Tick: size_exceeded={} capacity_reached={} batch_store_full={} remaining={} all_flushed={}", log_ts(), size_exceeded, capacity_reached, batch_store_full, remaining, all_flushed ); (size_exceeded || capacity_reached || batch_store_full) && all_flushed }; if should_flush { - eprintln!("[{:.3}][FLUSH_HANDLER] Tick triggering flush", log_ts()); + eprintln!("[{}][FLUSH_HANDLER] Tick triggering flush", log_ts()); let _ = self.do_flush().await; } } @@ -1270,14 +1449,14 @@ impl MemTableFlushHandler { /// WAL replay will recover the data on restart. async fn freeze_memtable(&mut self) -> Result { let freeze_start = std::time::Instant::now(); - eprintln!("[{:.3}][FREEZE] Starting freeze_memtable", log_ts()); + eprintln!("[{}][FREEZE] Starting freeze_memtable", log_ts()); // Get batch_store reference for watermark-based flush let batch_store = { let state = self.state.read().await; let remaining = state.memtable.remaining_batch_capacity(); eprintln!( - "[{:.3}][FREEZE] WAL flush: pending_bytes={}, remaining_capacity={}", + "[{}][FREEZE] WAL flush: pending_bytes={}, remaining_capacity={}", log_ts(), self.wal_buffer.pending_bytes(), remaining @@ -1292,7 +1471,7 @@ impl MemTableFlushHandler { .flush_with_index_update(&batch_store, self.indexes.clone()) .await?; eprintln!( - "[{:.3}][FREEZE] WAL S3 flush took {}ms", + "[{}][FREEZE] WAL S3 flush took {}ms", log_ts(), s3_start.elapsed().as_millis() ); @@ -1300,10 +1479,8 @@ impl MemTableFlushHandler { // Update state with WAL mapping if let Some(ref entry) = flush_result.entry { let mut state = self.state.write().await; - let batch_ids: Vec = - entry.batch_positions.iter().map(|(id, _)| *id).collect(); - let positions: Vec = - entry.batch_positions.iter().map(|(_, pos)| *pos).collect(); + let batch_ids: Vec = entry.batch_positions.iter().map(|(id, _)| *id).collect(); + let positions: Vec = entry.batch_positions.iter().map(|(_, pos)| *pos).collect(); state .memtable .mark_wal_flushed(&batch_ids, entry.id, &positions); @@ -1316,8 +1493,9 @@ impl MemTableFlushHandler { let old_batch_count = state.memtable.batch_capacity() - state.memtable.remaining_batch_capacity(); eprintln!( - "[{:.3}][FREEZE] Swapping memtable: old had {} batches", - log_ts(), old_batch_count + "[{}][FREEZE] Swapping memtable: old had {} batches", + log_ts(), + old_batch_count ); // Create a new empty memtable with the next generation @@ -1368,8 +1546,9 @@ impl MemTableFlushHandler { ); eprintln!( - "[{:.3}][FREEZE] Complete: gen={} imm_queue={} new_capacity={} took={}ms", - log_ts(), next_generation - 1, + "[{}][FREEZE] Complete: gen={} imm_queue={} new_capacity={} took={}ms", + log_ts(), + next_generation - 1, state.immutable_memtables.len(), state.memtable.remaining_batch_capacity(), freeze_start.elapsed().as_millis() @@ -1381,7 +1560,10 @@ impl MemTableFlushHandler { /// Flush the oldest immutable memtable from the queue. async fn flush_oldest_immutable(&mut self) -> Result> { let start = Instant::now(); - eprintln!("[{:.3}][LANCE_FLUSH] Starting flush_oldest_immutable", log_ts()); + eprintln!( + "[{}][LANCE_FLUSH] Starting flush_oldest_immutable", + log_ts() + ); // Pop the oldest immutable memtable from the queue let immutable = { @@ -1390,13 +1572,14 @@ impl MemTableFlushHandler { }; let Some(immutable) = immutable else { - eprintln!("[{:.3}][LANCE_FLUSH] No immutable memtable in queue", log_ts()); + eprintln!("[{}][LANCE_FLUSH] No immutable memtable in queue", log_ts()); return Ok(None); }; eprintln!( - "[{:.3}][LANCE_FLUSH] Flushing memtable with {} rows, {} batches", - log_ts(), immutable.memtable().row_count(), + "[{}][LANCE_FLUSH] Flushing memtable with {} rows, {} batches", + log_ts(), + immutable.memtable().row_count(), immutable.memtable().batch_count() ); @@ -1407,8 +1590,9 @@ impl MemTableFlushHandler { .flush(immutable.memtable(), &self.epoch_guard) .await?; eprintln!( - "[{:.3}][LANCE_FLUSH] flusher.flush() took {}ms", - log_ts(), flusher_start.elapsed().as_millis() + "[{}][LANCE_FLUSH] flusher.flush() took {}ms", + log_ts(), + flusher_start.elapsed().as_millis() ); // Record stats @@ -1437,11 +1621,17 @@ impl MemTableFlushHandler { // This prevents spurious flushes from queued messages let (batch_count, pending_wal_bytes) = { let state = self.state.read().await; - (state.memtable.batch_count(), self.wal_buffer.pending_bytes()) + ( + state.memtable.batch_count(), + self.wal_buffer.pending_bytes(), + ) }; if batch_count == 0 && pending_wal_bytes == 0 { - eprintln!("[{:.3}][MEMTABLE_FLUSH] Skipping flush - no data (batches=0, pending_wal_bytes=0)", log_ts()); + eprintln!( + "[{}][MEMTABLE_FLUSH] Skipping flush - no data (batches=0, pending_wal_bytes=0)", + log_ts() + ); // Return a dummy result - no actual flush needed return Ok(FlushResult { generation: lance_index::mem_wal::FlushedGeneration { @@ -1455,8 +1645,10 @@ impl MemTableFlushHandler { } eprintln!( - "[{:.3}][MEMTABLE_FLUSH] Starting do_flush: {} batches, {} pending WAL bytes", - log_ts(), batch_count, pending_wal_bytes + "[{}][MEMTABLE_FLUSH] Starting do_flush: {} batches, {} pending WAL bytes", + log_ts(), + batch_count, + pending_wal_bytes ); let flush_start = std::time::Instant::now(); @@ -1464,8 +1656,9 @@ impl MemTableFlushHandler { let freeze_start = std::time::Instant::now(); let _next_generation = self.freeze_memtable().await?; eprintln!( - "[{:.3}][MEMTABLE_FLUSH] freeze_memtable took {}ms", - log_ts(), freeze_start.elapsed().as_millis() + "[{}][MEMTABLE_FLUSH] freeze_memtable took {}ms", + log_ts(), + freeze_start.elapsed().as_millis() ); // Step 2: Flush from queue @@ -1473,7 +1666,7 @@ impl MemTableFlushHandler { let result = match self.flush_oldest_immutable().await? { Some(result) => { eprintln!( - "[{:.3}][MEMTABLE_FLUSH] flush_oldest_immutable (Lance format) took {}ms, {} rows, {} fragments", + "[{}][MEMTABLE_FLUSH] flush_oldest_immutable (Lance format) took {}ms, {} rows, {} fragments", log_ts(), lance_start.elapsed().as_millis(), result.rows_flushed, result.fragments_created @@ -1487,8 +1680,9 @@ impl MemTableFlushHandler { }; eprintln!( - "[{:.3}][MEMTABLE_FLUSH] do_flush complete: {}ms (freeze={}ms, lance={}ms)", - log_ts(), flush_start.elapsed().as_millis(), + "[{}][MEMTABLE_FLUSH] do_flush complete: {}ms (freeze={}ms, lance={}ms)", + log_ts(), + flush_start.elapsed().as_millis(), freeze_start.elapsed().as_millis(), lance_start.elapsed().as_millis() ); From 4895ac4e8a35ef444c1fa2242d6fe55707b24891 Mon Sep 17 00:00:00 2001 From: Heng Ge Date: Wed, 21 Jan 2026 22:48:25 -0800 Subject: [PATCH 04/20] fix(mem_wal): reset WAL buffer in MemTableFlushHandler::freeze_memtable The MemTableFlushHandler's freeze_memtable() was missing the call to reset_for_new_memtable() after swapping memtables. This caused pending_bytes to remain stale after a freeze, leading to: 1. Spurious FlushMemTable triggers based on stale pending_bytes 2. Attempting to flush empty memtables ("Cannot flush empty MemTable") 3. Wasted freeze operations on memtables with 0 batches The fix adds reset_for_new_memtable() after the memtable swap, matching the behavior in RegionWriter::flush_memtable(). Co-Authored-By: Jack Ye Co-Authored-By: Claude Opus 4.5 --- result.log | 10438 ++++++++++++++++ .../lance/src/dataset/mem_wal/write/writer.rs | 4 + 2 files changed, 10442 insertions(+) create mode 100644 result.log diff --git a/result.log b/result.log new file mode 100644 index 00000000000..eaef295d156 --- /dev/null +++ b/result.log @@ -0,0 +1,10438 @@ +[ec2-user@ip-172-31-76-18 lance]$ RUST_LOG=debug DATASET_PREFIX=s3://gh-dev-us-east-1/t39 cargo test -p lance region_writer_tests::test_region_writer_s3 -- --nocapture --ignored 2>&1 | tee result.log +warning: lance-linalg@2.1.0-beta.0: fp16kernels feature is not enabled, skipping build of fp16 kernels + Finished `test` profile [unoptimized + debuginfo] target(s) in 0.34s + Running unittests src/lib.rs (target/debug/deps/lance-0b12383e8102b815) + +running 1 test +[TEST] Creating dataset at s3://gh-dev-us-east-1/t39/test_s3_e6af2aca-8371-41e8-be56-0e70b87e6722 +[TEST] Config: flush_interval=Some(100ms), wal_buffer_size=10485760 +[06:42:46.308][WRITER] Creating wal_flusher with flush_interval=Some(100ms) +[06:42:46.308][EXECUTOR] Adding handler task 'wal_flusher' +[06:42:46.308][WRITER] Adding memtable_flusher handler +[06:42:46.308][EXECUTOR] Adding handler task 'memtable_flusher' +[06:42:46.308][WRITER] memtable_flusher handler added +[06:42:46.308][EXECUTOR] Adding handler task 'writer' +[TEST] Writing 10000 batches x 20 rows = 200000 total rows +[06:42:52.647][PUT] put #0 +[06:42:52.647][EXECUTOR] Task 'wal_flusher' spawned and starting +[06:42:52.647][DISPATCHER] Task 'wal_flusher' started, has 0 tickers +[06:42:52.647][EXECUTOR] Task 'memtable_flusher' spawned and starting +[06:42:52.647][DISPATCHER] Task 'memtable_flusher' started, has 0 tickers +[06:42:52.647][EXECUTOR] Task 'writer' spawned and starting +[06:42:52.647][DISPATCHER] Task 'writer' started, has 0 tickers +[06:42:52.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 100 batches in 8.525813ms +[06:42:52.655][PUT] put #100 +[06:42:52.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.659][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.659][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.659][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.659][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.659][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.659][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.659][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.659][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.659][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.659][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.659][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.659][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.659][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.660][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.660][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.660][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.660][WAL_SIZE_TRIGGER] pending_bytes=10486344, threshold #1 crossed (10MB), triggering flush to batch #157 +[06:42:52.660][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 157, done: None } +[06:42:52.660][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #157, starting flush +[06:42:52.660] [WAL_FLUSH] Flushing range 0..157 (157 batches, 3140 rows) to WAL #1 +[06:42:52.673][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.673][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.673][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.673][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.673][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.673][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.673][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.673][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.673][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.673][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.674][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.674][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.674][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.674][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.674][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.674][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.674][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.674][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.674][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.674][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.674][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.674][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.675][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.675][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.675][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.675][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.675][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.675][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.676][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.676][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.677][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.677][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.677][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.677][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.677][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.677][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.677][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.677][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.677][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.677][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.677][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.678][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.678][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 200 batches in 32.054641ms +[06:42:52.679][PUT] put #200 +[06:42:52.679][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.679][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.679][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.679][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.680][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.680][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.680][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.680][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.680][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.680][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.680][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.680][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.680][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.680][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.680][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.681][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.681][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.681][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.681][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.681][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.682][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.684][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.684][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.684][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.684][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.684][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.685][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.685][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.685][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.686][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.686][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.686][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.686][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.686][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.687][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.687][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.687][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.687][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.687][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.688][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.688][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.688][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.688][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.688][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.688][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.688][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.688][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.688][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.688][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.688][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.689][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.689][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.689][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.689][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.689][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.689][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.689][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.689][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.689][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.689][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.690][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.690][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.690][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.690][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.690][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.690][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.690][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.690][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.690][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.690][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.690][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.691][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.691][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.691][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.691][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.691][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.691][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.691][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.691][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.691][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.691][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.691][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.691][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.692][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.692][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.692][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.692][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.692][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.692][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.692][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.692][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.692][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.692][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.692][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.692][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.692][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.693][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.693][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.693][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.693][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 300 batches in 45.982669ms +[06:42:52.693][PUT] put #300 +[06:42:52.693][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.693][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.693][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.693][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.693][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.693][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.693][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.693][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.693][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.694][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.694][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.694][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.694][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.694][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.694][WAL_SIZE_TRIGGER] pending_bytes=20972688, threshold #2 crossed (20MB), triggering flush to batch #314 +[06:42:52.694][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.694][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.694][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.694][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.694][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.694][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.694][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.694][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.695][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.695][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.695][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.695][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.695][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.695][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.695][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.695][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.695][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.695][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.695][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.695][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.695][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.696][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.696][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.696][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.696][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.696][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.696][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.696][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.696][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.696][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.696][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.696][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.696][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.696][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.697][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.697][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.697][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.697][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.697][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.697][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.697][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.697][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.697][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.697][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.697][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.697][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.697][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.698][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.698][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.698][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.698][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.698][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.698][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.698][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.698][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.698][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.698][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.698][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.698][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.698][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.699][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.699][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.699][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.699][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.699][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.699][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.699][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.699][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.699][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.699][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.699][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.699][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.699][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.700][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.700][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.700][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.700][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.700][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.700][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.700][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.700][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.700][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.700][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.700][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.700][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.700][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 400 batches in 53.726039ms +[06:42:52.701][PUT] put #400 +[06:42:52.701][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.701][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.701][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.701][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.701][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.701][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.701][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.701][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.701][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.701][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.701][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.701][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.701][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.702][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.702][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.702][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.702][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.702][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.702][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.702][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.702][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.702][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.702][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.702][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.702][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.702][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.703][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.703][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.703][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.703][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.703][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.703][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.703][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.703][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.703][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.703][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.703][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.703][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.703][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.704][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.704][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.704][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.704][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.704][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.704][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.704][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.704][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.704][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.704][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.704][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.704][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.704][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.705][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.705][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.705][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.705][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.705][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.705][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.705][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.705][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.705][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.705][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.705][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.705][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.705][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.706][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.706][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.706][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.706][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.706][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.706][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.706][WAL_SIZE_TRIGGER] pending_bytes=31459032, threshold #3 crossed (30MB), triggering flush to batch #471 +[06:42:52.706][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.706][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.706][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.706][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.706][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.706][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.706][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.707][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.707][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.707][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.707][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.707][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.707][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.707][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.707][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.707][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.707][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.707][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.707][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.707][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.708][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.708][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.708][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.708][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.708][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.708][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.708][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.708][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.708][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 500 batches in 61.421497ms +[06:42:52.708][PUT] put #500 +[06:42:52.708][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.708][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.708][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.709][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.709][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.709][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.709][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.709][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.709][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.709][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.709][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.709][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.709][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.709][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.709][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.709][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.710][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.710][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.710][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.710][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.710][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.710][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.710][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.710][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.710][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.710][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.710][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.710][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.710][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.711][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.711][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.711][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.711][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.711][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.711][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.711][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.711][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.711][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.711][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.711][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.711][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.711][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.711][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.712][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.712][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.712][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.712][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.712][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.712][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.712][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.712][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.712][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.712][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.712][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.712][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.712][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.713][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.713][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.713][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.713][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.713][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.713][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.713][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.713][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.713][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.713][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.713][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.713][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.713][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.714][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.714][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.714][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.714][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.714][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.714][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.714][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.714][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.714][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.714][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.714][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.714][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.714][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.715][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.715][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.715][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.715][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.715][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.715][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.715][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.715][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.715][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.715][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.715][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.715][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.715][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.716][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.716][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.716][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.716][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.716][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 600 batches in 69.107919ms +[06:42:52.716][PUT] put #600 +[06:42:52.716][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.716][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.716][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.716][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.716][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.716][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.716][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.717][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.717][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.717][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.717][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.717][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.717][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.717][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.717][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.717][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.717][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.717][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.717][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.717][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.718][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.718][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.718][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.718][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.718][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.718][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.718][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.718][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.718][WAL_SIZE_TRIGGER] pending_bytes=41945376, threshold #4 crossed (40MB), triggering flush to batch #628 +[06:42:52.718][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.718][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.718][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.718][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.718][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.719][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.719][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.719][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.719][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.719][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.719][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.719][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.719][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.719][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.719][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.719][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.719][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.719][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.720][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.720][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.720][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.720][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.720][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.720][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.720][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.720][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.720][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.720][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.720][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.720][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.720][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.721][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.721][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.721][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.721][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.721][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.721][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.721][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.721][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.721][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.721][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.721][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.721][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.721][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.722][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.722][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.722][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.722][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.722][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.722][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.722][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.722][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.722][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.722][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.722][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.722][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.722][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.723][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.723][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.723][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.723][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.723][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.723][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.723][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.723][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.723][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.723][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.723][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.723][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.723][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.724][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.724][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 700 batches in 76.852811ms +[06:42:52.724][PUT] put #700 +[06:42:52.724][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.724][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.724][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.724][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.724][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.724][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.724][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.724][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.724][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.724][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.724][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.725][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.725][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.725][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.725][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.725][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.725][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.725][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.725][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.725][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.725][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.725][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.725][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.725][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.726][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.726][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.726][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.726][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.726][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.726][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.726][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.726][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.726][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.726][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.726][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.726][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.726][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.727][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.727][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.727][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.727][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.727][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.727][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.727][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.727][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.727][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.727][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.727][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.727][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.727][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.728][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.728][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.728][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.728][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.728][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.728][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.728][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.728][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.728][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.728][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.728][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.728][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.728][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.729][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.729][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.729][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.729][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.729][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.729][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.729][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.729][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.729][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.729][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.729][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.729][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.729][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.730][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.730][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.730][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.730][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.730][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.730][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.730][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.730][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.730][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.730][WAL_SIZE_TRIGGER] pending_bytes=52431720, threshold #5 crossed (50MB), triggering flush to batch #785 +[06:42:52.730][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.730][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.730][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.731][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.731][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.731][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.731][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.731][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.731][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.731][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.731][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.731][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.731][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.731][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.731][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 800 batches in 84.577313ms +[06:42:52.731][PUT] put #800 +[06:42:52.731][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.732][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.732][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.732][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.732][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.732][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.732][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.732][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.732][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.732][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.732][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.732][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.732][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.732][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.733][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.733][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.733][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.733][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.733][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.733][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.733][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.733][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.733][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.733][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.733][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.733][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.733][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.734][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.734][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.734][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.734][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.734][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.734][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.734][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.734][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.734][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.734][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.734][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.734][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.734][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.734][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.735][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.735][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.735][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.735][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.735][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.735][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.735][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.735][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.735][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.735][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.735][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.735][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.735][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.736][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.736][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.736][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.736][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.736][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.736][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.736][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.736][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.736][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.736][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.736][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.736][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.736][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.737][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.737][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.737][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.737][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.737][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.737][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.737][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.737][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.737][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.737][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.737][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.737][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.737][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.738][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.738][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.738][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.738][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.738][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.738][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.738][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.738][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.738][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.738][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.738][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.738][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.738][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.739][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.739][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.739][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.739][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.739][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.739][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.739][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 900 batches in 92.260245ms +[06:42:52.739][PUT] put #900 +[06:42:52.739][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.739][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.739][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.739][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.739][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.740][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.740][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.740][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.740][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.740][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.740][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.740][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.740][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.740][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.740][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.740][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.740][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.740][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.740][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.741][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.741][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.741][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.741][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.741][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.741][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.741][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.741][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.741][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.741][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.741][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.741][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.741][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.742][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.742][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.742][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.742][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.742][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.742][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.742][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.742][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.742][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.742][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.742][WAL_SIZE_TRIGGER] pending_bytes=62918064, threshold #6 crossed (60MB), triggering flush to batch #942 +[06:42:52.742][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.742][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.743][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.743][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.743][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.743][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.743][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.743][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.743][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.743][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.743][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.743][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.743][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.743][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.743][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.743][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.744][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.744][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.744][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.744][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.744][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.744][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.744][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.744][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.744][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.744][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.744][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.744][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.744][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.745][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.745][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.745][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.745][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.745][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.745][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.745][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.745][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.745][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.745][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.745][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.745][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.745][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.746][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.746][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.746][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.746][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.746][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.746][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.746][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.746][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.746][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.746][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.746][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.746][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.746][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.747][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.747][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.747][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 1000 batches in 99.981276ms +[06:42:52.747][PUT] put #1000 +[06:42:52.747][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.747][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.747][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.747][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.747][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.747][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.747][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.747][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.747][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.748][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.748][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.748][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.748][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.748][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.748][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.748][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.748][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.748][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.748][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.748][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.748][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.748][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.749][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.749][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.749][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.749][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.749][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.749][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.749][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.749][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.749][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.749][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.749][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.749][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.749][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.750][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.750][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.750][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.750][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.750][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.750][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.750][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.750][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.750][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.750][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.750][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.750][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.750][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.751][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.751][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.751][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.751][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.751][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.751][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.751][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.751][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.751][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.751][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.751][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.751][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.751][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.752][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.752][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.752][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.752][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.752][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.752][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.752][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.752][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.752][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.752][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.752][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.752][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.752][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.753][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.753][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.753][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.753][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.753][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.753][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.753][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.753][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.753][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.753][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.753][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.753][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.753][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.754][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.754][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.754][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.754][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.754][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.754][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.754][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.754][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.754][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.754][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.754][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.754][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.754][WAL_SIZE_TRIGGER] pending_bytes=73404408, threshold #7 crossed (70MB), triggering flush to batch #1099 +[06:42:52.754][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 1100 batches in 107.673281ms +[06:42:52.755][PUT] put #1100 +[06:42:52.755][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.755][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.755][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.755][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.755][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.755][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.755][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.755][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.755][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.755][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.755][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.755][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.755][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.756][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.756][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.756][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.756][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.756][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.756][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.756][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.756][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.756][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.756][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.756][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.756][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.756][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.756][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.757][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.757][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.757][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.757][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.757][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.757][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.757][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.757][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.757][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.757][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.757][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.757][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.757][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.758][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.758][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.758][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.758][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.758][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.758][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.758][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.758][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.758][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.758][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.758][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.758][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.758][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.759][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.759][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.759][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.759][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.759][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.759][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.759][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.759][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.759][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.759][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.759][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.759][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.759][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.760][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.760][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.760][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.760][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.760][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.760][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.760][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.760][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.760][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.760][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.760][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.760][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.760][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.761][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.761][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.761][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.761][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.761][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.761][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.761][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.761][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.761][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.761][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.761][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.761][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.761][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.762][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.762][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.762][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.762][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.762][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.762][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.762][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.762][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 1200 batches in 115.322669ms +[06:42:52.762][PUT] put #1200 +[06:42:52.762][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.762][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.762][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.762][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.762][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.763][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.763][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.763][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.763][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.763][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.763][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.763][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.763][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.763][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.763][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.763][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.763][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.763][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.764][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.764][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.764][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.764][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.764][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.764][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.764][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.764][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.764][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.764][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.764][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.764][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.764][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.765][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.765][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.765][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.765][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.765][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.765][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.765][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.765][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.765][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.765][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.765][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.765][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.765][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.766][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.766][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.766][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.766][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.766][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.766][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.766][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.766][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.766][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.766][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.766][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.766][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.766][WAL_SIZE_TRIGGER] pending_bytes=83890752, threshold #8 crossed (80MB), triggering flush to batch #1256 +[06:42:52.766][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.767][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.767][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.767][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.767][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.767][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.767][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.767][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.767][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.767][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.767][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.767][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.767][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.767][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.768][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.768][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.768][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.768][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.768][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.768][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.768][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.768][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.768][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.768][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.768][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.768][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.768][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.769][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.769][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.769][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.769][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.769][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.769][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.769][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.769][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.769][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.769][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.769][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.769][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.769][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.770][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.770][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.770][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.770][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 1300 batches in 123.018852ms +[06:42:52.770][PUT] put #1300 +[06:42:52.770][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.770][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.770][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.770][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.770][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.770][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.770][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.770][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.770][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.771][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.771][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.771][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.771][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.771][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.771][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.771][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.771][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.771][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.771][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.771][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.771][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.771][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.772][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.772][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.772][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.772][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.772][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.772][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.772][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.772][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.772][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.772][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.772][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.772][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.772][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.773][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.773][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.773][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.773][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.773][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.773][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.773][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.773][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.773][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.773][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.773][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.773][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.773][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.774][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.774][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.774][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.774][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.774][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.774][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.774][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.774][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.774][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.774][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.774][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.774][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.774][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.775][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.775][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.775][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.775][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.775][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.775][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.775][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.775][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.775][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.775][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.775][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.775][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.775][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.776][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.776][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.776][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.776][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.776][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.776][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.776][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.776][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.776][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.776][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.776][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.776][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.776][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.777][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.777][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.777][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.777][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.777][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.777][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.777][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.777][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.777][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.777][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.777][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.777][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.777][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 1400 batches in 130.71336ms +[06:42:52.778][PUT] put #1400 +[06:42:52.778][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.778][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.778][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.778][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.778][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.778][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.778][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.778][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.778][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.778][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.778][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.778][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.778][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.779][WAL_SIZE_TRIGGER] pending_bytes=94377096, threshold #9 crossed (90MB), triggering flush to batch #1413 +[06:42:52.779][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.779][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.779][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.779][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.779][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.779][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.779][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.779][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.779][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.779][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.779][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.779][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.779][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.780][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.780][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.780][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.780][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.780][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.780][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.780][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.780][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.780][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.780][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.780][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.780][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.780][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.781][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.781][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.781][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.781][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.781][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.781][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.781][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.781][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.781][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.781][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.781][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.781][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.781][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.782][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.782][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.782][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.782][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.782][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.782][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.782][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.782][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.782][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.782][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.782][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.782][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.782][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.783][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.783][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.783][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.783][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.783][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.783][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.783][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.783][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.783][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.783][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.783][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.783][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.783][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.784][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.784][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.784][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.784][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.784][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.784][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.784][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.784][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.784][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.784][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.784][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.784][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.784][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.785][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.785][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.785][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.785][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.785][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.785][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.785][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.785][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.785][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 1500 batches in 138.397145ms +[06:42:52.785][PUT] put #1500 +[06:42:52.785][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.785][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.785][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.785][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.791][WAL_SIZE_TRIGGER] pending_bytes=104863440, threshold #10 crossed (100MB), triggering flush to batch #1570 +[06:42:52.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 1600 batches in 146.0778ms +[06:42:52.793][PUT] put #1600 +[06:42:52.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.797][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.797][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.797][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.797][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.797][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.797][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.797][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.797][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.797][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.797][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.797][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.797][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 1700 batches in 153.820696ms +[06:42:52.801][PUT] put #1700 +[06:42:52.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.803][WAL_SIZE_TRIGGER] pending_bytes=115349784, threshold #11 crossed (110MB), triggering flush to batch #1727 +[06:42:52.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 1800 batches in 161.53401ms +[06:42:52.808][PUT] put #1800 +[06:42:52.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.815][WAL_SIZE_TRIGGER] pending_bytes=125836128, threshold #12 crossed (120MB), triggering flush to batch #1884 +[06:42:52.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 1900 batches in 169.200848ms +[06:42:52.816][PUT] put #1900 +[06:42:52.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 2000 batches in 176.879089ms +[06:42:52.824][PUT] put #2000 +[06:42:52.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.827][WAL_SIZE_TRIGGER] pending_bytes=136322472, threshold #13 crossed (130MB), triggering flush to batch #2041 +[06:42:52.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 2100 batches in 184.578873ms +[06:42:52.831][PUT] put #2100 +[06:42:52.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.839][WAL_SIZE_TRIGGER] pending_bytes=146808816, threshold #14 crossed (140MB), triggering flush to batch #2198 +[06:42:52.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 2200 batches in 192.240841ms +[06:42:52.839][PUT] put #2200 +[06:42:52.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 2300 batches in 199.880312ms +[06:42:52.847][PUT] put #2300 +[06:42:52.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.851][WAL_SIZE_TRIGGER] pending_bytes=157295160, threshold #15 crossed (150MB), triggering flush to batch #2355 +[06:42:52.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 2400 batches in 207.539527ms +[06:42:52.854][PUT] put #2400 +[06:42:52.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 2500 batches in 215.219439ms +[06:42:52.862][PUT] put #2500 +[06:42:52.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.863][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.863][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.863][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.863][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.863][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.863][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.863][WAL_SIZE_TRIGGER] pending_bytes=167781504, threshold #16 crossed (160MB), triggering flush to batch #2512 +[06:42:52.863][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.863][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.863][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.863][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.863][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.863][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.863][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.864][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.864][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.864][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.864][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.864][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.864][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.864][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.864][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.864][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.864][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.864][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.864][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.864][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.865][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.865][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.865][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.865][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.865][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.865][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.865][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.865][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.865][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.865][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.865][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.865][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.865][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.866][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.866][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.866][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.866][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.866][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.866][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.866][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.866][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.866][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.866][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.866][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.866][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.866][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.867][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.867][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.867][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.867][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.867][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.867][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.867][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.867][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.867][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.867][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.867][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.867][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.867][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.868][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.868][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.868][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.868][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.868][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.868][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.868][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.868][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.868][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.868][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.868][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.868][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.868][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.869][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.869][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.869][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.869][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.869][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.869][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.869][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.869][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.869][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.869][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.869][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.869][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.869][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.870][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.870][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.870][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 2600 batches in 222.917335ms +[06:42:52.870][PUT] put #2600 +[06:42:52.870][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.870][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.870][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.870][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.870][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.870][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.870][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.870][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.870][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.870][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.871][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.871][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.871][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.871][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.871][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.871][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.871][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.871][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.871][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.871][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.871][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.871][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.871][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.872][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.872][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.872][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.872][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.872][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.872][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.872][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.872][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.872][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.872][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.872][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.872][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.873][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.873][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.873][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.873][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.873][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.873][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.873][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.873][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.873][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.873][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.873][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.873][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.873][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.874][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.874][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.874][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.874][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.874][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.874][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.874][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.874][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.874][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.874][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.874][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.874][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.874][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.875][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.875][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.875][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.875][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.875][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.875][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.875][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.876] [WAL_FLUSH] WAL #1 complete: S3=207ms, index=0ms, 157 batches +[06:42:52.877][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 314, done: None } +[06:42:52.877][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #314, starting flush +[06:42:52.877] [WAL_FLUSH] Flushing range 157..314 (157 batches, 3140 rows) to WAL #2 +[06:42:52.892][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.892][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.894][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.894][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.894][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.894][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.894][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.894][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.894][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.895][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.895][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.895][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.895][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.895][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.895][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.896][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.896][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.896][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.896][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.896][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.896][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.896][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.896][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.896][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.896][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.897][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.897][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.897][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.897][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.897][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.897][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.897][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 2700 batches in 250.380336ms +[06:42:52.897][PUT] put #2700 +[06:42:52.897][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.897][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.897][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.897][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.898][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.898][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.898][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.898][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.898][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.898][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.898][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.898][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.898][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.898][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.899][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.899][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.899][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.899][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.899][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.899][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.899][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.899][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.899][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.899][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.899][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.899][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.900][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.900][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.900][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.900][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.900][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.900][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.900][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.900][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.900][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.900][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.900][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.900][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.900][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.901][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.901][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.901][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.901][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.901][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.901][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.901][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.901][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.901][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.901][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.901][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.901][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.901][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.902][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.902][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.902][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.902][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.902][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.902][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.902][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.902][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.902][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.902][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.902][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.902][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.902][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.903][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.903][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.903][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.903][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.903][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.903][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.903][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.903][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.903][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.903][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.903][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.903][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.903][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.904][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.904][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.904][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.904][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.904][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.904][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.904][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.904][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.904][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.904][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.904][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.904][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.904][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.905][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.905][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.905][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.905][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.905][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.905][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.905][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.905][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.905][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 2800 batches in 258.356838ms +[06:42:52.905][PUT] put #2800 +[06:42:52.905][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.905][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.905][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.905][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.906][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.906][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.906][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.906][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.906][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.906][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.906][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.906][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.906][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.906][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.906][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.906][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.906][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.907][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.907][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.907][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.907][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.907][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.907][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.907][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.907][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.907][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.907][WAL_SIZE_TRIGGER] pending_bytes=178274128, threshold #17 crossed (170MB), triggering flush to batch #2826 +[06:42:52.907][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.907][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.907][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.907][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.908][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.908][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.908][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.908][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.908][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.908][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.908][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.908][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.908][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.908][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.908][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.908][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.908][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.909][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.909][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.909][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.909][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.909][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.909][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.909][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.909][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.909][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.909][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.909][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.909][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.909][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.910][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.910][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.910][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.910][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.910][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.910][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.910][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.910][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.910][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.910][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.910][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.910][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.910][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.911][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.911][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.911][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.911][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.911][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.911][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.911][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.911][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.911][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.911][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.911][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.911][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.911][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.912][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.912][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.912][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.912][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.912][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.912][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.912][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.912][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.912][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.912][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.912][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.912][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.912][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.913][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.913][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.913][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.913][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.913][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 2900 batches in 266.07547ms +[06:42:52.913][PUT] put #2900 +[06:42:52.913][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.913][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.913][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.913][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.913][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.913][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.913][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.913][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.914][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.914][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.914][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.914][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.914][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.914][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.914][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.914][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.914][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.914][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.914][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.914][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.914][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.915][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.915][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.915][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.915][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.915][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.915][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.915][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.915][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.915][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.915][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.915][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.915][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.915][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.916][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.916][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.916][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.916][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.916][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.916][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.916][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.916][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.916][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.916][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.916][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.916][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.916][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.917][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.917][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.917][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.917][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.917][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.917][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.917][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.917][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.917][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.917][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.917][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.917][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.917][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.918][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.918][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.918][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.918][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.918][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.918][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.918][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.918][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.918][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.918][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.918][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.918][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.918][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.919][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.919][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.919][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.919][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.919][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.919][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.919][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.919][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.919][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.919][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.919][WAL_SIZE_TRIGGER] pending_bytes=188760472, threshold #18 crossed (180MB), triggering flush to batch #2983 +[06:42:52.919][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.919][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.919][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.920][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.920][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.920][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.920][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.920][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.920][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.920][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.920][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.920][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.920][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.920][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.920][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.920][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.921][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 3000 batches in 273.763561ms +[06:42:52.921][PUT] put #3000 +[06:42:52.921][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.921][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.921][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.921][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.921][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.921][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.921][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.921][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.921][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.921][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.921][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.921][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.922][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.922][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.922][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.922][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.922][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.922][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.922][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.922][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.922][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.922][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.922][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.922][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.922][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.923][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.923][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.923][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.923][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.923][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.923][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.923][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.923][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.923][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.923][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.923][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.923][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.923][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.924][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.924][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.924][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.924][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.924][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.924][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.924][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.924][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.924][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.924][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.924][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.924][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.924][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.925][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.925][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.925][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.925][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.925][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.925][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.925][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.925][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.925][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.925][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.925][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.925][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.925][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.926][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.926][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.926][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.926][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.926][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.926][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.926][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.926][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.926][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.926][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.926][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.926][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.926][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.927][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.927][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.927][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.927][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.927][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.927][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.927][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.927][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.927][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.927][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.927][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.927][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.927][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.928][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.928][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.928][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.928][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.928][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.928][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.928][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.928][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.928][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.928][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 3100 batches in 281.423669ms +[06:42:52.928][PUT] put #3100 +[06:42:52.928][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.928][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.928][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.929][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.929][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.929][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.929][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.929][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.929][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.929][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.929][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.929][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.929][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.929][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.929][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.929][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.930][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.930][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.930][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.930][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.930][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.930][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.930][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.930][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.930][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.930][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.930][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.930][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.930][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.931][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.931][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.931][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.931][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.931][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.931][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.931][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.931][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.931][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.931][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.931][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.931][WAL_SIZE_TRIGGER] pending_bytes=199246816, threshold #19 crossed (190MB), triggering flush to batch #3140 +[06:42:52.931][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.931][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.932][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.932][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.932][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.932][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.932][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.932][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.932][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.932][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.932][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.932][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.932][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.932][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.932][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.933][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.933][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.933][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.933][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.933][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.933][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.933][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.933][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.933][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.933][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.933][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.933][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.933][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.934][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.934][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.934][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.934][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.934][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.934][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.934][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.934][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.934][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.934][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.934][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.934][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.934][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.935][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.935][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.935][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.935][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.935][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.935][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.935][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.935][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.935][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.935][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.935][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.935][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.935][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.936][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.936][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.936][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.936][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.936][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.936][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 3200 batches in 289.127154ms +[06:42:52.936][PUT] put #3200 +[06:42:52.936][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.936][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.936][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.936][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.936][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.936][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.936][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.937][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.937][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.937][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.937][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.937][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.937][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.937][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.937][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.937][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.937][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.937][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.937][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.937][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.938][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.938][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.938][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.938][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.938][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.938][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.938][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.938][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.938][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.938][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.938][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.938][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.938][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.939][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.939][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.939][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.939][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.939][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.939][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.939][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.939][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.939][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.939][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.939][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.939][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.939][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.940][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.940][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.940][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.940][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.940][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.940][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.940][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.940][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.940][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.940][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.940][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.940][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.940][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.940][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.941][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.941][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.941][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.941][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.941][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.941][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.941][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.941][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.941][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.941][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.941][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.941][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.941][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.942][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.942][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.942][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.942][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.942][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.942][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.942][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.942][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.942][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.942][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.942][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.942][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.942][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.943][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.943][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.943][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.943][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.943][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.943][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.943][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.943][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.943][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.943][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.943][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.943][WAL_SIZE_TRIGGER] pending_bytes=209733160, threshold #20 crossed (200MB), triggering flush to batch #3297 +[06:42:52.943][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.943][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.944][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 3300 batches in 296.786335ms +[06:42:52.944][PUT] put #3300 +[06:42:52.944][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.944][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.944][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.944][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.944][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.944][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.944][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.944][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.944][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.944][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.944][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.945][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.945][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.945][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.945][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.945][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.945][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.945][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.945][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.945][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.945][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.945][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.945][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.945][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.946][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.946][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.946][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.946][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.946][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.946][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.946][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.946][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.946][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.946][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.946][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.946][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.946][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.947][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.947][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.947][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.947][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.947][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.947][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.947][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.947][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.947][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.947][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.947][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.947][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.948][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.948][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.948][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.948][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.948][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.948][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.948][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.948][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.948][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.948][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.948][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.948][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.948][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.949][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.949][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.949][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.949][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.949][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.949][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.949][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.949][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.949][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.949][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.949][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.949][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.949][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.950][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.950][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.950][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.950][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.950][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.950][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.950][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.950][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.950][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.950][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.950][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.950][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.950][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.950][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.951][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.951][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.951][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.951][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.951][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.951][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.951][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.951][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.951][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.951][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.951][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 3400 batches in 304.572612ms +[06:42:52.951][PUT] put #3400 +[06:42:52.951][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.952][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.952][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.952][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.952][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.952][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.952][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.952][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.952][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.952][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.952][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.952][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.952][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.952][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.953][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.953][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.953][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.953][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.953][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.953][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.953][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.953][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.953][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.953][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.953][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.953][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.953][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.954][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.954][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.954][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.954][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.954][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.954][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.954][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.954][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.954][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.954][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.954][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.954][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.954][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.955][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.955][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.955][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.955][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.955][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.955][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.955][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.955][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.955][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.955][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.955][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.955][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.955][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.956][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.956][WAL_SIZE_TRIGGER] pending_bytes=220219504, threshold #21 crossed (210MB), triggering flush to batch #3454 +[06:42:52.956][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.956][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.956][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.956][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.956][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.956][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.956][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.956][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.956][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.956][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.956][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.956][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.957][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.957][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.957][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.957][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.957][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.957][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.957][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.957][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.957][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.957][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.957][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.957][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.957][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.958][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.958][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.958][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.958][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.958][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.958][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.958][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.958][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.958][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.958][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.958][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.958][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.958][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.959][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.959][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.959][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.959][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.959][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.959][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.959][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.959][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 3500 batches in 312.300421ms +[06:42:52.959][PUT] put #3500 +[06:42:52.959][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.959][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.959][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.959][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.959][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.960][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.960][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.960][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.960][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.960][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.960][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.960][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.960][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.960][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.960][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.960][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.960][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.960][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.961][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.961][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.961][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.961][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.961][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.961][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.961][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.961][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.961][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.961][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.961][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.961][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.961][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.962][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.962][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.962][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.962][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.962][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.962][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.962][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.962][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.962][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.962][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.962][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.962][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.962][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.963][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.963][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.963][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.963][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.963][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.963][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.963][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.963][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.963][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.963][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.963][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.963][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.963][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.964][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.964][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.964][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.964][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.964][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.964][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.964][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.964][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.964][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.964][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.964][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.964][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.964][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.965][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.965][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.965][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.965][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.965][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.965][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.965][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.965][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.965][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.965][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.965][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.965][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.965][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.965][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.966][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.966][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.966][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.966][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.966][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.966][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.966][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.966][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.966][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.966][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.966][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.966][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.966][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.967][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.967][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.967][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 3600 batches in 319.965429ms +[06:42:52.967][PUT] put #3600 +[06:42:52.967][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.967][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.967][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.967][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.967][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.967][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.967][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.967][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.967][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.968][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.968][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.968][WAL_SIZE_TRIGGER] pending_bytes=230705848, threshold #22 crossed (220MB), triggering flush to batch #3611 +[06:42:52.968][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.968][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.968][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.968][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.968][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.968][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.968][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.968][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.968][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.968][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.968][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.969][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.969][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.969][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.969][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.969][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.969][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.969][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.969][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.969][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.969][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.969][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.969][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.969][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.970][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.970][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.970][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.970][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.970][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.970][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.970][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.970][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.970][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.970][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.970][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.970][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.970][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.971][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.971][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.971][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.971][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.971][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.971][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.971][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.971][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.971][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.971][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.971][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.971][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.971][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.972][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.972][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.972][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.972][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.972][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.972][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.972][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.972][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.972][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.972][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.972][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.972][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.972][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.973][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.973][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.973][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.973][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.973][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.973][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.973][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.973][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.973][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.973][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.973][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.973][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.973][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.974][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.974][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.974][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.974][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.974][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.974][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.974][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.974][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.974][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.974][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.974][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.974][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.974][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 3700 batches in 327.666634ms +[06:42:52.975][PUT] put #3700 +[06:42:52.975][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.975][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.975][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.975][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.975][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.975][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.975][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.975][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.975][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.975][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.975][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.975][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.975][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.976][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.976][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.976][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.976][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.976][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.976][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.976][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.976][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.976][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.976][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.976][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.976][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.976][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.977][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.977][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.977][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.977][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.977][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.977][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.977][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.977][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.977][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.977][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.977][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.977][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.977][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.978][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.978][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.978][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.978][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.978][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.978][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.978][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.978][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.978][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.978][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.978][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.978][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.978][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.979][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.979][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.979][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.979][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.979][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.979][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.979][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.979][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.979][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.979][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.979][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.979][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.979][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.980][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.980][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.980][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.980][WAL_SIZE_TRIGGER] pending_bytes=241192192, threshold #23 crossed (230MB), triggering flush to batch #3768 +[06:42:52.980][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.980][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.980][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.980][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.980][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.980][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.980][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.980][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.980][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.980][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.981][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.981][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.981][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.981][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.981][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.981][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.981][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.981][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.981][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.981][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.981][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.981][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.981][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.982][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.982][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.982][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.982][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.982][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.982][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.982][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.982][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.982][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 3800 batches in 335.371857ms +[06:42:52.982][PUT] put #3800 +[06:42:52.982][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.982][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.982][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.982][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.983][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.983][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.983][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.983][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.983][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.983][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.983][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.983][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.983][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.983][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.983][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.983][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.983][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.984][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.984][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.984][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.984][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.984][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.984][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.984][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.984][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.984][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.984][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.984][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.984][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.984][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.985][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.985][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.985][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.985][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.985][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.985][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.985][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.985][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.985][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.985][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.985][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.985][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.985][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.986][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.986][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.986][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.986][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.986][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.986][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.986][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.986][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.986][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.986][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.986][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.986][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.986][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.987][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.987][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.987][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.987][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.987][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.987][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.987][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.987][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.987][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.987][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.987][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.987][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.987][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.988][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.988][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.988][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.988][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.988][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.988][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.988][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.988][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.988][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.988][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.988][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.988][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.988][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.989][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.989][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.989][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.989][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.989][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.989][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.989][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.989][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.989][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.989][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.989][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.989][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.989][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.990][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.990][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.990][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.990][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.990][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 3900 batches in 343.054211ms +[06:42:52.990][PUT] put #3900 +[06:42:52.990][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.990][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.990][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.990][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.990][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.990][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.990][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.990][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.991][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.991][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.991][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.991][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.991][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.991][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.991][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.991][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.991][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.991][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.991][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.991][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.991][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.992][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.992][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.992][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.992][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.992][WAL_SIZE_TRIGGER] pending_bytes=251678536, threshold #24 crossed (240MB), triggering flush to batch #3925 +[06:42:52.992][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.992][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.992][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.992][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.992][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.992][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.992][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.992][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.992][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.993][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.993][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.993][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.993][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.993][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.993][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.993][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.993][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.993][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.993][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.993][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.993][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.993][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.994][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.994][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.994][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.994][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.994][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.994][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.994][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.994][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.994][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.994][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.994][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.994][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.994][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.995][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.995][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.995][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.995][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.995][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.995][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.995][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.995][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.995][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.995][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.995][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.995][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.995][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.996][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.996][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.996][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.996][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.996][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.996][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.996][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.996][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.996][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.996][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.996][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.996][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.996][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.997][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.997][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.997][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.997][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.997][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.997][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.997][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.997][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.997][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.997][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.997][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.997][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.997][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.998][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 4000 batches in 350.745753ms +[06:42:52.998][PUT] put #4000 +[06:42:52.998][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.998][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.998][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.998][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.998][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.998][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.998][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.998][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.998][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.998][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.998][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.998][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.999][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.999][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.999][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.999][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.999][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.999][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.999][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:52.999][DISPATCHER] Task 'memtable_flusher' received message: FlushMemTable { done: None } +[06:42:52.999][FLUSH_HANDLER] Received FlushMemTable: batches=4019, remaining=3981, pending_wal_bytes=257956984 +[06:42:52.999][MEMTABLE_FLUSH] Starting do_flush: 4019 batches, 257956984 pending WAL bytes +[06:42:52.999][FREEZE] Starting freeze_memtable +[06:42:52.999][FREEZE] WAL flush: pending_bytes=257956984, remaining_capacity=3981 +[06:42:53.264][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.264][WAL_TIME_TRIGGER] pending_bytes=258023776, interval elapsed, triggering flush to batch #4020 +[06:42:53.265] [WAL_FLUSH] WAL #2 complete: S3=380ms, index=0ms, 157 batches +[06:42:53.266][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 471, done: None } +[06:42:53.266][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #471, starting flush +[06:42:53.266] [WAL_FLUSH] Flushing range 314..471 (157 batches, 3140 rows) to WAL #4 +[06:42:53.282][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.282][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.283][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.288][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.291][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.292][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.293][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.294][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.294][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.294][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.294][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.294][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.294][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.294][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.294][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.295][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.295][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.295][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.295][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.295][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.295][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.295][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.295][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.296][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.296][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.296][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.296][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.296][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.296][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.296][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.296][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.297][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.297][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.297][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.297][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.297][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.297][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.297][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.297][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.297][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.297][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.297][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.297][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.297][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.298][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.298][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.298][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.298][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.298][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.298][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.298][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.298][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.298][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.298][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.298][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.298][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.298][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.299][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.299][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.299][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.299][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.299][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.299][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.299][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.299][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.299][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.299][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.300][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.300][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.300][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.300][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.300][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.300][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.300][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.301][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.301][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.301][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.301][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.301][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.301][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 4100 batches in 654.532007ms +[06:42:53.301][PUT] put #4100 +[06:42:53.301][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.301][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.302][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.302][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.302][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.302][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.302][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.302][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.302][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.302][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.302][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.302][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.302][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.302][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.302][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.303][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.303][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.303][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.303][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.303][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.303][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.303][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.303][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.303][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.303][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.303][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.303][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.303][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.304][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.304][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.304][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.304][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.304][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.304][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.304][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.304][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.304][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.304][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.304][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.304][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.304][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.305][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.305][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.305][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.305][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.305][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.305][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.305][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.305][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.305][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.305][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.305][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.305][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.305][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.305][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.306][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.306][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.306][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.306][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.306][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.306][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.306][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.306][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.306][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.306][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.306][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.306][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.306][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.307][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.307][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.307][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.307][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.307][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.307][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.307][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.307][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.307][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.307][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.307][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.307][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.307][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.308][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.308][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.308][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.308][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.308][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.308][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.308][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.308][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.308][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.308][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.308][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.308][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.308][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.309][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.309][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.309][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.309][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.309][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.309][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 4200 batches in 662.156375ms +[06:42:53.309][PUT] put #4200 +[06:42:53.309][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.309][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.309][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.309][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.309][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.309][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.309][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.310][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.310][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.310][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.310][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.310][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.310][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.310][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.310][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.310][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.310][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.310][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.310][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.310][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.311][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.311][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.311][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.311][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.311][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.311][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.311][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.311][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.311][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.311][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.311][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.311][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.311][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.312][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.312][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.312][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.312][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.312][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.312][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.312][WAL_SIZE_TRIGGER] pending_bytes=262171160, threshold #25 crossed (250MB), triggering flush to batch #4239 +[06:42:53.312][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.312][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.312][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.312][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.312][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.312][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.312][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.313][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.313][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.313][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.313][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.313][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.313][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.313][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.313][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.313][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.313][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.313][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.313][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.313][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.313][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.314][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.314][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.314][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.314][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.314][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.314][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.314][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.314][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.314][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.314][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.314][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.314][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.314][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.315][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.315][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.315][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.315][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.315][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.315][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.315][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.315][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.315][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.315][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.315][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.315][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.315][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.316][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.316][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.316][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.316][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.316][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.316][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.316][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.316][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.316][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.316][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.316][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.316][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.316][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.317][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 4300 batches in 669.746644ms +[06:42:53.317][PUT] put #4300 +[06:42:53.317][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.317][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.317][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.317][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.317][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.317][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.317][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.317][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.317][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.317][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.317][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.317][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.318][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.318][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.318][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.318][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.318][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.318][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.318][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.318][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.318][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.318][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.318][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.318][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.318][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.319][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.319][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.319][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.319][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.319][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.319][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.319][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.319][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.319][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.319][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.319][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.319][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.319][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.319][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.320][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.320][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.320][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.320][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.320][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.320][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.320][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.320][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.320][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.320][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.320][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.320][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.320][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.321][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.321][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.321][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.321][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.321][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.321][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.321][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.321][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.321][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.321][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.321][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.321][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.321][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.321][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.322][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.322][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.322][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.322][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.322][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.322][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.322][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.322][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.322][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.322][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.322][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.322][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.322][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.323][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.323][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.323][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.323][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.323][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.323][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.323][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.323][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.323][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.323][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.323][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.323][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.323][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.324][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.324][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.324][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.324][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.324][WAL_SIZE_TRIGGER] pending_bytes=272657504, threshold #26 crossed (260MB), triggering flush to batch #4396 +[06:42:53.324][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.324][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.324][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.324][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 4400 batches in 677.545491ms +[06:42:53.324][PUT] put #4400 +[06:42:53.324][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.327][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.327][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.327][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.327][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.327][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.328][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.328][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.328][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.328][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.328][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.328][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.328][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.328][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.328][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.329][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.329][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.329][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.329][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.329][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.331][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.331][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.331][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.331][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.331][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.331][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.331][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.332][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.332][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.332][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.332][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.332][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.332][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.332][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.332][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.332][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.333][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.333][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.333][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.333][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.335][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.335][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.335][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.335][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.335][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.335][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.335][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.335][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.335][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.336][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.336][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.336][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.336][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.336][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.336][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.336][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.336][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.336][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.336][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.336][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.336][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.337][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.337][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.337][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.337][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.337][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.337][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.337][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.337][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.337][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.337][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.337][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.337][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.337][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.338][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.338][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.338][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.338][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.338][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.338][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.338][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.338][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.338][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.338][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.338][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.338][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.338][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.339][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.339][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.339][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.339][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.339][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.339][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.339][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.339][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.339][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.339][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.339][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.339][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.339][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 4500 batches in 692.681642ms +[06:42:53.340][PUT] put #4500 +[06:42:53.340][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.340][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.340][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.340][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.340][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.340][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.340][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.340][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.340][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.340][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.340][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.340][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.340][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.341][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.341][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.341][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.341][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.341][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.341][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.341][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.341][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.341][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.341][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.341][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.341][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.341][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.341][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.342][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.342][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.342][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.342][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.342][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.342][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.342][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.342][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.342][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.342][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.342][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.342][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.342][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.343][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.343][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.343][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.343][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.343][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.343][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.343][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.343][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.343][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.343][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.343][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.343][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.343][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.344][WAL_SIZE_TRIGGER] pending_bytes=283143848, threshold #27 crossed (270MB), triggering flush to batch #4553 +[06:42:53.344][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.344][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.344][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.344][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.344][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.344][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.344][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.344][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.344][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.344][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.344][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.344][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.344][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.345][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.345][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.345][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.345][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.345][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.345][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.345][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.345][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.345][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.345][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.345][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.345][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.345][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.346][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.346][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.346][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.346][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.346][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.346][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.346][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.346][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.346][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.346][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.346][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.346][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.346][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.346][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.347][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.347][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.347][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.347][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.347][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.347][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.347][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 4600 batches in 700.269695ms +[06:42:53.347][PUT] put #4600 +[06:42:53.347][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.347][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.347][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.347][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.347][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.348][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.348][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.348][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.348][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.348][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.348][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.348][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.348][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.348][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.348][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.348][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.348][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.348][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.348][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.349][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.349][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.349][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.349][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.349][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.349][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.349][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.349][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.349][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.349][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.349][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.349][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.349][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.350][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.350][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.350][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.350][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.350][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.350][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.350][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.350][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.350][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.350][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.350][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.350][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.350][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.351][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.351][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.351][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.351][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.351][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.351][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.351][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.351][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.351][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.351][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.351][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.351][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.351][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.351][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.352][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.352][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.352][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.352][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.352][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.352][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.352][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.352][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.352][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.352][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.352][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.352][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.352][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.353][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.353][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.353][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.353][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.353][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.353][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.353][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.353][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.353][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.353][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.353][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.353][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.353][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.353][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.354][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.354][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.354][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.354][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.354][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.354][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.354][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.354][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.354][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.354][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.354][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.354][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.354][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.355][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 4700 batches in 707.807555ms +[06:42:53.355][PUT] put #4700 +[06:42:53.355][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.355][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.355][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.355][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.355][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.355][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.355][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.355][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.355][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.355][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.355][WAL_SIZE_TRIGGER] pending_bytes=293630192, threshold #28 crossed (280MB), triggering flush to batch #4710 +[06:42:53.355][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.356][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.356][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.356][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.356][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.356][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.356][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.356][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.356][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.356][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.356][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.356][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.356][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.356][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.357][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.357][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.357][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.357][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.357][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.357][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.357][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.357][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.357][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.357][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.357][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.357][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.357][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.358][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.358][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.358][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.358][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.358][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.358][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.358][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.358][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.358][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.358][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.358][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.358][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.358][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.358][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.359][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.359][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.359][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.359][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.359][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.359][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.359][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.359][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.359][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.359][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.359][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.359][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.359][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.360][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.360][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.360][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.360][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.360][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.360][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.360][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.360][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.360][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.360][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.360][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.360][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.360][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.361][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.361][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.361][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.361][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.361][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.361][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.361][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.361][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.361][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.361][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.361][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.361][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.361][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.361][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.362][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.362][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.362][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.362][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.362][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.362][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.362][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.362][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.362][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 4800 batches in 715.402002ms +[06:42:53.362][PUT] put #4800 +[06:42:53.362][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.362][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.362][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.362][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.363][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.363][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.363][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.363][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.363][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.363][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.363][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.363][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.363][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.363][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.363][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.363][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.363][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.364][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.364][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.364][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.364][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.364][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.364][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.364][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.364][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.364][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.364][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.364][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.364][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.364][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.365][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.365][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.365][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.365][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.365][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.365][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.365][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.365][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.365][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.365][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.365][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.365][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.365][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.366][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.366][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.366][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.366][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.366][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.366][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.366][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.366][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.366][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.366][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.366][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.366][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.366][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.367][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.367][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.367][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.367][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.367][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.367][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.367][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.367][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.367][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.367][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.367][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.367][WAL_SIZE_TRIGGER] pending_bytes=304116536, threshold #29 crossed (290MB), triggering flush to batch #4867 +[06:42:53.367][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.367][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.368][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.368][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.368][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.368][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.368][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.368][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.368][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.368][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.368][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.368][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.368][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.368][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.368][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.369][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.369][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.369][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.369][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.369][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.369][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.369][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.369][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.369][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.369][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.369][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.369][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.369][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.369][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.370][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.370][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.370][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.370][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 4900 batches in 723.015942ms +[06:42:53.370][PUT] put #4900 +[06:42:53.370][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.370][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.370][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.370][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.370][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.370][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.370][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.370][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.370][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.371][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.371][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.371][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.371][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.371][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.371][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.371][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.371][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.371][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.371][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.371][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.371][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.371][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.372][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.372][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.372][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.372][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.372][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.372][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.372][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.372][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.372][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.372][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.372][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.372][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.372][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.373][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.373][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.373][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.373][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.373][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.373][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.373][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.373][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.373][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.373][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.373][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.373][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.373][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.373][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.374][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.374][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.374][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.374][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.374][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.374][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.374][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.374][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.374][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.374][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.374][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.374][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.375][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.375][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.375][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.375][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.375][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.375][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.375][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.375][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.375][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.375][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.375][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.375][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.375][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.376][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.376][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.376][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.376][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.376][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.376][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.376][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.376][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.376][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.376][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.376][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.376][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.376][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.376][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.377][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.377][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.377][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.377][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.377][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.377][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.377][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.377][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.377][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.377][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.377][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.377][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 5000 batches in 730.616783ms +[06:42:53.377][PUT] put #5000 +[06:42:53.377][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.378][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.378][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.378][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.378][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.378][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.378][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.378][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.378][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.378][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.378][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.378][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.378][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.378][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.379][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.379][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.379][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.379][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.379][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.379][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.379][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.379][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.379][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.379][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.379][WAL_SIZE_TRIGGER] pending_bytes=314615168, threshold #30 crossed (300MB), triggering flush to batch #5024 +[06:42:53.379][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.379][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.379][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.380][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.380][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.380][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.381][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.381][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.381][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.381][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.381][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.382][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.382][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.382][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.382][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.382][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.382][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.382][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.382][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.382][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.382][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.382][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.382][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.382][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.383][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.383][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.383][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.383][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.383][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.383][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.383][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.383][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.383][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.383][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.383][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.383][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.383][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.384][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.384][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.384][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.384][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.384][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.384][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.384][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.384][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.384][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.384][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.384][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.384][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.384][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.384][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.385][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.385][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.385][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.385][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.385][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.385][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.385][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.385][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.385][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.385][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.385][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.385][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.385][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.386][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.386][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.386][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.386][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.386][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.386][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.386][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.386][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.386][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.386][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.386][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.386][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 5100 batches in 739.622338ms +[06:42:53.386][PUT] put #5100 +[06:42:53.386][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.387][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.387][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.387][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.387][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.387][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.387][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.387][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.387][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.387][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.387][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.387][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.387][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.387][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.388][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.388][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.388][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.388][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.388][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.388][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.388][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.388][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.388][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.388][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.388][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.388][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.388][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.389][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.389][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.389][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.389][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.389][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.389][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.389][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.389][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.389][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.389][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.389][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.389][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.389][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.390][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.390][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.390][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.390][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.390][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.390][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.390][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.390][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.390][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.390][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.390][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.390][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.390][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.391][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.391][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.391][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.391][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.391][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.391][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.391][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.391][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.391][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.391][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.391][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.391][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.391][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.391][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.392][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.392][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.392][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.392][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.392][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.392][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.392][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.392][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.392][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.392][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.392][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.392][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.392][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.393][WAL_SIZE_TRIGGER] pending_bytes=325114592, threshold #31 crossed (310MB), triggering flush to batch #5180 +[06:42:53.393][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.393][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.393][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.393][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.393][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.393][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.393][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.393][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.393][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.393][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.393][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.393][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.393][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.394][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.394][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.394][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.394][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.394][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.394][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.394][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 5200 batches in 747.214064ms +[06:42:53.394][PUT] put #5200 +[06:42:53.394][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.394][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.394][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.394][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.395][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.395][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.397][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.397][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.398][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.398][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.398][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.398][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.398][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.398][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.398][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.398][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.398][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.399][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.399][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.399][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.399][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.399][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.399][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.399][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.399][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.401][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.401][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.401][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.401][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.402][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.402][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.402][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.402][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.402][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.402][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.402][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.402][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.402][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.402][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.403][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.403][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.403][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.403][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.403][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.403][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.403][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.404][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.404][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.404][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.405][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.405][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.405][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.405][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.405][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.405][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.405][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.405][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.405][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.405][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.405][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.405][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.405][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.406][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.406][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.406][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.406][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.406][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.406][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.406][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.406][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.406][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.406][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.406][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.406][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.406][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.407][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.407][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.407][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.407][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.407][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.407][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.407][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.407][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.407][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.407][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.407][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.407][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.407][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.408][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.408][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.408][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.408][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.408][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.408][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.408][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.408][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.408][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.408][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.408][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.408][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 5300 batches in 761.582034ms +[06:42:53.408][PUT] put #5300 +[06:42:53.408][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.409][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.409][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.409][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.409][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.409][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.409][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.409][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.409][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.409][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.409][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.409][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.409][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.409][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.409][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.410][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.410][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.410][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.410][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.410][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.410][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.410][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.410][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.410][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.410][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.410][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.410][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.410][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.411][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.411][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.411][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.411][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.411][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.411][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.411][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.411][WAL_SIZE_TRIGGER] pending_bytes=335546712, threshold #32 crossed (320MB), triggering flush to batch #5335 +[06:42:53.411][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.411][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.411][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.411][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.411][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.411][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.412][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.412][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.412][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.412][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.412][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.412][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.412][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.412][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.412][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.412][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.412][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.412][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.412][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.413][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.413][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.413][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.413][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.413][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.413][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.413][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.413][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.413][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.413][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.413][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.413][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.413][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.414][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.414][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.414][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.414][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.414][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.414][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.414][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.414][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.414][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.414][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.414][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.414][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.414][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.414][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.415][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.415][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.415][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.415][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.415][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.415][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.415][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.415][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.415][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.415][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.415][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.415][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.415][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.416][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.416][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.416][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.416][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.416][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.416][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 5400 batches in 769.148059ms +[06:42:53.416][PUT] put #5400 +[06:42:53.416][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.416][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.416][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.416][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.416][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.416][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.416][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.417][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.417][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.417][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.417][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.417][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.417][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.417][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.417][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.417][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.417][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.417][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.417][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.417][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.418][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.418][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.418][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.418][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.418][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.418][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.418][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.418][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.418][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.418][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.418][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.418][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.418][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.419][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.419][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.419][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.419][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.419][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.419][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.419][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.419][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.419][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.419][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.419][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.419][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.419][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.419][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.420][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.420][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.420][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.420][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.420][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.420][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.420][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.420][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.420][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.420][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.420][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.420][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.420][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.421][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.421][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.421][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.421][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.421][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.421][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.421][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.421][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.421][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.421][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.421][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.421][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.421][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.422][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.422][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.422][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.422][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.422][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.422][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.422][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.422][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.422][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.422][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.422][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.422][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.422][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.422][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.423][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.423][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.423][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.423][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.423][WAL_SIZE_TRIGGER] pending_bytes=346046136, threshold #33 crossed (330MB), triggering flush to batch #5491 +[06:42:53.423][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.423][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.423][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.423][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.423][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.423][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.423][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.423][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.423][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 5500 batches in 776.697757ms +[06:42:53.424][PUT] put #5500 +[06:42:53.424][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.424][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.424][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.424][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.424][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.424][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.424][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.424][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.424][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.424][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.424][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.424][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.424][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.425][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.425][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.425][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.425][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.425][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.425][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.425][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.425][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.425][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.425][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.425][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.425][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.425][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.426][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.426][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.426][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.426][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.426][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.426][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.426][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.426][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.426][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.426][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.426][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.426][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.426][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.426][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.427][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.427][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.427][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.427][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.427][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.427][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.427][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.427][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.427][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.427][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.427][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.427][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.427][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.428][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.428][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.428][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.428][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.428][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.428][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.428][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.428][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.428][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.428][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.428][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.428][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.428][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.429][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.429][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.429][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.429][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.429][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.429][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.429][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.429][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.429][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.429][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.429][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.429][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.429][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.430][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.430][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.430][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.430][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.430][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.430][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.430][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.430][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.430][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.430][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.430][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.430][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.430][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.431][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.431][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.431][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.431][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.431][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.431][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.431][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.431][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 5600 batches in 784.258786ms +[06:42:53.431][PUT] put #5600 +[06:42:53.431][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.431][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.431][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.431][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.431][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.432][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.432][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.432][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.432][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.432][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.432][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.432][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.432][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.432][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.432][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.432][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.432][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.432][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.432][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.433][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.433][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.433][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.433][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.433][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.433][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.433][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.433][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.433][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.433][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.433][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.433][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.433][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.434][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.434][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.434][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.434][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.434][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.434][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.434][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.434][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.434][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.434][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.434][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.434][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.434][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.435][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.435][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.435][WAL_SIZE_TRIGGER] pending_bytes=356545560, threshold #34 crossed (340MB), triggering flush to batch #5647 +[06:42:53.435][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.435][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.435][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.435][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.435][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.435][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.435][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.435][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.435][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.435][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.435][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.436][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.436][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.436][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.436][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.436][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.436][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.436][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.436][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.436][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.436][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.436][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.436][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.436][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.437][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.437][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.437][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.437][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.437][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.437][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.437][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.437][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.437][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.437][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.437][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.437][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.437][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.437][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.438][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.438][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.438][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.438][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.438][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.438][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.438][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.438][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.438][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.438][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.438][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.438][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.438][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.439][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.439][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 5700 batches in 791.864215ms +[06:42:53.439][PUT] put #5700 +[06:42:53.439][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.439][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.439][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.439][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.439][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.439][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.439][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.439][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.439][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.439][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.439][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.440][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.440][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.440][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.440][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.440][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.440][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.440][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.440][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.440][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.440][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.440][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.440][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.440][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.441][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.441][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.441][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.441][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.441] [WAL_FLUSH] WAL #4 complete: S3=169ms, index=0ms, 157 batches +[06:42:53.442][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 628, done: None } +[06:42:53.442][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #628, starting flush +[06:42:53.442] [WAL_FLUSH] Flushing range 471..628 (157 batches, 3140 rows) to WAL #5 +[06:42:53.457][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.458][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.458][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.458][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.458][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.458][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.458][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.459][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.459][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.459][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.459][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.459][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.459][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.459][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.459][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.459][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.460][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.460][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.460][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.460][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.461][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.461][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.461][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.461][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.461][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.461][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.461][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.461][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.464][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.464][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.464][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.464][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.464][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.464][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.464][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.465][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.465][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.465][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.465][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.465][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.465][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.465][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.465][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.465][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.465][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.466][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.466][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.466][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.467][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.468][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.468][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.468][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.468][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.468][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.468][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.468][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.468][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.469][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.469][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.469][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.469][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.469][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.469][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.469][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.469][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.469][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.469][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.469][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.470][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.471][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.472][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.472][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 5800 batches in 824.877403ms +[06:42:53.472][PUT] put #5800 +[06:42:53.472][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.472][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.472][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.472][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.472][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.472][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.472][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.472][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.472][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.473][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.473][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.473][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.473][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.473][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.473][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.473][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.473][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.473][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.473][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.473][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.473][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.474][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.474][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.474][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.474][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.474][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.474][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.474][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.474][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.474][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.474][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.474][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.474][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.474][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.475][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.475][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.475][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.475][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.475][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.475][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.475][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.475][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.475][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.475][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.475][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.475][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.475][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.476][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.476][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.476][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.476][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.476][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.476][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.476][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.476][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.476][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.476][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.476][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.476][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.476][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.477][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.477][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.477][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.477][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.477][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.477][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.477][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.477][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.477][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.477][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.477][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.477][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.477][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.477][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.478][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.478][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.478][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.478][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.478][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.478][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.478][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.478][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.478][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.478][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.478][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.478][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.478][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.479][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.479][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.479][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.479][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.479][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.479][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.479][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.479][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.479][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.479][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.479][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.479][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.479][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 5900 batches in 832.700812ms +[06:42:53.480][PUT] put #5900 +[06:42:53.480][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.480][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.480][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.480][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.480][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.480][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.480][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.480][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.480][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.480][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.480][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.480][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.480][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.481][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.481][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.481][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.481][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.481][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.481][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.481][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.481][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.481][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.481][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.481][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.481][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.481][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.482][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.482][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.482][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.482][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.482][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.482][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.482][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.482][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.482][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.482][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.482][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.482][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.482][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.482][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.483][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.483][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.483][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.483][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.483][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.483][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.483][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.483][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.483][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.483][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.483][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.483][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.483][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.484][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.484][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.484][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.484][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.484][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.484][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.484][WAL_SIZE_TRIGGER] pending_bytes=367064344, threshold #35 crossed (350MB), triggering flush to batch #5959 +[06:42:53.484][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.484][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.484][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.484][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.484][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.484][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.484][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.485][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.485][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.485][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.485][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.485][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.485][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.485][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.485][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.485][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.485][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.485][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.485][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.485][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.485][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.486][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.486][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.486][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.486][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.486][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.486][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.486][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.486][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.486][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.486][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.486][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.486][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.486][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.487][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.487][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.487][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.487][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.487][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.487][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.487][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 6000 batches in 840.243898ms +[06:42:53.487][PUT] put #6000 +[06:42:53.487][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.487][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.487][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.487][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.487][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.487][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.488][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.488][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.488][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.488][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.488][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.488][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.488][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.488][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.488][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.488][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.488][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.488][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.488][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.489][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.489][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.489][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.489][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.489][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.489][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.489][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.489][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.489][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.489][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.489][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.489][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.489][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.490][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.490][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.490][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.490][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.490][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.490][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.490][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.490][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.490][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.490][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.490][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.490][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.490][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.490][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.491][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.491][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.491][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.491][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.491][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.491][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.491][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.491][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.491][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.491][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.491][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.491][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.491][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.492][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.492][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.492][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.492][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.492][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.492][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.492][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.492][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.492][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.492][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.492][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.492][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.492][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.492][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.493][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.493][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.493][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.493][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.493][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.493][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.493][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.493][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.493][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.493][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.493][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.493][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.493][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.494][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.494][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.494][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.494][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.494][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.494][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.494][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.494][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.494][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.494][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.494][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.494][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.494][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.495][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 6100 batches in 847.738486ms +[06:42:53.495][PUT] put #6100 +[06:42:53.495][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.495][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.495][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.495][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.495][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.495][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.495][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.495][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.495][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.495][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.495][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.495][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.495][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.496][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.496][WAL_SIZE_TRIGGER] pending_bytes=377496464, threshold #36 crossed (360MB), triggering flush to batch #6114 +[06:42:53.496][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.496][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.496][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.496][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.496][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.496][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.496][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.496][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.496][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.496][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.496][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.496][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.497][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.497][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.497][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.497][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.497][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.497][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.497][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.497][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.497][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.497][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.497][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.497][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.497][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.498][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.498][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.498][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.498][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.498][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.498][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.498][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.498][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.498][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.498][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.498][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.498][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.498][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.499][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.499][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.499][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.499][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.499][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.499][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.499][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.499][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.499][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.499][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.499][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.499][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.499][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.499][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.500][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.500][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.500][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.500][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.500][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.500][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.500][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.500][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.500][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.500][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.500][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.500][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.500][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.501][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.501][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.501][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.501][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.501][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.501][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.501][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.501][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.501][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.501][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.501][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.501][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.501][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.502][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.502][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.502][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.502][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.502][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.502][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.502][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.502][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 6200 batches in 855.273836ms +[06:42:53.502][PUT] put #6200 +[06:42:53.502][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.502][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.502][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.502][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.502][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.503][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.503][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.503][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.503][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.503][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.503][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.503][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.503][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.503][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.503][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.503][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.503][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.503][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.503][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.504][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.504][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.504][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.504][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.504][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.504][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.504][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.504][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.504][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.504][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.504][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.504][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.504][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.505][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.505][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.505][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.505][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.505][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.505][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.505][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.505][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.505][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.505][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.505][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.505][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.505][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.506][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.506][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.506][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.506][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.506][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.506][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.506][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.506][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.506][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.506][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.506][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.506][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.506][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.507][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.507][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.507][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.507][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.507][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.507][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.507][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.507][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.507][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.507][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.507][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.507][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.507][WAL_SIZE_TRIGGER] pending_bytes=387995888, threshold #37 crossed (370MB), triggering flush to batch #6270 +[06:42:53.507][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.508][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.508][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.508][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.508][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.508][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.508][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.508][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.508][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.508][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.508][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.508][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.508][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.508][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.508][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.509][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.509][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.509][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.509][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.509][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.509][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.509][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.509][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.509][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.509][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.509][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.509][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.509][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.510][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.510][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 6300 batches in 862.844054ms +[06:42:53.510][PUT] put #6300 +[06:42:53.510][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.510][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.510][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.510][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.510][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.510][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.510][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.510][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.510][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.510][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.510][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.511][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.511][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.511][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.511][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.511][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.511][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.511][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.511][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.511][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.511][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.511][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.511][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.511][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.512][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.512][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.512][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.512][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.512][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.512][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.512][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.512][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.512][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.512][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.512][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.512][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.512][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.512][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.513][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.513][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.513][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.513][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.513][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.513][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.513][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.513][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.513][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.513][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.513][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.513][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.513][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.514][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.514][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.514][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.514][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.514][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.514][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.514][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.514][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.514][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.514][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.514][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.514][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.514][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.515][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.515][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.515][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.515][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.515][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.515][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.515][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.515][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.515][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.515][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.515][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.515][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.515][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.516][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.516][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.516][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.516][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.516][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.516][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.516][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.516][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.516][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.516][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.516][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.516][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.516][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.516][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.517][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.517][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.517][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.517][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.517][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.517][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.517][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.517][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.517][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 6400 batches in 870.41193ms +[06:42:53.517][PUT] put #6400 +[06:42:53.517][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.517][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.517][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.517][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.518][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.518][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.518][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.518][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.518][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.518][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.518][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.518][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.518][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.518][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.518][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.518][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.518][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.519][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.519][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.519][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.519][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.519][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.519][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.519][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.519][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.519][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.519][WAL_SIZE_TRIGGER] pending_bytes=398495312, threshold #38 crossed (380MB), triggering flush to batch #6426 +[06:42:53.519][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.519][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.519][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.519][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.520][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.520][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.520][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.520][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.520][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.520][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.520][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.520][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.520][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.520][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.520][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.520][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.520][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.520][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.521][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.521][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.521][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.521][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.521][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.521][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.521][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.521][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.521][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.521][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.521][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.521][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.521][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.522][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.522][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.522][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.522][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.522][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.522][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.522][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.522][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.522][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.522][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.522][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.522][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.522][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.523][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.523][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.523][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.523][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.523][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.523][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.523][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.523][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.523][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.523][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.523][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.523][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.523][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.523][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.524][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.524][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.524][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.524][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.524][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.524][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.524][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.524][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.524][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.524][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.524][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.524][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.524][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.525][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.525][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.525][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 6500 batches in 877.923557ms +[06:42:53.525][PUT] put #6500 +[06:42:53.525][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.525][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.525][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.525][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.525][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.525][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.525][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.525][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.525][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.525][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.526][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.526][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.526][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.526][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.526][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.526][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.526][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.526][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.526][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.526][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.526][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.526][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.526][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.527][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.527][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.527][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.527][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.527][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.527][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.527][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.527][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.527][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.527][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.527][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.527][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.527][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.527][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.528][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.528][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.528][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.528][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.528][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.528][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.528][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.528][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.528][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.528][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.528][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.528][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.528][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.529][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.529][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.529][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.529][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.529][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.529][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.529][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.529][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.529][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.529][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.529][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.529][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.529][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.530][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.530][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.530][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.533][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.533][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.533][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.533][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.533][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.533][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.533][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.534][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.534][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.534][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.534][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.534][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.534][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.534][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.534][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.534][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.534][WAL_SIZE_TRIGGER] pending_bytes=408994736, threshold #39 crossed (390MB), triggering flush to batch #6582 +[06:42:53.535][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.535][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.535][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.535][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.537][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.537][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.537][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.537][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.537][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.537][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.537][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.537][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.538][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.538][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.538][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.538][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.538][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.538][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 6600 batches in 891.36448ms +[06:42:53.538][PUT] put #6600 +[06:42:53.538][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.538][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.538][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.539][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.539][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.539][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.541][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.541][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.541][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.541][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.541][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.541][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.541][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.541][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.541][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.542][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.542][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.542][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.542][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.542][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.542][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.542][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.542][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.542][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.542][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.542][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.542][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.543][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.543][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.543][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.543][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.543][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.543][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.543][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.543][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.543][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.543][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.543][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.543][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.543][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.544][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.544][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.544][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.544][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.544][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.544][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.544][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.544][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.544][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.544][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.544][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.544][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.544][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.544][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.545][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.545][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.545][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.545][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.545][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.545][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.545][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.545][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.545][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.545][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.545][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.545][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.545][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.546][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.546][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.546][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.546][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.546][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.546][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.546][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.546][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.546][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.546][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.546][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.546][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.546][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.547][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.547][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.547][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.547][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.547][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.547][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.547][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.547][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.547][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.547][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.547][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.547][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.547][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.548][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.548][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.548][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.548][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.548][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.548][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.548][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 6700 batches in 901.25522ms +[06:42:53.548][PUT] put #6700 +[06:42:53.548][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.548][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.548][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.548][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.548][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.548][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.549][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.549][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.549][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.549][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.549][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.549][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.549][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.549][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.549][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.549][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.549][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.549][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.549][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.550][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.550][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.550][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.550][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.550][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.550][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.550][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.550][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.550][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.550][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.550][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.550][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.550][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.551][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.551][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.551][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.551][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.551][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.551][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.551][WAL_SIZE_TRIGGER] pending_bytes=419494160, threshold #40 crossed (400MB), triggering flush to batch #6738 +[06:42:53.551][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.551][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.551][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.551][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.551][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.551][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.551][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.552][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.552][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.552][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.552][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.552][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.552][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.552][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.552][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.552][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.552][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.552][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.552][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.552][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.552][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 6800 batches in 908.817143ms +[06:42:53.556][PUT] put #6800 +[06:42:53.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.557][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.557][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.557][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.557][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.557][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.557][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.557][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.557][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.557][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.557][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.557][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.557][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.558][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.558][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.558][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.558][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.558][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.558][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.558][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.558][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.558][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.558][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.558][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.558][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.558][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.558][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.559][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.559][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.559][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.559][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.559][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.559][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.559][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.559][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.559][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.559][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.559][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.559][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.559][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.560][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.560][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.560][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.560][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.560][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.560][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.560][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.560][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.560][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.560][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.560][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.560][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.560][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.561][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.561][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.561][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.561][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.561][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.561][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.561][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.561][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.561][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.561][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.561][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.561][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.561][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.561][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.562][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.562][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.562][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.562][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.562][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.562][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.562][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.562][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.562][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.562][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.562][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.562][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.562][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.563][WAL_SIZE_TRIGGER] pending_bytes=429926280, threshold #41 crossed (410MB), triggering flush to batch #6893 +[06:42:53.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 6900 batches in 916.396256ms +[06:42:53.563][PUT] put #6900 +[06:42:53.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 7000 batches in 923.969205ms +[06:42:53.571][PUT] put #7000 +[06:42:53.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.574][WAL_SIZE_TRIGGER] pending_bytes=440425704, threshold #42 crossed (420MB), triggering flush to batch #7049 +[06:42:53.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 7100 batches in 931.497452ms +[06:42:53.578][PUT] put #7100 +[06:42:53.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 7200 batches in 938.979652ms +[06:42:53.586][PUT] put #7200 +[06:42:53.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:53.586][BP_TRIGGER] iter=0 batch_store_nearly_full: remaining=799/8000 (<10%), triggering flush and waiting +[06:42:53.586][TRIGGER] Sending FlushMemTable message and waiting for completion +[06:42:53.604] [WAL_FLUSH] WAL #5 complete: S3=154ms, index=0ms, 157 batches +[06:42:53.604][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 785, done: None } +[06:42:53.604][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #785, starting flush +[06:42:53.604] [WAL_FLUSH] Flushing range 628..785 (157 batches, 3140 rows) to WAL #6 +[06:42:53.795] [WAL_FLUSH] WAL #6 complete: S3=185ms, index=0ms, 157 batches +[06:42:53.796][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 942, done: None } +[06:42:53.796][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #942, starting flush +[06:42:53.796] [WAL_FLUSH] Flushing range 785..942 (157 batches, 3140 rows) to WAL #7 +[06:42:53.977] [WAL_FLUSH] WAL #7 complete: S3=175ms, index=0ms, 157 batches +[06:42:53.978][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 1099, done: None } +[06:42:53.978][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #1099, starting flush +[06:42:53.978] [WAL_FLUSH] Flushing range 942..1099 (157 batches, 3140 rows) to WAL #8 +[06:42:54.160] [WAL_FLUSH] WAL #8 complete: S3=176ms, index=0ms, 157 batches +[06:42:54.161][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 1256, done: None } +[06:42:54.161][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #1256, starting flush +[06:42:54.161] [WAL_FLUSH] Flushing range 1099..1256 (157 batches, 3140 rows) to WAL #9 +[06:42:54.314] [WAL_FLUSH] WAL #9 complete: S3=148ms, index=0ms, 157 batches +[06:42:54.315][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 1413, done: None } +[06:42:54.315][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #1413, starting flush +[06:42:54.315] [WAL_FLUSH] Flushing range 1256..1413 (157 batches, 3140 rows) to WAL #10 +[06:42:54.514] [WAL_FLUSH] WAL #10 complete: S3=193ms, index=0ms, 157 batches +[06:42:54.514][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 1570, done: None } +[06:42:54.514][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #1570, starting flush +[06:42:54.515] [WAL_FLUSH] Flushing range 1413..1570 (157 batches, 3140 rows) to WAL #11 +[06:42:54.621] [WAL_FLUSH] WAL #11 complete: S3=100ms, index=0ms, 157 batches +[06:42:54.621][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 1727, done: None } +[06:42:54.621][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #1727, starting flush +[06:42:54.621] [WAL_FLUSH] Flushing range 1570..1727 (157 batches, 3140 rows) to WAL #12 +[06:42:54.760] [WAL_FLUSH] WAL #12 complete: S3=134ms, index=0ms, 157 batches +[06:42:54.761][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 1884, done: None } +[06:42:54.761][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #1884, starting flush +[06:42:54.761] [WAL_FLUSH] Flushing range 1727..1884 (157 batches, 3140 rows) to WAL #13 +[06:42:54.844][FREEZE] WAL S3 flush took 1845ms +[06:42:54.852][FREEZE] Swapping memtable: old had 7201 batches +[06:42:54.854][FREEZE] Complete: gen=1 imm_queue=1 new_capacity=8000 took=1854ms +[06:42:54.854][MEMTABLE_FLUSH] freeze_memtable took 1854ms +[06:42:54.854][LANCE_FLUSH] Starting flush_oldest_immutable +[06:42:54.854][LANCE_FLUSH] Flushing memtable with 144020 rows, 7201 batches +[06:42:54.854] [FLUSHER] flush() called: 144020 rows, 7201 batches +[06:42:54.934] [WAL_FLUSH] WAL #13 complete: S3=167ms, index=0ms, 157 batches +[06:42:54.934][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 2041, done: None } +[06:42:54.934][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #2041, starting flush +[06:42:54.934][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 2198, done: None } +[06:42:54.934][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #2198, starting flush +[06:42:54.934][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 2355, done: None } +[06:42:54.934][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #2355, starting flush +[06:42:54.934][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 2512, done: None } +[06:42:54.934][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #2512, starting flush +[06:42:54.934][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 2826, done: None } +[06:42:54.934][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #2826, starting flush +[06:42:54.934][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 2983, done: None } +[06:42:54.934][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #2983, starting flush +[06:42:54.934][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 3140, done: None } +[06:42:54.934][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #3140, starting flush +[06:42:54.935][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 3297, done: None } +[06:42:54.935][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #3297, starting flush +[06:42:54.935][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 3454, done: None } +[06:42:54.935][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #3454, starting flush +[06:42:54.935][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 3611, done: None } +[06:42:54.935][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #3611, starting flush +[06:42:54.935][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 3768, done: None } +[06:42:54.935][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #3768, starting flush +[06:42:54.935][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 3925, done: None } +[06:42:54.935][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #3925, starting flush +[06:42:54.935][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 4020, done: None } +[06:42:54.935][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #4020, starting flush +[06:42:54.935][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 4239, done: None } +[06:42:54.935][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #4239, starting flush +[06:42:54.935][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 4396, done: None } +[06:42:54.935][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #4396, starting flush +[06:42:54.935][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 4553, done: None } +[06:42:54.935][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #4553, starting flush +[06:42:54.935][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 4710, done: None } +[06:42:54.935][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #4710, starting flush +[06:42:54.935][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 4867, done: None } +[06:42:54.935][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #4867, starting flush +[06:42:54.935][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 5024, done: None } +[06:42:54.935][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #5024, starting flush +[06:42:54.935][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 5180, done: None } +[06:42:54.935][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #5180, starting flush +[06:42:54.936][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 5335, done: None } +[06:42:54.936][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #5335, starting flush +[06:42:54.936][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 5491, done: None } +[06:42:54.936][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #5491, starting flush +[06:42:54.936][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 5647, done: None } +[06:42:54.936][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #5647, starting flush +[06:42:54.936][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 5959, done: None } +[06:42:54.936][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #5959, starting flush +[06:42:54.936][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 6114, done: None } +[06:42:54.936][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #6114, starting flush +[06:42:54.936][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 6270, done: None } +[06:42:54.936][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #6270, starting flush +[06:42:54.936][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 6426, done: None } +[06:42:54.936][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #6426, starting flush +[06:42:54.936][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 6582, done: None } +[06:42:54.936][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #6582, starting flush +[06:42:54.936][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 6738, done: None } +[06:42:54.936][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #6738, starting flush +[06:42:54.936][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 6893, done: None } +[06:42:54.936][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #6893, starting flush +[06:42:54.937][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 7049, done: None } +[06:42:54.937][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #7049, starting flush +[06:42:54.942][DISPATCHER] Task 'memtable_flusher' received message: FlushMemTable { done: Some(Sender { inner: Some(Inner { state: State { is_complete: false, is_closed: false, is_rx_task_set: true, is_tx_task_set: false } }) }) } +[06:42:54.942][FLUSH_HANDLER] Received FlushMemTable: batches=0, remaining=8000, pending_wal_bytes=98539112 +[06:42:54.942][MEMTABLE_FLUSH] Starting do_flush: 0 batches, 98539112 pending WAL bytes +[06:42:54.943][FREEZE] Starting freeze_memtable +[06:42:54.943][FREEZE] WAL flush: pending_bytes=98539112, remaining_capacity=8000 +[06:42:54.943][FREEZE] WAL S3 flush took 0ms +[06:42:54.943][FREEZE] Swapping memtable: old had 0 batches +[06:42:54.944][FREEZE] Complete: gen=2 imm_queue=1 new_capacity=8000 took=1ms +[06:42:54.944][MEMTABLE_FLUSH] freeze_memtable took 1ms +[06:42:54.944][LANCE_FLUSH] Starting flush_oldest_immutable +[06:42:54.944][LANCE_FLUSH] Flushing memtable with 0 rows, 0 batches +[06:42:54.944] [FLUSHER] flush() called: 0 rows, 0 batches +[06:42:55.008][TRIGGER] Flush failed: Invalid user input: Cannot flush empty MemTable, rust/lance/src/dataset/mem_wal/write/flush.rs:147:17 +[06:42:55.008][BP_TRIGGER] flush complete after 1422ms, new remaining=8000 +[06:42:55.008][BP] waited 1422ms | remaining_batches=8000 total_batches=8000 +[06:42:55.008][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.008][WAL_TIME_TRIGGER] pending_bytes=98606416, interval elapsed, triggering flush to batch #1 +[06:42:55.008][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 1, done: None } +[06:42:55.008][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #1, starting flush +[06:42:55.008][WAL_FLUSH_HANDLER] Skipping flush to batch #1 - already at #1884 +[06:42:55.008][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.008][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.009][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.009][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.009][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.009][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.009][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.009][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.009][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.009][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.009][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.009][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.009][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.009][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.009][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.010][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.010][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.010][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.010][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.010][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.010][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.010][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.010][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.010][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.010][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.010][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.010][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.010][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.011][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.011][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.011][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.011][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.011][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.011][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.011][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.011][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.011][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.011][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.011][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.011][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.011][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.012][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.012][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.012][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.012][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.012][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.012][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.012][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.012][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.012][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.012][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.012][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.012][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.012][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.013][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.013][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.013][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.013][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.013][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.013][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.013][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.013][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.013][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.013][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.013][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.013][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.013][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.013][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.014][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.014][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.014][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.014][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.014][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.014][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.014][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.014][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.014][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.014][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.014][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.014][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.014][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.015][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.015][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.015][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.015][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.015][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.015][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.015][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.015][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.015][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.015][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.015][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.015][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.015][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.016][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.016][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.016][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.016][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 7300 batches in 2.368987405s +[06:42:55.016][PUT] put #7300 +[06:42:55.016][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.016][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.016][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.016][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.016][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.016][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.016][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.016][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.016][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.017][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.017][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.017][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.017][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.017][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.017][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.017][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.017][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.017][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.017][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.017][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.017][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.017][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.018][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.018][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.018][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.018][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.018][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.018][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.018][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.018][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.018][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.018][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.018][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.018][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.018][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.019][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.019][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.019][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.019][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.019][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.019][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.019][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.019][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.019][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.019][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.019][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.019][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.019][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.019][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.020][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.020][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.020][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.020][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.020][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.020][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.020][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.020][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.020][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.020][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.020][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.020][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.020][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.021][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.021][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.021][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.021][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.021][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.021][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.021][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.021][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.021][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.021][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.021][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.021][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.021][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.022][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.022][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.022][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.022][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.022][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.022][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.022][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.022][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.022][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.022][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.022][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.022][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.022][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.022][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.023][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.023][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.023][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.023][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.023][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.023][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.023][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.023][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.023][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.023][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.023][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 7400 batches in 2.376555126s +[06:42:55.023][PUT] put #7400 +[06:42:55.023][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.023][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.024][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.024][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.024][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.024][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.024][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.024][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.024][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.024][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.024][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.024][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.024][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.024][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.024][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.025][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.025][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.025][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.025][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.025][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.025][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.025][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.025][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.025][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.025][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.025][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.025][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.025][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.025][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.026][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.026][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.026][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.026][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.026][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.026][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.026][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.026][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.026][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.026][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.026][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.026][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.026][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.027][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.027][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.027][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.027][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.027][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.027][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.027][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.027][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.027][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.027][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.027][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.027][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.027][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.028][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.028][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.028][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.028][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.028][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.028][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.028][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.028][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.028][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.028][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.028][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.028][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.028][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.029][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.029][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.029][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.029][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.029][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.029][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.029][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.029][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.029][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.029][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.029][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.029][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.029][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.029][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.030][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.030][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.030][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.030][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.030][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.030][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.030][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.030][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.030][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.030][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.030][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.030][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.030][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.031][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.031][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.031][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.031][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.031][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 7500 batches in 2.38408899s +[06:42:55.031][PUT] put #7500 +[06:42:55.031][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.031][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.031][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.031][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.031][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.031][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.031][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.031][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.032][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.032][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.032][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.032][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.032][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.032][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.032][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.032][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.032][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.032][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.032][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.032][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.032][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.033][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.033][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.033][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.033][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.033][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.033][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.033][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.033][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.033][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.033][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.033][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.033][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.033][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.033][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.034][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.034][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.034][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.034][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.034][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.034][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.034][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.034][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.034][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.034][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.034][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.034][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.034][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.035][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.035][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.035][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.035][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.035][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.035][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.035][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.035][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.035][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.035][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.035][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.035][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.035][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.035][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.036][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.036][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.036][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.036][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.036][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.036][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.036][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.036][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.036][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.036][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.036][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.036][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.036][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.037][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.037][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.037][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.037][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.037][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.037][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.037][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.037][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.037][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.037][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.037][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.037][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.037][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.037][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.038][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.038][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.038][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.038][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.038][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.038][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.038][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.038][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.038][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.038][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.038][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 7600 batches in 2.391562249s +[06:42:55.038][PUT] put #7600 +[06:42:55.038][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.038][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.039][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.039][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.039][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.039][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.039][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.039][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.039][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.039][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.039][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.039][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.039][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.039][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.039][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.040][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.040][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.040][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.040][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.040][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.040][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.040][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.040][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.040][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.040][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.040][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.040][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.040][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.040][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.041][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.041][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.041][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.041][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.041][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.041][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.041][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.041][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.041][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.041][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.041][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.041][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.041][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.042][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.042][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.042][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.042][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.042][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.042][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.042][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.042][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.042][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.042][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.042][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.042][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.042][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.043][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.043][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.043][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.043][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.043][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.043][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.043][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.043][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.043][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.043][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.043][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.043][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.043][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.044][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.044][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.044][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.044][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.044][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.044][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.044][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.044][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.044][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.044][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.044][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.044][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.044][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.044][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.045][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.045][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.045][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.045][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.045][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.045][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.045][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.045][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.045][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.045][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.045][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.045][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.045][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.046][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.046][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.046][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.046][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.046][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 7700 batches in 2.399057518s +[06:42:55.046][PUT] put #7700 +[06:42:55.046][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.046][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.046][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.046][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.046][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.046][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.046][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.046][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.047][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.047][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.047][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.047][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.047][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.047][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.047][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.047][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.047][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.047][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.047][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.047][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.047][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.048][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.048][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.048][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.048][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.048][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.048][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.048][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.048][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.048][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.048][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.048][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.048][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.048][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.048][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.049][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.049][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.049][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.049][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.049][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.049][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.049][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.049][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.049][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.049][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.049][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.049][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.049][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.050][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.050][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.050][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.050][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.050][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.050][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.050][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.050][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.050][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.050][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.050][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.050][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.050][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.051][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.051][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.051][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.051][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.051][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.051][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.051][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.051][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.051][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.051][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.051][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.051][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.051][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.051][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.052][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.052][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.052][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.052][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.052][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.052][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.052][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.052][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.052][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.052][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.052][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.052][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.052][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.053][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.053][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.053][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.053][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.053][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.053][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.053][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.053][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.053][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.053][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.053][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.053][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 7800 batches in 2.406591516s +[06:42:55.053][PUT] put #7800 +[06:42:55.053][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.054][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.054][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.054][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.054][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.054][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.054][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.054][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.054][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.054][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.054][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.054][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.054][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.054][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.055][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.055][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.055][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.055][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.055][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.055][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.055][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.055][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.055][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.055][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.055][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.055][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.055][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.055][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.056][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.056][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.056][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.056][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.056][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.056][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.056][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.056][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.056][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.056][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.056][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.056][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.056][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.057][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.057][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.057][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.057][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.057][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.057][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.057][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.057][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.057][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.057][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.057][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.057][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.057][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.058][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.058][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.058][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.058][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.058][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.058][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.058][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.058][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.058][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.058][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.058][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.058][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.058][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.059][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.059][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.059][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.059][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.059][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.059][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.059][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.059][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.059][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.059][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.059][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.059][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.059][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.059][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.060][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.060][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.060][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.060][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.060][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.060][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.060][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.060][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.060][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.060][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.060][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.060][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.060][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.061][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.061][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.061][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.061][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.061][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.061][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 7900 batches in 2.414158382s +[06:42:55.061][PUT] put #7900 +[06:42:55.061][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.061][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.061][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.061][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.061][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.061][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.061][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.062][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.062][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.062][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.062][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.062][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.062][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.062][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.062][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.062][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.062][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.062][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.062][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.062][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.063][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.063][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.063][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.063][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.063][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.063][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.063][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.063][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.063][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.063][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.063][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.063][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.063][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.063][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.064][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.064][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.064][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.064][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.064][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.064][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.064][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.064][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.064][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.064][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.064][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.064][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.064][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.065][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.065][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.065][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.065][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.065][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.065][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.065][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.065][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.065][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.065][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.065][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.065][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.065][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.066][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.066][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.066][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.066][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.066][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.066][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.066][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.066][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.066][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.066][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.066][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.066][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.066][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.066][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.067][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.067][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.067][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.067][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.067][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.067][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.067][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.067][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.067][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.067][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.067][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.067][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.067][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.068][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.068][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.068][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.068][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.068][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.068][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.068][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.068][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.068][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.068][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.068][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.068][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.068][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 8000 batches in 2.421649333s +[06:42:55.068][PUT] put #8000 +[06:42:55.069][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.069][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.069][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.069][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.069][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.069][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.069][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.069][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.069][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.069][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.069][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.069][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.069][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.069][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.070][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.070][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.070][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.070][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.070][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.070][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.070][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.070][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.070][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.070][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.070][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.070][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.070][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.071][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.071][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.071][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.071][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.071][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.071][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.071][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.071][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.071][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.071][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.071][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.071][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.071][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.072][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.072][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.072][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.072][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.072][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.072][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.072][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.072][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.072][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.072][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.072][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.072][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.072][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.072][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.073][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.073][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.073][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.073][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.073][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.073][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.073][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.073][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.073][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.073][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.073][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.073][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.073][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.074][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.074][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.074][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.074][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.074][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.074][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.074][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.074][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.074][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.074][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.074][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.074][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.074][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.075][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.075][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.075][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.075][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.075][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.075][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.075][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.075][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.075][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.075][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.075][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.075][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.075][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.075][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.076][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.076][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.076][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.076][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.076][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.076][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 8100 batches in 2.429165815s +[06:42:55.076][PUT] put #8100 +[06:42:55.076][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.076][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.076][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.076][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.076][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.076][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.076][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.077][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.077][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.077][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.077][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.077][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.077][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.077][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.077][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.077][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.077][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.077][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.077][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.077][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.078][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.078][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.078][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.078][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.078][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.078][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.078][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.078][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.078][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.078][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.078][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.078][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.078][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.079][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.079][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.079][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.079][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.079][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.079][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.079][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.079][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.079][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.079][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.079][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.079][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.079][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.079][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.080][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.080][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.080][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.080][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.080][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.080][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.080][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.080][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.080][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.080][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.080][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.080][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.080][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.081][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.081][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.081][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.081][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.081][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.081][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.081][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.081][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.081][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.081][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.081][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.081][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.081][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.082][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.082][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.082][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.082][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.082][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.082][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.082][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.082][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.082][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.082][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.082][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.082][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.082][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.082][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.083][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.083][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.083][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.083][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.083][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.083][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.083][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.083][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.083][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.083][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.083][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.083][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.083][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 8200 batches in 2.436735136s +[06:42:55.084][PUT] put #8200 +[06:42:55.084][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.084][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.084][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.084][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.084][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.084][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.084][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.084][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.084][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.084][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.084][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.084][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.085][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.085][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.085][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.085][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.085][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.085][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.085][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.085][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.085][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.085][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.085][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.085][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.085][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.086][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.086][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.086][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.086][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.086][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.086][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.086][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.086][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.086][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.086][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.086][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.086][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.086][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.087][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.087][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.087][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.087][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.087][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.087][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.087][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.087][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.087][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.087][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.087][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.087][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.087][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.087][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.088][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.088][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.088][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.088][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.088][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.088][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.088][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.088][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.088][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.088][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.088][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.088][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.088][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.089][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.089][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.089][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.089][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.089][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.089][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.089][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.089][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.089][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.089][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.089][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.089][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.089][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.090][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.090][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.090][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.090][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.090][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.090][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.090][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.090][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.090][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.090][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.090][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.090][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.091][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.091][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.091][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.091][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.091][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.091][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.091][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.091][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.091][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.091][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 8300 batches in 2.444422352s +[06:42:55.091][PUT] put #8300 +[06:42:55.091][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.091][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.091][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.092][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.092][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.092][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.092][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.092][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.092][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.092][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.092][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.092][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.092][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.092][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.092][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.092][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.092][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.093][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.093][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.093][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.093][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.093][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.093][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.093][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.093][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.093][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.093][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.093][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.093][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.093][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.094][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.094][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.094][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.094][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.094][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.094][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.094][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.094][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.094][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.094][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.094][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.094][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.094][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.094][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.095][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.095][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.095][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.095][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.095][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.095][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.095][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.095][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.095][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.095][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.095][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.095][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.095][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.096][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.096][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.096][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.096][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.096][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.096][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.096][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.096][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.096][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.096][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.096][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.097][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.097][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.097][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.097][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.097][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.097][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.097][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.097][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.097][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.097][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.097][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.097][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.097][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.097][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.098][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.098][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.098][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.098][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.098][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.098][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.098][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.098][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.098][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.098][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.098][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.098][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.098][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.099][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.099][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.099][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.099][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.099][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 8400 batches in 2.452082585s +[06:42:55.099][PUT] put #8400 +[06:42:55.099][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.099][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.099][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.099][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.099][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.099][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.099][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.099][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.100][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.100][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.100][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.100][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.100][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.100][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.100][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.100][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.100][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.100][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.100][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.100][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.100][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.101][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.101][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.101][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.101][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.101][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.101][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.101][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.101][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.101][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.101][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.101][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.101][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.101][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.102][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.102][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.102][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.102][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.102][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.102][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.102][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.102][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.102][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.102][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.102][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.102][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.102][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.102][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.103][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.103][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.103][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.103][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.103][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.103][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.103][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.103][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.103][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.103][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.103][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.103][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.103][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.104][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.104][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.104][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.104][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.104][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.104][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.104][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.104][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.104][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.104][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.104][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.104][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.104][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.105][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.105][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.105][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.105][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.105][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.105][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.105][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.105][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.105][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.105][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.105][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.105][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.105][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.105][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.106][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.106][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.106][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.106][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.106][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.106][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.106][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.106][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.106][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.106][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.106][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.106][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 8500 batches in 2.459607743s +[06:42:55.106][PUT] put #8500 +[06:42:55.106][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.107][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.107][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.107][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.107][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.107][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.107][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.107][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.107][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.107][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.107][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.107][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.107][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.107][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.108][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.108][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.108][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.108][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.108][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.108][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.108][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.108][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.108][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.108][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.108][WAL_TIME_TRIGGER] pending_bytes=187582304, interval elapsed, triggering flush to batch #1323 +[06:42:55.108][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 1323, done: None } +[06:42:55.108][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #1323, starting flush +[06:42:55.108][WAL_FLUSH_HANDLER] Skipping flush to batch #1323 - already at #1884 +[06:42:55.108][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.108][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.109][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.109][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.109][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.109][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.109][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.109][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.109][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.109][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.109][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.109][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.109][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.109][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.109][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.109][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.110][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.110][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.110][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.110][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.110][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.110][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.110][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.110][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.110][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.110][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.110][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.110][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.110][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.111][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.111][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.111][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.111][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.111][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.111][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.111][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.111][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.111][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.111][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.111][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.111][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.111][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.112][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.112][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.112][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.112][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.112][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.112][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.112][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.112][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.112][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.112][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.112][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.112][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.112][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.112][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.113][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.113][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.113][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.113][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.113][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.113][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.113][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.113][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.113][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.113][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.113][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.113][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.113][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.114][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.114][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.114][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.114][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.114][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.114][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.114][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 8600 batches in 2.467207466s +[06:42:55.114][PUT] put #8600 +[06:42:55.114][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.114][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.114][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.114][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.114][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.114][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.115][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.115][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.115][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.115][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.115][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.115][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.115][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.115][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.115][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.115][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.115][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.115][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.115][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.115][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.116][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.116][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.116][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.116][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.116][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.116][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.116][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.116][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.116][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.116][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.116][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.116][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.116][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.117][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.117][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.117][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.117][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.117][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.117][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.117][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.117][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.117][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.117][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.117][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.117][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.117][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.117][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.118][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.118][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.118][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.118][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.118][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.118][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.118][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.118][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.118][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.118][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.118][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.118][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.118][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.119][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.119][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.119][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.119][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.119][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.119][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.119][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.119][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.119][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.119][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.119][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.119][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.119][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.119][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.120][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.120][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.120][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.120][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.120][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.120][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.120][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.120][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.120][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.120][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.120][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.120][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.120][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.121][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.121][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.121][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.121][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.121][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.121][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.121][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.121][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.121][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.121][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.121][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.121][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.121][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 8700 batches in 2.474663725s +[06:42:55.122][PUT] put #8700 +[06:42:55.122][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.122][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.122][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.122][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.122][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.122][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.122][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.122][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.122][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.122][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.122][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.122][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.122][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.123][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.123][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.123][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.123][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.123][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.123][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.123][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.123][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.123][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.123][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.123][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.123][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.123][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.123][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.124][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.124][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.124][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.124][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.124][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.124][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.124][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.124][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.124][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.124][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.124][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.124][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.124][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.125][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.125][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.125][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.125][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.125][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.125][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.125][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.125][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.125][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.125][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.125][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.125][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.125][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.126][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.126][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.126][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.126][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.126][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.126][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.126][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.126][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.126][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.126][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.126][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.126][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.126][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.126][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.127][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.127][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.127][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.127][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.127][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.127][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.127][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.127][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.127][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.127][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.127][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.127][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.127][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.128][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.128][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.128][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.128][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.128][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.128][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.128][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.128][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.128][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.128][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.128][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.128][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.128][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.129][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.129][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.129][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.129][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.129][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.129][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.129][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 8800 batches in 2.482209688s +[06:42:55.129][PUT] put #8800 +[06:42:55.129][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.129][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.129][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.129][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.129][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.129][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.130][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.130][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.130][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.130][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.130][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.130][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.130][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.130][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.130][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.130][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.130][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.130][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.130][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.130][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.131][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.131][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.131][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.131][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.131][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.131][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.131][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.131][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.131][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.131][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.131][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.131][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.131][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.132][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.132][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.132][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.132][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.132][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.132][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.132][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.132][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.132][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.132][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.132][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.132][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.132][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.132][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.133][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.133][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.133][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.133][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.133][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.133][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.133][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.133][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.133][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.133][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.133][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.133][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.133][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.134][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.134][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.134][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.134][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.134][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.134][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.134][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.134][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.134][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.134][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.134][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.134][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.134][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.135][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.135][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.135][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.135][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.135][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.135][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.135][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.135][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.135][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.135][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.135][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.135][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.135][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.136][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.136][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.136][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.136][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.136][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.136][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.136][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.136][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.136][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.136][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.136][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.136][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.136][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.136][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 8900 batches in 2.489717219s +[06:42:55.137][PUT] put #8900 +[06:42:55.137][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.137][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.137][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.137][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.137][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.137][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.137][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.137][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.137][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.137][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.137][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.137][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.137][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.138][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.138][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.138][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.138][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.138][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.138][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.138][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.138][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.138][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.138][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.138][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.138][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.138][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.139][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.139][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.139][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.139][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.139][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.139][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.139][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.139][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.139][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.139][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.139][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.139][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.139][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.140][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.140][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.140][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.140][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.140][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.140][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.140][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.140][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.140][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.140][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.140][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.140][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.140][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.140][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.141][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.141][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.141][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.141][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.141][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.141][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.141][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.141][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.141][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.141][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.141][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.141][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.141][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.142][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.142][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.142][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.142][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.142][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.142][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.142][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.142][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.142][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.142][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.142][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.142][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.142][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.143][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.143][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.143][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.143][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.143][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.143][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.143][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.143][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.143][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.143][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.143][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.143][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.143][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.143][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.144][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.144][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.144][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.144][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.144][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.144][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.144][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 9000 batches in 2.497257537s +[06:42:55.144][PUT] put #9000 +[06:42:55.144][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.144][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.144][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.144][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.144][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.144][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.145][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.145][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.145][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.145][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.145][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.145][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.145][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.145][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.145][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.145][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.145][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.145][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.145][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.146][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.146][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.146][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.146][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.146][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.146][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.146][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.146][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.146][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.146][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.146][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.146][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.146][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.147][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.147][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.147][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.147][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.147][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.147][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.147][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.147][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.147][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.147][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.147][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.147][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.147][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.147][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.148][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.148][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.148][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.148][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.148][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.148][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.148][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.148][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.148][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.148][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.148][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.148][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.148][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.149][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.149][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.149][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.149][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.149][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.149][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.149][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.149][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.149][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.149][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.149][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.149][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.149][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.150][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.150][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.150][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.150][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.150][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.150][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.150][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.150][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.150][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.150][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.150][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.150][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.150][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.151][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.151][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.151][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.151][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.151][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.151][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.151][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.151][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.151][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.151][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.151][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.151][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.151][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.151][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.152][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 9100 batches in 2.504783742s +[06:42:55.152][PUT] put #9100 +[06:42:55.152][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.152][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.152][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.152][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.152][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.152][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.152][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.152][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.152][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.152][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.152][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.152][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.153][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.153][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.153][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.153][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.153][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.153][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.153][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.153][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.153][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.153][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.153][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.153][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.153][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.154][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.154][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.154][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.154][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.154][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.154][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.154][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.154][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.154][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.154][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.154][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.154][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.154][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.154][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.155][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.155][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.155][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.155][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.155][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.155][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.155][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.155][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.155][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.155][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.155][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.155][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.155][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.156][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.156][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.156][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.156][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.156][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.156][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.156][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.156][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.156][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.156][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.156][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.156][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.156][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.156][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.157][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.157][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.157][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.157][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.157][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.157][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.157][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.157][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.157][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.157][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.157][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.157][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.157][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.158][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.158][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.158][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.158][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.158][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.158][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.158][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.158][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.158][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.158][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.158][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.158][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.158][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.159][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.159][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.159][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.159][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.159][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.159][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.159][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.159][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 9200 batches in 2.51226589s +[06:42:55.159][PUT] put #9200 +[06:42:55.159][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.159][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.159][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.159][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.159][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.159][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.160][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.160][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.160][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.160][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.160][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.160][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.160][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.160][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.160][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.160][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.160][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.160][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.160][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.161][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.161][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.161][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.161][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.161][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.161][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.161][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.161][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.161][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.161][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.161][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.161][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.161][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.162][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.162][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.162][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.162][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.162][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.162][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.162][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.162][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.162][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.162][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.162][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.162][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.162][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.163][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.163][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.163][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.163][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.163][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.163][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.163][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.163][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.163][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.163][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.163][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.163][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.163][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.164][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.164][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.164][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.164][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.164][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.164][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.164][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.164][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.164][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.164][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.164][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.164][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.164][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.165][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.165][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.165][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.165][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.165][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.165][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.165][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.165][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.165][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.165][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.165][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.165][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.165][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.165][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.166][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.166][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.166][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.166][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.166][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.166][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.166][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.166][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.166][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.166][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.166][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.166][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.166][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.167][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.167][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 9300 batches in 2.519878636s +[06:42:55.167][PUT] put #9300 +[06:42:55.167][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.167][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.167][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.167][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.167][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.167][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.167][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.167][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.167][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.167][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.168][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.168][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.168][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.168][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.168][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.168][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.168][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.168][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.168][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.168][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.168][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.168][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.168][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.169][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.169][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.169][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.169][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.169][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.169][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.169][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.169][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.169][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.169][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.169][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.169][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.169][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.169][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.170][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.170][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.170][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.170][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.170][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.170][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.170][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.170][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.170][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.170][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.170][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.170][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.170][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.171][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.171][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.171][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.171][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.171][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.171][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.171][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.171][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.171][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.171][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.171][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.171][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.171][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.172][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.172][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.172][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.172][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.172][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.172][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.172][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.172][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.172][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.172][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.172][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.172][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.172][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.173][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.173][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.173][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.173][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.173][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.173][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.173][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.173][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.173][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.173][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.173][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.173][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.173][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.174][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.174][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.174][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.174][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.174][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.174][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.174][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.174][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.174][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.174][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.174][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 9400 batches in 2.527526664s +[06:42:55.174][PUT] put #9400 +[06:42:55.174][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.174][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.175][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.175][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.175][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.175][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.175][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.175][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.175][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.175][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.175][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.175][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.175][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.175][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.175][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.176][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.176][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.176][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.176][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.176][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.176][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.176][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.176][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.176][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.176][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.176][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.176][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.176][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.177][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.177][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.177][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.177][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.177][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.177][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.177][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.177][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.177][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.177][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.177][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.177][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.177][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.178][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.178][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.178][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.178][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.178][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.178][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.178][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.178][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.178][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.178][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.178][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.178][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.178][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.179][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.179][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.179][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.179][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.179][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.179][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.179][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.179][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.179][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.179][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.179][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.179][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.179][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.179][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.180][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.180][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.180][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.180][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.180][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.180][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.180][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.180][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.180][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.180][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.180][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.180][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.180][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.181][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.181][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.181][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.181][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.181][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.181][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.181][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.181][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.181][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.181][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.181][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.181][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.182][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.182][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.182][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.182][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.182][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.182][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.182][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 9500 batches in 2.535188492s +[06:42:55.182][PUT] put #9500 +[06:42:55.182][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.182][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.182][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.182][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.182][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.182][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.183][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.183][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.183][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.183][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.183][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.183][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.183][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.183][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.183][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.183][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.183][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.183][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.183][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.183][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.184][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.184][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.184][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.184][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.184][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.184][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.184][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.184][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.184][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.184][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.184][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.184][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.184][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.185][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.185][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.185][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.185][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.185][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.185][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.185][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.185][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.185][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.185][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.185][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.185][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.185][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.185][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.186][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.186][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.186][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.186][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.186][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.186][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.186][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.186][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.186][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.186][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.186][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.186][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.186][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.187][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.187][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.187][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.187][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.187][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.187][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.187][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.187][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.187][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.187][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.187][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.187][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.187][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.188][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.188][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.188][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.188][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.188][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.188][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.188][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.188][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.188][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.188][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.188][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.188][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.188][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.189][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.189][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.189][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.189][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.189][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.189][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.189][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.189][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.189][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.189][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.189][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.189][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.189][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.189][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 9600 batches in 2.542715307s +[06:42:55.190][PUT] put #9600 +[06:42:55.190][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.190][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.190][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.190][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.190][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.190][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.190][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.190][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.190][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.190][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.190][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.190][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.190][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.191][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.191][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.191][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.191][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.191][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.191][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.191][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.191][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.191][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.191][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.191][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.191][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.191][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.192][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.192][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.192][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.192][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.192][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.192][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.192][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.192][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.192][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.192][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.192][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.192][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.192][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.192][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.193][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.193][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.193][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.193][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.193][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.193][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.193][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.193][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.193][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.193][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.193][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.193][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.193][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.194][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.194][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.194][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.194][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.194][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.194][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.194][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.194][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.194][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.194][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.194][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.194][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.194][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.195][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.195][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.195][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.195][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.195][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.195][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.195][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.195][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.195][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.195][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.195][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.195][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.195][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.195][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.196][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.196][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.196][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.196][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.196][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.196][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.196][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.196][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.196][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.196][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.196][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.196][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.196][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.197][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.197][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.197][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.197][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.197][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.197][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.197][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 9700 batches in 2.550254036s +[06:42:55.197][PUT] put #9700 +[06:42:55.197][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.197][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.197][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.197][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.197][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.197][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.198][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.198][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.198][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.198][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.198][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.198][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.198][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.198][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.198][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.198][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.198][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.198][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.198][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.199][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.199][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.199][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.199][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.199][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.199][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.199][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.199][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.199][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.199][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.199][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.199][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.199][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.200][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.200][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.200][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.200][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.200][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.200][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.200][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.200][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.200][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.200][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.200][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.200][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.200][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.200][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.201][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.201][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.201][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.201][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.201][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.201][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.201][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.201][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.201][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.201][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.201][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.201][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.201][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.202][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.202][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.202][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.202][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.202][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.202][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.202][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.202][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.202][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.202][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.202][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.202][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.202][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.202][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.203][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.203][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.203][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.203][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.203][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.203][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.203][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.203][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.203][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.203][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.203][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.203][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.203][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.204][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.204][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.204][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.204][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.204][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.204][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.204][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.204][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.204][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.204][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.204][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.204][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.204][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.205][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 9800 batches in 2.557739463s +[06:42:55.205][PUT] put #9800 +[06:42:55.205][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.205][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.205][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.205][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.205][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.205][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.205][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.205][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.205][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.205][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.205][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.205][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.205][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.206][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.206][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.206][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.206][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.206][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.206][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.206][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.206][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.206][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.206][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.206][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.206][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.206][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.207][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.207][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.207][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.207][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.207][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.207][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.207][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.207][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.207][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.207][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.207][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.207][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.207][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.208][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.208][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.208][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.208][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.208][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.208][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.208][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.208][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.208][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.208][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.208][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.208][WAL_TIME_TRIGGER] pending_bytes=276827408, interval elapsed, triggering flush to batch #2649 +[06:42:55.208][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 2649, done: None } +[06:42:55.208][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #2649, starting flush +[06:42:55.209] [WAL_FLUSH] Flushing range 1884..2649 (765 batches, 15300 rows) to WAL #45 +[06:42:55.267][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.267][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.267][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.268][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.268][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.268][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.268][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.268][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.268][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.268][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.268][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.268][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.268][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.268][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.268][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.268][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.268][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.269][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.269][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.269][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.269][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.269][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.269][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.269][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.269][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.269][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.270][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.271][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.271][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.271][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.271][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.271][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.271][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.271][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.271][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.271][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.271][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.271][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.271][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.271][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.272][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.272][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.272][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.272][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.272][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.272][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.272][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.272][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.272][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.273][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 9900 batches in 2.626576884s +[06:42:55.273][PUT] put #9900 +[06:42:55.273][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.274][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.274][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.274][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.274][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.274][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.274][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.274][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.274][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.274][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.274][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.274][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.274][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.274][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.275][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.275][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.275][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.275][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.275][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.275][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.275][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.275][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.275][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.275][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.275][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.275][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.275][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.276][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.276][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.276][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.276][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.276][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.276][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.276][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.276][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.276][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.276][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.276][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.276][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.276][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.276][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.277][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.277][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.277][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.277][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.277][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.277][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.277][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.277][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.277][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.277][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.277][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.277][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.277][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.278][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.278][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.278][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.278][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.278][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.278][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.278][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.278][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.278][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.278][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.278][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.280][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.281][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.281][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.281][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.281][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.281][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.281][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.281][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.281][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.281][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.281][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.281][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.281][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.281][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.282][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.282][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.282][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.282][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.282][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.282][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.282][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.282][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.282][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.282][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.282][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.282][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.282][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.283][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.283][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.283][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.283][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.283][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.283][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.283][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:42:55.283][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 10000 batches in 2.636291345s +[TEST] All writes done in 2.636301742s +[TEST] Closing writer... +[06:42:55.645] [WAL_FLUSH] WAL #45 complete: S3=401ms, index=0ms, 765 batches +[TEST] Close took 485.885837ms +[TEST] Stats: puts=10000, WAL flushes=12, WAL bytes=82169944 +[TEST] Throughput: 75864 rows/sec +test dataset::mem_wal::write::region_writer_tests::test_region_writer_s3 ... ok + +test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 1146 filtered out; finished in 10.44s + + Running tests/integration_tests.rs (target/debug/deps/integration_tests-deb1c7e8f5442eaa) + +running 0 tests + +test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running tests/resource_tests.rs (target/debug/deps/resource_tests-7260eebe4244fdec) + +running 0 tests + +test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 3 filtered out; finished in 0.00s + +[ec2-user@ip-172-31-76-18 lance]$ diff --git a/rust/lance/src/dataset/mem_wal/write/writer.rs b/rust/lance/src/dataset/mem_wal/write/writer.rs index e6357a96e9f..63067b87da4 100644 --- a/rust/lance/src/dataset/mem_wal/write/writer.rs +++ b/rust/lance/src/dataset/mem_wal/write/writer.rs @@ -1539,6 +1539,10 @@ impl MemTableFlushHandler { state.immutable_memtables.push(immutable); state.last_flushed_wal_id = last_wal_id; + // Reset WAL watermarks for new memtable (batch IDs start from 0) + // This is critical - without it, pending_bytes stays stale after freeze + self.wal_buffer.reset_for_new_memtable(); + debug!( "Frozen memtable generation {}, queue size = {}", next_generation - 1, From 7547851b9c18555bd5a01d8fe05c339d66747450 Mon Sep 17 00:00:00 2001 From: Heng Ge Date: Wed, 21 Jan 2026 22:53:01 -0800 Subject: [PATCH 05/20] fix(mem_wal): use saturating subtraction for pending_bytes to prevent underflow When reset_for_new_memtable() sets pending_bytes to 0, in-flight WAL flushes from the old memtable may still complete and try to subtract their flushed bytes. This caused underflow to near-max u64 values like 18446744073699071552, leading to spurious flush triggers. The fix adds saturating_sub_pending_bytes() which uses a CAS loop to ensure subtraction never goes below 0. Co-Authored-By: Jack Ye Co-Authored-By: Claude Opus 4.5 --- result.log | 20821 +++++++++--------- rust/lance/src/dataset/mem_wal/write/wal.rs | 30 +- 2 files changed, 10428 insertions(+), 10423 deletions(-) diff --git a/result.log b/result.log index eaef295d156..88dbf84a70e 100644 --- a/result.log +++ b/result.log @@ -1,10427 +1,10418 @@ -[ec2-user@ip-172-31-76-18 lance]$ RUST_LOG=debug DATASET_PREFIX=s3://gh-dev-us-east-1/t39 cargo test -p lance region_writer_tests::test_region_writer_s3 -- --nocapture --ignored 2>&1 | tee result.log +[ec2-user@ip-172-31-76-18 lance]$ RUST_LOG=debug DATASET_PREFIX=s3://gh-dev-us-east-1/t39 cargo test -p lance region_writer_tests::test_region_writer_s3 -- --nocapture --ignored warning: lance-linalg@2.1.0-beta.0: fp16kernels feature is not enabled, skipping build of fp16 kernels - Finished `test` profile [unoptimized + debuginfo] target(s) in 0.34s + Compiling lance v2.1.0-beta.0 (/data/lance/rust/lance) + Finished `test` profile [unoptimized + debuginfo] target(s) in 56.50s Running unittests src/lib.rs (target/debug/deps/lance-0b12383e8102b815) running 1 test -[TEST] Creating dataset at s3://gh-dev-us-east-1/t39/test_s3_e6af2aca-8371-41e8-be56-0e70b87e6722 +[TEST] Creating dataset at s3://gh-dev-us-east-1/t39/test_s3_624b79fe-0b74-4324-be53-b288a085af44 [TEST] Config: flush_interval=Some(100ms), wal_buffer_size=10485760 -[06:42:46.308][WRITER] Creating wal_flusher with flush_interval=Some(100ms) -[06:42:46.308][EXECUTOR] Adding handler task 'wal_flusher' -[06:42:46.308][WRITER] Adding memtable_flusher handler -[06:42:46.308][EXECUTOR] Adding handler task 'memtable_flusher' -[06:42:46.308][WRITER] memtable_flusher handler added -[06:42:46.308][EXECUTOR] Adding handler task 'writer' +[06:50:07.150][WRITER] Creating wal_flusher with flush_interval=Some(100ms) +[06:50:07.151][EXECUTOR] Adding handler task 'wal_flusher' +[06:50:07.151][WRITER] Adding memtable_flusher handler +[06:50:07.151][EXECUTOR] Adding handler task 'memtable_flusher' +[06:50:07.151][WRITER] memtable_flusher handler added +[06:50:07.151][EXECUTOR] Adding handler task 'writer' [TEST] Writing 10000 batches x 20 rows = 200000 total rows -[06:42:52.647][PUT] put #0 -[06:42:52.647][EXECUTOR] Task 'wal_flusher' spawned and starting -[06:42:52.647][DISPATCHER] Task 'wal_flusher' started, has 0 tickers -[06:42:52.647][EXECUTOR] Task 'memtable_flusher' spawned and starting -[06:42:52.647][DISPATCHER] Task 'memtable_flusher' started, has 0 tickers -[06:42:52.647][EXECUTOR] Task 'writer' spawned and starting -[06:42:52.647][DISPATCHER] Task 'writer' started, has 0 tickers -[06:42:52.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 100 batches in 8.525813ms -[06:42:52.655][PUT] put #100 -[06:42:52.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.659][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.659][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.659][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.659][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.659][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.659][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.659][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.659][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.659][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.659][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.659][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.659][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.659][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.660][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.660][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.660][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.660][WAL_SIZE_TRIGGER] pending_bytes=10486344, threshold #1 crossed (10MB), triggering flush to batch #157 -[06:42:52.660][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 157, done: None } -[06:42:52.660][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #157, starting flush -[06:42:52.660] [WAL_FLUSH] Flushing range 0..157 (157 batches, 3140 rows) to WAL #1 -[06:42:52.673][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.673][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.673][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.673][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.673][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.673][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.673][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.673][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.673][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.673][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.674][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.674][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.674][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.674][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.674][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.674][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.674][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.674][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.674][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.674][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.674][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.674][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.675][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.675][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.675][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.675][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.675][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.675][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.676][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.676][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.677][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.677][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.677][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.677][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.677][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.677][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.677][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.677][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.677][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.677][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.677][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.678][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.678][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 200 batches in 32.054641ms -[06:42:52.679][PUT] put #200 -[06:42:52.679][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.679][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.679][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.679][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.680][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.680][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.680][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.680][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.680][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.680][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.680][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.680][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.680][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.680][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.680][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.681][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.681][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.681][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.681][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.681][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.682][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.684][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.684][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.684][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.684][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.684][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.685][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.685][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.685][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.686][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.686][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.686][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.686][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.686][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.687][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.687][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.687][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.687][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.687][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.688][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.688][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.688][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.688][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.688][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.688][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.688][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.688][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.688][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.688][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.688][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.689][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.689][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.689][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.689][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.689][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.689][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.689][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.689][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.689][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.689][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.690][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.690][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.690][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.690][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.690][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.690][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.690][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.690][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.690][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.690][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.690][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.691][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.691][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.691][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.691][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.691][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.691][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.691][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.691][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.691][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.691][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.691][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.691][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.692][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.692][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.692][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.692][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.692][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.692][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.692][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.692][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.692][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.692][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.692][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.692][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.692][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.693][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.693][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.693][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.693][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 300 batches in 45.982669ms -[06:42:52.693][PUT] put #300 -[06:42:52.693][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.693][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.693][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.693][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.693][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.693][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.693][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.693][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.693][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.694][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.694][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.694][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.694][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.694][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.694][WAL_SIZE_TRIGGER] pending_bytes=20972688, threshold #2 crossed (20MB), triggering flush to batch #314 -[06:42:52.694][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.694][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.694][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.694][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.694][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.694][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.694][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.694][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.695][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.695][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.695][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.695][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.695][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.695][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.695][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.695][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.695][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.695][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.695][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.695][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.695][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.696][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.696][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.696][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.696][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.696][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.696][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.696][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.696][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.696][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.696][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.696][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.696][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.696][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.697][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.697][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.697][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.697][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.697][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.697][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.697][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.697][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.697][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.697][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.697][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.697][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.697][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.698][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.698][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.698][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.698][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.698][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.698][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.698][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.698][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.698][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.698][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.698][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.698][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.698][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.699][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.699][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.699][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.699][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.699][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.699][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.699][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.699][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.699][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.699][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.699][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.699][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.699][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.700][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.700][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.700][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.700][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.700][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.700][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.700][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.700][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.700][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.700][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.700][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.700][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.700][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 400 batches in 53.726039ms -[06:42:52.701][PUT] put #400 -[06:42:52.701][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.701][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.701][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.701][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.701][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.701][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.701][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.701][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.701][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.701][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.701][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.701][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.701][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.702][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.702][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.702][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.702][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.702][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.702][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.702][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.702][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.702][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.702][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.702][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.702][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.702][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.703][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.703][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.703][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.703][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.703][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.703][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.703][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.703][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.703][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.703][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.703][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.703][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.703][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.704][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.704][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.704][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.704][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.704][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.704][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.704][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.704][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.704][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.704][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.704][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.704][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.704][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.705][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.705][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.705][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.705][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.705][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.705][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.705][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.705][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.705][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.705][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.705][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.705][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.705][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.706][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.706][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.706][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.706][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.706][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.706][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.706][WAL_SIZE_TRIGGER] pending_bytes=31459032, threshold #3 crossed (30MB), triggering flush to batch #471 -[06:42:52.706][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.706][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.706][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.706][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.706][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.706][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.706][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.707][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.707][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.707][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.707][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.707][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.707][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.707][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.707][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.707][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.707][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.707][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.707][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.707][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.708][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.708][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.708][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.708][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.708][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.708][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.708][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.708][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.708][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 500 batches in 61.421497ms -[06:42:52.708][PUT] put #500 -[06:42:52.708][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.708][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.708][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.709][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.709][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.709][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.709][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.709][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.709][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.709][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.709][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.709][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.709][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.709][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.709][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.709][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.710][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.710][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.710][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.710][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.710][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.710][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.710][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.710][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.710][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.710][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.710][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.710][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.710][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.711][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.711][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.711][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.711][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.711][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.711][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.711][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.711][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.711][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.711][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.711][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.711][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.711][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.711][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.712][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.712][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.712][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.712][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.712][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.712][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.712][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.712][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.712][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.712][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.712][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.712][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.712][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.713][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.713][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.713][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.713][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.713][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.713][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.713][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.713][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.713][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.713][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.713][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.713][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.713][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.714][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.714][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.714][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.714][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.714][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.714][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.714][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.714][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.714][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.714][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.714][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.714][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.714][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.715][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.715][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.715][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.715][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.715][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.715][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.715][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.715][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.715][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.715][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.715][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.715][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.715][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.716][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.716][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.716][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.716][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.716][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 600 batches in 69.107919ms -[06:42:52.716][PUT] put #600 -[06:42:52.716][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.716][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.716][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.716][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.716][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.716][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.716][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.717][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.717][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.717][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.717][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.717][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.717][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.717][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.717][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.717][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.717][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.717][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.717][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.717][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.718][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.718][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.718][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.718][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.718][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.718][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.718][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.718][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.718][WAL_SIZE_TRIGGER] pending_bytes=41945376, threshold #4 crossed (40MB), triggering flush to batch #628 -[06:42:52.718][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.718][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.718][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.718][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.718][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.719][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.719][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.719][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.719][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.719][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.719][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.719][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.719][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.719][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.719][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.719][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.719][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.719][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.720][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.720][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.720][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.720][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.720][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.720][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.720][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.720][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.720][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.720][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.720][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.720][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.720][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.721][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.721][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.721][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.721][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.721][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.721][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.721][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.721][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.721][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.721][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.721][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.721][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.721][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.722][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.722][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.722][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.722][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.722][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.722][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.722][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.722][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.722][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.722][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.722][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.722][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.722][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.723][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.723][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.723][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.723][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.723][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.723][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.723][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.723][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.723][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.723][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.723][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.723][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.723][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.724][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.724][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 700 batches in 76.852811ms -[06:42:52.724][PUT] put #700 -[06:42:52.724][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.724][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.724][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.724][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.724][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.724][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.724][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.724][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.724][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.724][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.724][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.725][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.725][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.725][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.725][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.725][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.725][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.725][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.725][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.725][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.725][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.725][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.725][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.725][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.726][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.726][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.726][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.726][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.726][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.726][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.726][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.726][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.726][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.726][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.726][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.726][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.726][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.727][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.727][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.727][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.727][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.727][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.727][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.727][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.727][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.727][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.727][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.727][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.727][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.727][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.728][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.728][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.728][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.728][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.728][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.728][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.728][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.728][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.728][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.728][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.728][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.728][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.728][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.729][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.729][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.729][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.729][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.729][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.729][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.729][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.729][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.729][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.729][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.729][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.729][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.729][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.730][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.730][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.730][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.730][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.730][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.730][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.730][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.730][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.730][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.730][WAL_SIZE_TRIGGER] pending_bytes=52431720, threshold #5 crossed (50MB), triggering flush to batch #785 -[06:42:52.730][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.730][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.730][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.731][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.731][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.731][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.731][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.731][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.731][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.731][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.731][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.731][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.731][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.731][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.731][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 800 batches in 84.577313ms -[06:42:52.731][PUT] put #800 -[06:42:52.731][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.732][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.732][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.732][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.732][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.732][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.732][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.732][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.732][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.732][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.732][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.732][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.732][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.732][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.733][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.733][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.733][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.733][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.733][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.733][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.733][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.733][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.733][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.733][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.733][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.733][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.733][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.734][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.734][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.734][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.734][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.734][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.734][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.734][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.734][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.734][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.734][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.734][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.734][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.734][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.734][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.735][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.735][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.735][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.735][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.735][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.735][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.735][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.735][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.735][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.735][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.735][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.735][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.735][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.736][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.736][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.736][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.736][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.736][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.736][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.736][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.736][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.736][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.736][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.736][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.736][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.736][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.737][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.737][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.737][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.737][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.737][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.737][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.737][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.737][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.737][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.737][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.737][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.737][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.737][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.738][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.738][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.738][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.738][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.738][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.738][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.738][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.738][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.738][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.738][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.738][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.738][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.738][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.739][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.739][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.739][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.739][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.739][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.739][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.739][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 900 batches in 92.260245ms -[06:42:52.739][PUT] put #900 -[06:42:52.739][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.739][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.739][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.739][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.739][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.740][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.740][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.740][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.740][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.740][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.740][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.740][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.740][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.740][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.740][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.740][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.740][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.740][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.740][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.741][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.741][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.741][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.741][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.741][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.741][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.741][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.741][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.741][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.741][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.741][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.741][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.741][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.742][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.742][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.742][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.742][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.742][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.742][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.742][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.742][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.742][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.742][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.742][WAL_SIZE_TRIGGER] pending_bytes=62918064, threshold #6 crossed (60MB), triggering flush to batch #942 -[06:42:52.742][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.742][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.743][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.743][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.743][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.743][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.743][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.743][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.743][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.743][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.743][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.743][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.743][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.743][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.743][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.743][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.744][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.744][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.744][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.744][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.744][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.744][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.744][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.744][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.744][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.744][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.744][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.744][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.744][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.745][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.745][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.745][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.745][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.745][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.745][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.745][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.745][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.745][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.745][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.745][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.745][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.745][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.746][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.746][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.746][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.746][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.746][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.746][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.746][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.746][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.746][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.746][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.746][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.746][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.746][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.747][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.747][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.747][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 1000 batches in 99.981276ms -[06:42:52.747][PUT] put #1000 -[06:42:52.747][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.747][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.747][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.747][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.747][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.747][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.747][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.747][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.747][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.748][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.748][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.748][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.748][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.748][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.748][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.748][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.748][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.748][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.748][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.748][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.748][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.748][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.749][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.749][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.749][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.749][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.749][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.749][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.749][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.749][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.749][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.749][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.749][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.749][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.749][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.750][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.750][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.750][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.750][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.750][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.750][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.750][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.750][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.750][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.750][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.750][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.750][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.750][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.751][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.751][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.751][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.751][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.751][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.751][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.751][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.751][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.751][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.751][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.751][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.751][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.751][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.752][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.752][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.752][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.752][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.752][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.752][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.752][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.752][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.752][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.752][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.752][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.752][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.752][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.753][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.753][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.753][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.753][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.753][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.753][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.753][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.753][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.753][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.753][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.753][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.753][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.753][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.754][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.754][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.754][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.754][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.754][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.754][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.754][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.754][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.754][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.754][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.754][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.754][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.754][WAL_SIZE_TRIGGER] pending_bytes=73404408, threshold #7 crossed (70MB), triggering flush to batch #1099 -[06:42:52.754][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 1100 batches in 107.673281ms -[06:42:52.755][PUT] put #1100 -[06:42:52.755][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.755][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.755][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.755][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.755][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.755][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.755][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.755][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.755][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.755][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.755][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.755][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.755][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.756][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.756][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.756][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.756][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.756][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.756][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.756][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.756][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.756][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.756][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.756][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.756][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.756][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.756][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.757][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.757][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.757][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.757][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.757][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.757][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.757][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.757][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.757][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.757][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.757][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.757][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.757][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.758][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.758][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.758][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.758][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.758][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.758][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.758][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.758][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.758][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.758][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.758][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.758][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.758][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.759][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.759][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.759][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.759][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.759][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.759][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.759][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.759][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.759][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.759][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.759][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.759][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.759][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.760][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.760][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.760][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.760][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.760][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.760][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.760][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.760][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.760][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.760][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.760][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.760][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.760][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.761][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.761][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.761][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.761][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.761][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.761][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.761][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.761][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.761][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.761][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.761][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.761][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.761][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.762][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.762][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.762][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.762][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.762][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.762][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.762][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.762][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 1200 batches in 115.322669ms -[06:42:52.762][PUT] put #1200 -[06:42:52.762][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.762][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.762][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.762][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.762][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.763][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.763][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.763][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.763][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.763][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.763][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.763][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.763][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.763][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.763][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.763][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.763][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.763][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.764][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.764][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.764][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.764][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.764][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.764][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.764][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.764][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.764][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.764][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.764][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.764][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.764][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.765][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.765][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.765][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.765][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.765][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.765][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.765][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.765][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.765][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.765][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.765][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.765][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.765][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.766][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.766][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.766][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.766][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.766][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.766][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.766][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.766][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.766][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.766][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.766][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.766][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.766][WAL_SIZE_TRIGGER] pending_bytes=83890752, threshold #8 crossed (80MB), triggering flush to batch #1256 -[06:42:52.766][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.767][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.767][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.767][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.767][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.767][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.767][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.767][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.767][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.767][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.767][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.767][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.767][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.767][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.768][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.768][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.768][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.768][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.768][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.768][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.768][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.768][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.768][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.768][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.768][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.768][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.768][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.769][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.769][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.769][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.769][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.769][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.769][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.769][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.769][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.769][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.769][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.769][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.769][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.769][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.770][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.770][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.770][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.770][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 1300 batches in 123.018852ms -[06:42:52.770][PUT] put #1300 -[06:42:52.770][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.770][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.770][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.770][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.770][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.770][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.770][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.770][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.770][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.771][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.771][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.771][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.771][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.771][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.771][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.771][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.771][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.771][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.771][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.771][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.771][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.771][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.772][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.772][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.772][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.772][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.772][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.772][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.772][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.772][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.772][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.772][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.772][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.772][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.772][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.773][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.773][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.773][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.773][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.773][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.773][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.773][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.773][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.773][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.773][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.773][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.773][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.773][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.774][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.774][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.774][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.774][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.774][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.774][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.774][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.774][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.774][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.774][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.774][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.774][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.774][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.775][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.775][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.775][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.775][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.775][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.775][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.775][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.775][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.775][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.775][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.775][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.775][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.775][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.776][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.776][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.776][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.776][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.776][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.776][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.776][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.776][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.776][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.776][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.776][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.776][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.776][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.777][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.777][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.777][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.777][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.777][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.777][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.777][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.777][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.777][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.777][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.777][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.777][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.777][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 1400 batches in 130.71336ms -[06:42:52.778][PUT] put #1400 -[06:42:52.778][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.778][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.778][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.778][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.778][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.778][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.778][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.778][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.778][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.778][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.778][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.778][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.778][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.779][WAL_SIZE_TRIGGER] pending_bytes=94377096, threshold #9 crossed (90MB), triggering flush to batch #1413 -[06:42:52.779][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.779][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.779][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.779][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.779][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.779][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.779][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.779][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.779][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.779][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.779][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.779][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.779][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.780][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.780][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.780][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.780][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.780][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.780][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.780][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.780][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.780][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.780][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.780][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.780][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.780][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.781][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.781][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.781][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.781][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.781][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.781][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.781][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.781][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.781][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.781][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.781][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.781][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.781][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.782][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.782][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.782][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.782][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.782][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.782][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.782][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.782][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.782][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.782][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.782][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.782][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.782][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.783][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.783][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.783][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.783][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.783][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.783][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.783][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.783][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.783][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.783][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.783][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.783][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.783][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.784][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.784][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.784][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.784][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.784][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.784][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.784][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.784][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.784][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.784][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.784][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.784][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.784][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.785][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.785][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.785][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.785][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.785][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.785][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.785][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.785][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.785][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 1500 batches in 138.397145ms -[06:42:52.785][PUT] put #1500 -[06:42:52.785][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.785][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.785][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.785][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.791][WAL_SIZE_TRIGGER] pending_bytes=104863440, threshold #10 crossed (100MB), triggering flush to batch #1570 -[06:42:52.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 1600 batches in 146.0778ms -[06:42:52.793][PUT] put #1600 -[06:42:52.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.797][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.797][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.797][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.797][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.797][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.797][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.797][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.797][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.797][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.797][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.797][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.797][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 1700 batches in 153.820696ms -[06:42:52.801][PUT] put #1700 -[06:42:52.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.803][WAL_SIZE_TRIGGER] pending_bytes=115349784, threshold #11 crossed (110MB), triggering flush to batch #1727 -[06:42:52.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 1800 batches in 161.53401ms -[06:42:52.808][PUT] put #1800 -[06:42:52.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.815][WAL_SIZE_TRIGGER] pending_bytes=125836128, threshold #12 crossed (120MB), triggering flush to batch #1884 -[06:42:52.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 1900 batches in 169.200848ms -[06:42:52.816][PUT] put #1900 -[06:42:52.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 2000 batches in 176.879089ms -[06:42:52.824][PUT] put #2000 -[06:42:52.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.827][WAL_SIZE_TRIGGER] pending_bytes=136322472, threshold #13 crossed (130MB), triggering flush to batch #2041 -[06:42:52.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 2100 batches in 184.578873ms -[06:42:52.831][PUT] put #2100 -[06:42:52.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.839][WAL_SIZE_TRIGGER] pending_bytes=146808816, threshold #14 crossed (140MB), triggering flush to batch #2198 -[06:42:52.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 2200 batches in 192.240841ms -[06:42:52.839][PUT] put #2200 -[06:42:52.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 2300 batches in 199.880312ms -[06:42:52.847][PUT] put #2300 -[06:42:52.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.851][WAL_SIZE_TRIGGER] pending_bytes=157295160, threshold #15 crossed (150MB), triggering flush to batch #2355 -[06:42:52.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 2400 batches in 207.539527ms -[06:42:52.854][PUT] put #2400 -[06:42:52.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 2500 batches in 215.219439ms -[06:42:52.862][PUT] put #2500 -[06:42:52.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.863][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.863][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.863][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.863][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.863][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.863][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.863][WAL_SIZE_TRIGGER] pending_bytes=167781504, threshold #16 crossed (160MB), triggering flush to batch #2512 -[06:42:52.863][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.863][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.863][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.863][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.863][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.863][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.863][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.864][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.864][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.864][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.864][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.864][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.864][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.864][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.864][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.864][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.864][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.864][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.864][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.864][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.865][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.865][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.865][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.865][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.865][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.865][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.865][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.865][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.865][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.865][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.865][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.865][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.865][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.866][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.866][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.866][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.866][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.866][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.866][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.866][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.866][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.866][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.866][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.866][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.866][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.866][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.867][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.867][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.867][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.867][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.867][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.867][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.867][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.867][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.867][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.867][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.867][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.867][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.867][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.868][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.868][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.868][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.868][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.868][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.868][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.868][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.868][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.868][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.868][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.868][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.868][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.868][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.869][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.869][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.869][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.869][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.869][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.869][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.869][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.869][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.869][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.869][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.869][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.869][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.869][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.870][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.870][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.870][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 2600 batches in 222.917335ms -[06:42:52.870][PUT] put #2600 -[06:42:52.870][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.870][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.870][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.870][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.870][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.870][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.870][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.870][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.870][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.870][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.871][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.871][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.871][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.871][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.871][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.871][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.871][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.871][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.871][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.871][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.871][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.871][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.871][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.872][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.872][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.872][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.872][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.872][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.872][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.872][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.872][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.872][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.872][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.872][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.872][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.873][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.873][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.873][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.873][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.873][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.873][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.873][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.873][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.873][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.873][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.873][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.873][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.873][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.874][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.874][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.874][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.874][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.874][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.874][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.874][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.874][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.874][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.874][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.874][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.874][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.874][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.875][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.875][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.875][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.875][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.875][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.875][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.875][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.876] [WAL_FLUSH] WAL #1 complete: S3=207ms, index=0ms, 157 batches -[06:42:52.877][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 314, done: None } -[06:42:52.877][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #314, starting flush -[06:42:52.877] [WAL_FLUSH] Flushing range 157..314 (157 batches, 3140 rows) to WAL #2 -[06:42:52.892][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.892][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.894][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.894][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.894][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.894][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.894][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.894][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.894][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.895][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.895][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.895][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.895][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.895][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.895][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.896][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.896][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.896][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.896][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.896][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.896][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.896][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.896][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.896][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.896][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.897][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.897][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.897][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.897][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.897][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.897][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.897][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 2700 batches in 250.380336ms -[06:42:52.897][PUT] put #2700 -[06:42:52.897][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.897][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.897][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.897][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.898][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.898][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.898][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.898][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.898][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.898][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.898][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.898][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.898][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.898][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.899][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.899][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.899][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.899][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.899][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.899][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.899][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.899][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.899][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.899][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.899][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.899][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.900][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.900][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.900][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.900][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.900][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.900][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.900][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.900][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.900][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.900][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.900][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.900][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.900][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.901][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.901][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.901][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.901][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.901][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.901][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.901][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.901][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.901][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.901][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.901][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.901][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.901][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.902][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.902][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.902][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.902][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.902][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.902][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.902][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.902][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.902][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.902][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.902][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.902][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.902][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.903][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.903][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.903][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.903][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.903][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.903][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.903][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.903][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.903][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.903][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.903][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.903][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.903][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.904][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.904][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.904][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.904][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.904][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.904][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.904][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.904][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.904][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.904][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.904][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.904][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.904][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.905][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.905][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.905][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.905][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.905][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.905][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.905][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.905][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.905][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 2800 batches in 258.356838ms -[06:42:52.905][PUT] put #2800 -[06:42:52.905][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.905][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.905][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.905][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.906][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.906][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.906][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.906][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.906][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.906][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.906][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.906][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.906][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.906][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.906][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.906][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.906][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.907][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.907][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.907][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.907][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.907][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.907][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.907][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.907][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.907][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.907][WAL_SIZE_TRIGGER] pending_bytes=178274128, threshold #17 crossed (170MB), triggering flush to batch #2826 -[06:42:52.907][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.907][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.907][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.907][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.908][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.908][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.908][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.908][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.908][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.908][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.908][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.908][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.908][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.908][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.908][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.908][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.908][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.909][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.909][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.909][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.909][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.909][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.909][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.909][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.909][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.909][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.909][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.909][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.909][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.909][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.910][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.910][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.910][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.910][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.910][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.910][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.910][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.910][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.910][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.910][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.910][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.910][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.910][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.911][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.911][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.911][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.911][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.911][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.911][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.911][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.911][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.911][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.911][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.911][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.911][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.911][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.912][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.912][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.912][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.912][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.912][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.912][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.912][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.912][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.912][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.912][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.912][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.912][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.912][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.913][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.913][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.913][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.913][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.913][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 2900 batches in 266.07547ms -[06:42:52.913][PUT] put #2900 -[06:42:52.913][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.913][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.913][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.913][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.913][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.913][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.913][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.913][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.914][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.914][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.914][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.914][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.914][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.914][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.914][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.914][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.914][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.914][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.914][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.914][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.914][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.915][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.915][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.915][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.915][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.915][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.915][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.915][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.915][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.915][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.915][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.915][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.915][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.915][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.916][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.916][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.916][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.916][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.916][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.916][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.916][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.916][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.916][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.916][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.916][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.916][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.916][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.917][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.917][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.917][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.917][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.917][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.917][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.917][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.917][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.917][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.917][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.917][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.917][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.917][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.918][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.918][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.918][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.918][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.918][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.918][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.918][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.918][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.918][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.918][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.918][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.918][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.918][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.919][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.919][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.919][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.919][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.919][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.919][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.919][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.919][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.919][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.919][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.919][WAL_SIZE_TRIGGER] pending_bytes=188760472, threshold #18 crossed (180MB), triggering flush to batch #2983 -[06:42:52.919][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.919][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.919][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.920][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.920][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.920][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.920][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.920][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.920][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.920][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.920][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.920][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.920][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.920][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.920][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.920][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.921][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 3000 batches in 273.763561ms -[06:42:52.921][PUT] put #3000 -[06:42:52.921][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.921][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.921][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.921][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.921][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.921][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.921][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.921][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.921][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.921][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.921][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.921][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.922][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.922][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.922][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.922][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.922][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.922][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.922][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.922][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.922][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.922][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.922][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.922][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.922][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.923][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.923][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.923][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.923][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.923][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.923][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.923][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.923][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.923][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.923][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.923][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.923][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.923][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.924][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.924][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.924][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.924][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.924][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.924][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.924][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.924][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.924][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.924][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.924][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.924][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.924][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.925][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.925][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.925][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.925][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.925][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.925][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.925][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.925][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.925][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.925][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.925][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.925][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.925][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.926][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.926][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.926][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.926][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.926][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.926][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.926][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.926][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.926][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.926][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.926][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.926][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.926][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.927][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.927][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.927][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.927][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.927][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.927][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.927][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.927][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.927][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.927][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.927][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.927][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.927][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.928][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.928][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.928][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.928][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.928][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.928][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.928][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.928][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.928][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.928][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 3100 batches in 281.423669ms -[06:42:52.928][PUT] put #3100 -[06:42:52.928][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.928][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.928][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.929][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.929][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.929][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.929][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.929][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.929][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.929][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.929][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.929][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.929][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.929][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.929][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.929][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.930][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.930][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.930][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.930][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.930][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.930][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.930][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.930][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.930][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.930][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.930][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.930][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.930][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.931][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.931][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.931][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.931][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.931][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.931][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.931][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.931][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.931][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.931][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.931][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.931][WAL_SIZE_TRIGGER] pending_bytes=199246816, threshold #19 crossed (190MB), triggering flush to batch #3140 -[06:42:52.931][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.931][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.932][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.932][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.932][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.932][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.932][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.932][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.932][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.932][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.932][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.932][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.932][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.932][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.932][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.933][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.933][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.933][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.933][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.933][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.933][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.933][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.933][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.933][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.933][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.933][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.933][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.933][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.934][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.934][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.934][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.934][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.934][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.934][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.934][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.934][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.934][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.934][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.934][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.934][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.934][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.935][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.935][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.935][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.935][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.935][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.935][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.935][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.935][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.935][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.935][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.935][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.935][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.935][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.936][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.936][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.936][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.936][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.936][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.936][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 3200 batches in 289.127154ms -[06:42:52.936][PUT] put #3200 -[06:42:52.936][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.936][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.936][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.936][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.936][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.936][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.936][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.937][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.937][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.937][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.937][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.937][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.937][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.937][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.937][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.937][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.937][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.937][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.937][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.937][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.938][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.938][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.938][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.938][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.938][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.938][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.938][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.938][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.938][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.938][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.938][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.938][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.938][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.939][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.939][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.939][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.939][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.939][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.939][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.939][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.939][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.939][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.939][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.939][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.939][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.939][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.940][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.940][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.940][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.940][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.940][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.940][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.940][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.940][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.940][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.940][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.940][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.940][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.940][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.940][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.941][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.941][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.941][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.941][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.941][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.941][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.941][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.941][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.941][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.941][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.941][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.941][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.941][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.942][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.942][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.942][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.942][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.942][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.942][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.942][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.942][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.942][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.942][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.942][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.942][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.942][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.943][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.943][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.943][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.943][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.943][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.943][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.943][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.943][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.943][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.943][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.943][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.943][WAL_SIZE_TRIGGER] pending_bytes=209733160, threshold #20 crossed (200MB), triggering flush to batch #3297 -[06:42:52.943][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.943][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.944][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 3300 batches in 296.786335ms -[06:42:52.944][PUT] put #3300 -[06:42:52.944][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.944][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.944][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.944][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.944][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.944][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.944][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.944][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.944][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.944][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.944][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.945][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.945][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.945][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.945][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.945][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.945][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.945][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.945][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.945][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.945][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.945][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.945][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.945][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.946][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.946][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.946][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.946][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.946][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.946][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.946][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.946][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.946][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.946][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.946][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.946][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.946][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.947][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.947][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.947][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.947][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.947][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.947][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.947][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.947][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.947][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.947][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.947][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.947][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.948][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.948][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.948][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.948][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.948][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.948][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.948][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.948][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.948][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.948][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.948][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.948][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.948][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.949][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.949][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.949][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.949][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.949][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.949][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.949][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.949][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.949][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.949][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.949][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.949][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.949][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.950][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.950][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.950][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.950][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.950][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.950][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.950][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.950][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.950][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.950][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.950][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.950][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.950][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.950][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.951][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.951][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.951][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.951][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.951][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.951][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.951][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.951][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.951][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.951][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.951][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 3400 batches in 304.572612ms -[06:42:52.951][PUT] put #3400 -[06:42:52.951][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.952][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.952][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.952][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.952][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.952][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.952][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.952][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.952][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.952][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.952][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.952][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.952][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.952][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.953][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.953][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.953][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.953][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.953][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.953][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.953][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.953][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.953][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.953][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.953][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.953][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.953][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.954][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.954][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.954][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.954][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.954][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.954][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.954][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.954][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.954][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.954][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.954][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.954][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.954][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.955][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.955][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.955][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.955][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.955][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.955][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.955][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.955][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.955][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.955][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.955][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.955][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.955][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.956][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.956][WAL_SIZE_TRIGGER] pending_bytes=220219504, threshold #21 crossed (210MB), triggering flush to batch #3454 -[06:42:52.956][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.956][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.956][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.956][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.956][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.956][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.956][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.956][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.956][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.956][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.956][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.956][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.957][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.957][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.957][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.957][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.957][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.957][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.957][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.957][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.957][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.957][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.957][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.957][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.957][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.958][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.958][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.958][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.958][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.958][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.958][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.958][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.958][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.958][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.958][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.958][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.958][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.958][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.959][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.959][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.959][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.959][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.959][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.959][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.959][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.959][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 3500 batches in 312.300421ms -[06:42:52.959][PUT] put #3500 -[06:42:52.959][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.959][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.959][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.959][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.959][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.960][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.960][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.960][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.960][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.960][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.960][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.960][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.960][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.960][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.960][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.960][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.960][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.960][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.961][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.961][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.961][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.961][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.961][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.961][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.961][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.961][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.961][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.961][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.961][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.961][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.961][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.962][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.962][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.962][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.962][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.962][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.962][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.962][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.962][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.962][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.962][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.962][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.962][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.962][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.963][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.963][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.963][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.963][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.963][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.963][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.963][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.963][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.963][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.963][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.963][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.963][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.963][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.964][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.964][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.964][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.964][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.964][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.964][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.964][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.964][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.964][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.964][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.964][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.964][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.964][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.965][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.965][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.965][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.965][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.965][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.965][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.965][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.965][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.965][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.965][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.965][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.965][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.965][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.965][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.966][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.966][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.966][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.966][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.966][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.966][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.966][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.966][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.966][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.966][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.966][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.966][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.966][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.967][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.967][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.967][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 3600 batches in 319.965429ms -[06:42:52.967][PUT] put #3600 -[06:42:52.967][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.967][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.967][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.967][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.967][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.967][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.967][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.967][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.967][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.968][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.968][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.968][WAL_SIZE_TRIGGER] pending_bytes=230705848, threshold #22 crossed (220MB), triggering flush to batch #3611 -[06:42:52.968][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.968][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.968][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.968][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.968][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.968][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.968][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.968][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.968][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.968][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.968][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.969][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.969][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.969][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.969][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.969][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.969][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.969][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.969][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.969][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.969][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.969][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.969][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.969][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.970][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.970][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.970][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.970][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.970][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.970][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.970][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.970][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.970][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.970][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.970][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.970][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.970][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.971][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.971][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.971][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.971][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.971][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.971][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.971][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.971][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.971][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.971][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.971][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.971][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.971][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.972][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.972][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.972][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.972][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.972][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.972][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.972][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.972][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.972][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.972][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.972][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.972][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.972][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.973][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.973][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.973][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.973][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.973][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.973][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.973][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.973][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.973][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.973][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.973][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.973][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.973][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.974][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.974][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.974][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.974][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.974][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.974][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.974][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.974][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.974][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.974][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.974][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.974][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.974][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 3700 batches in 327.666634ms -[06:42:52.975][PUT] put #3700 -[06:42:52.975][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.975][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.975][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.975][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.975][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.975][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.975][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.975][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.975][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.975][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.975][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.975][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.975][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.976][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.976][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.976][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.976][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.976][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.976][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.976][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.976][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.976][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.976][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.976][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.976][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.976][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.977][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.977][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.977][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.977][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.977][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.977][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.977][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.977][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.977][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.977][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.977][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.977][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.977][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.978][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.978][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.978][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.978][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.978][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.978][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.978][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.978][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.978][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.978][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.978][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.978][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.978][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.979][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.979][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.979][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.979][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.979][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.979][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.979][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.979][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.979][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.979][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.979][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.979][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.979][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.980][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.980][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.980][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.980][WAL_SIZE_TRIGGER] pending_bytes=241192192, threshold #23 crossed (230MB), triggering flush to batch #3768 -[06:42:52.980][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.980][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.980][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.980][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.980][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.980][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.980][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.980][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.980][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.980][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.981][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.981][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.981][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.981][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.981][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.981][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.981][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.981][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.981][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.981][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.981][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.981][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.981][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.982][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.982][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.982][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.982][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.982][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.982][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.982][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.982][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.982][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 3800 batches in 335.371857ms -[06:42:52.982][PUT] put #3800 -[06:42:52.982][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.982][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.982][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.982][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.983][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.983][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.983][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.983][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.983][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.983][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.983][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.983][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.983][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.983][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.983][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.983][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.983][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.984][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.984][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.984][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.984][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.984][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.984][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.984][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.984][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.984][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.984][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.984][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.984][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.984][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.985][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.985][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.985][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.985][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.985][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.985][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.985][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.985][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.985][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.985][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.985][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.985][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.985][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.986][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.986][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.986][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.986][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.986][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.986][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.986][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.986][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.986][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.986][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.986][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.986][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.986][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.987][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.987][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.987][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.987][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.987][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.987][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.987][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.987][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.987][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.987][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.987][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.987][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.987][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.988][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.988][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.988][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.988][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.988][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.988][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.988][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.988][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.988][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.988][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.988][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.988][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.988][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.989][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.989][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.989][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.989][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.989][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.989][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.989][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.989][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.989][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.989][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.989][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.989][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.989][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.990][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.990][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.990][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.990][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.990][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 3900 batches in 343.054211ms -[06:42:52.990][PUT] put #3900 -[06:42:52.990][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.990][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.990][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.990][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.990][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.990][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.990][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.990][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.991][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.991][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.991][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.991][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.991][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.991][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.991][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.991][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.991][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.991][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.991][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.991][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.991][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.992][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.992][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.992][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.992][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.992][WAL_SIZE_TRIGGER] pending_bytes=251678536, threshold #24 crossed (240MB), triggering flush to batch #3925 -[06:42:52.992][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.992][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.992][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.992][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.992][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.992][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.992][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.992][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.992][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.993][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.993][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.993][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.993][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.993][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.993][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.993][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.993][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.993][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.993][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.993][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.993][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.993][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.994][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.994][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.994][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.994][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.994][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.994][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.994][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.994][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.994][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.994][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.994][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.994][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.994][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.995][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.995][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.995][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.995][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.995][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.995][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.995][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.995][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.995][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.995][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.995][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.995][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.995][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.996][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.996][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.996][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.996][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.996][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.996][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.996][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.996][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.996][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.996][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.996][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.996][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.996][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.997][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.997][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.997][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.997][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.997][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.997][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.997][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.997][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.997][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.997][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.997][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.997][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.997][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.998][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 4000 batches in 350.745753ms -[06:42:52.998][PUT] put #4000 -[06:42:52.998][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.998][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.998][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.998][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.998][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.998][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.998][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.998][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.998][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.998][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.998][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.998][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.999][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.999][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.999][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.999][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.999][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.999][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.999][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:52.999][DISPATCHER] Task 'memtable_flusher' received message: FlushMemTable { done: None } -[06:42:52.999][FLUSH_HANDLER] Received FlushMemTable: batches=4019, remaining=3981, pending_wal_bytes=257956984 -[06:42:52.999][MEMTABLE_FLUSH] Starting do_flush: 4019 batches, 257956984 pending WAL bytes -[06:42:52.999][FREEZE] Starting freeze_memtable -[06:42:52.999][FREEZE] WAL flush: pending_bytes=257956984, remaining_capacity=3981 -[06:42:53.264][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.264][WAL_TIME_TRIGGER] pending_bytes=258023776, interval elapsed, triggering flush to batch #4020 -[06:42:53.265] [WAL_FLUSH] WAL #2 complete: S3=380ms, index=0ms, 157 batches -[06:42:53.266][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 471, done: None } -[06:42:53.266][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #471, starting flush -[06:42:53.266] [WAL_FLUSH] Flushing range 314..471 (157 batches, 3140 rows) to WAL #4 -[06:42:53.282][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.282][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.283][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.288][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.291][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.292][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.293][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.294][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.294][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.294][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.294][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.294][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.294][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.294][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.294][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.295][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.295][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.295][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.295][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.295][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.295][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.295][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.295][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.296][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.296][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.296][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.296][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.296][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.296][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.296][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.296][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.297][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.297][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.297][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.297][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.297][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.297][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.297][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.297][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.297][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.297][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.297][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.297][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.297][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.298][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.298][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.298][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.298][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.298][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.298][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.298][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.298][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.298][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.298][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.298][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.298][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.298][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.299][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.299][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.299][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.299][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.299][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.299][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.299][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.299][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.299][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.299][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.300][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.300][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.300][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.300][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.300][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.300][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.300][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.301][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.301][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.301][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.301][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.301][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.301][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 4100 batches in 654.532007ms -[06:42:53.301][PUT] put #4100 -[06:42:53.301][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.301][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.302][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.302][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.302][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.302][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.302][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.302][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.302][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.302][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.302][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.302][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.302][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.302][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.302][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.303][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.303][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.303][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.303][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.303][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.303][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.303][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.303][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.303][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.303][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.303][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.303][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.303][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.304][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.304][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.304][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.304][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.304][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.304][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.304][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.304][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.304][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.304][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.304][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.304][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.304][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.305][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.305][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.305][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.305][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.305][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.305][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.305][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.305][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.305][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.305][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.305][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.305][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.305][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.305][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.306][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.306][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.306][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.306][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.306][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.306][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.306][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.306][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.306][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.306][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.306][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.306][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.306][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.307][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.307][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.307][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.307][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.307][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.307][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.307][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.307][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.307][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.307][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.307][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.307][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.307][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.308][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.308][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.308][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.308][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.308][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.308][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.308][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.308][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.308][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.308][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.308][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.308][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.308][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.309][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.309][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.309][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.309][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.309][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.309][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 4200 batches in 662.156375ms -[06:42:53.309][PUT] put #4200 -[06:42:53.309][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.309][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.309][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.309][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.309][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.309][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.309][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.310][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.310][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.310][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.310][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.310][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.310][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.310][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.310][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.310][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.310][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.310][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.310][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.310][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.311][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.311][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.311][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.311][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.311][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.311][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.311][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.311][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.311][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.311][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.311][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.311][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.311][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.312][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.312][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.312][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.312][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.312][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.312][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.312][WAL_SIZE_TRIGGER] pending_bytes=262171160, threshold #25 crossed (250MB), triggering flush to batch #4239 -[06:42:53.312][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.312][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.312][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.312][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.312][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.312][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.312][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.313][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.313][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.313][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.313][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.313][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.313][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.313][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.313][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.313][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.313][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.313][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.313][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.313][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.313][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.314][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.314][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.314][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.314][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.314][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.314][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.314][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.314][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.314][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.314][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.314][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.314][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.314][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.315][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.315][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.315][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.315][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.315][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.315][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.315][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.315][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.315][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.315][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.315][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.315][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.315][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.316][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.316][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.316][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.316][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.316][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.316][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.316][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.316][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.316][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.316][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.316][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.316][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.316][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.317][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 4300 batches in 669.746644ms -[06:42:53.317][PUT] put #4300 -[06:42:53.317][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.317][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.317][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.317][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.317][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.317][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.317][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.317][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.317][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.317][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.317][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.317][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.318][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.318][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.318][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.318][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.318][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.318][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.318][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.318][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.318][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.318][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.318][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.318][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.318][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.319][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.319][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.319][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.319][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.319][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.319][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.319][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.319][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.319][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.319][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.319][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.319][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.319][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.319][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.320][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.320][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.320][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.320][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.320][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.320][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.320][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.320][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.320][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.320][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.320][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.320][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.320][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.321][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.321][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.321][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.321][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.321][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.321][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.321][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.321][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.321][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.321][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.321][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.321][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.321][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.321][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.322][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.322][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.322][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.322][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.322][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.322][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.322][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.322][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.322][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.322][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.322][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.322][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.322][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.323][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.323][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.323][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.323][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.323][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.323][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.323][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.323][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.323][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.323][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.323][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.323][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.323][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.324][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.324][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.324][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.324][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.324][WAL_SIZE_TRIGGER] pending_bytes=272657504, threshold #26 crossed (260MB), triggering flush to batch #4396 -[06:42:53.324][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.324][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.324][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.324][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 4400 batches in 677.545491ms -[06:42:53.324][PUT] put #4400 -[06:42:53.324][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.327][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.327][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.327][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.327][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.327][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.328][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.328][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.328][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.328][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.328][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.328][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.328][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.328][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.328][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.329][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.329][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.329][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.329][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.329][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.331][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.331][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.331][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.331][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.331][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.331][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.331][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.332][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.332][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.332][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.332][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.332][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.332][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.332][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.332][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.332][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.333][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.333][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.333][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.333][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.335][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.335][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.335][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.335][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.335][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.335][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.335][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.335][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.335][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.336][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.336][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.336][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.336][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.336][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.336][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.336][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.336][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.336][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.336][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.336][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.336][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.337][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.337][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.337][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.337][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.337][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.337][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.337][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.337][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.337][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.337][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.337][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.337][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.337][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.338][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.338][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.338][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.338][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.338][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.338][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.338][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.338][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.338][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.338][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.338][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.338][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.338][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.339][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.339][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.339][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.339][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.339][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.339][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.339][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.339][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.339][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.339][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.339][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.339][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.339][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 4500 batches in 692.681642ms -[06:42:53.340][PUT] put #4500 -[06:42:53.340][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.340][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.340][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.340][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.340][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.340][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.340][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.340][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.340][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.340][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.340][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.340][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.340][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.341][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.341][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.341][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.341][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.341][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.341][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.341][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.341][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.341][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.341][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.341][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.341][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.341][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.341][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.342][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.342][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.342][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.342][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.342][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.342][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.342][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.342][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.342][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.342][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.342][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.342][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.342][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.343][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.343][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.343][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.343][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.343][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.343][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.343][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.343][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.343][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.343][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.343][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.343][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.343][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.344][WAL_SIZE_TRIGGER] pending_bytes=283143848, threshold #27 crossed (270MB), triggering flush to batch #4553 -[06:42:53.344][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.344][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.344][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.344][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.344][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.344][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.344][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.344][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.344][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.344][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.344][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.344][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.344][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.345][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.345][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.345][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.345][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.345][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.345][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.345][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.345][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.345][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.345][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.345][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.345][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.345][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.346][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.346][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.346][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.346][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.346][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.346][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.346][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.346][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.346][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.346][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.346][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.346][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.346][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.346][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.347][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.347][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.347][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.347][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.347][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.347][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.347][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 4600 batches in 700.269695ms -[06:42:53.347][PUT] put #4600 -[06:42:53.347][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.347][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.347][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.347][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.347][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.348][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.348][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.348][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.348][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.348][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.348][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.348][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.348][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.348][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.348][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.348][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.348][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.348][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.348][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.349][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.349][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.349][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.349][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.349][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.349][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.349][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.349][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.349][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.349][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.349][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.349][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.349][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.350][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.350][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.350][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.350][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.350][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.350][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.350][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.350][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.350][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.350][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.350][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.350][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.350][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.351][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.351][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.351][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.351][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.351][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.351][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.351][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.351][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.351][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.351][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.351][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.351][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.351][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.351][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.352][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.352][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.352][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.352][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.352][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.352][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.352][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.352][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.352][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.352][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.352][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.352][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.352][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.353][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.353][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.353][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.353][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.353][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.353][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.353][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.353][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.353][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.353][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.353][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.353][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.353][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.353][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.354][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.354][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.354][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.354][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.354][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.354][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.354][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.354][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.354][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.354][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.354][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.354][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.354][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.355][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 4700 batches in 707.807555ms -[06:42:53.355][PUT] put #4700 -[06:42:53.355][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.355][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.355][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.355][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.355][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.355][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.355][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.355][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.355][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.355][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.355][WAL_SIZE_TRIGGER] pending_bytes=293630192, threshold #28 crossed (280MB), triggering flush to batch #4710 -[06:42:53.355][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.356][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.356][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.356][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.356][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.356][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.356][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.356][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.356][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.356][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.356][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.356][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.356][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.356][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.357][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.357][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.357][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.357][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.357][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.357][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.357][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.357][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.357][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.357][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.357][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.357][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.357][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.358][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.358][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.358][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.358][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.358][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.358][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.358][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.358][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.358][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.358][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.358][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.358][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.358][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.358][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.359][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.359][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.359][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.359][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.359][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.359][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.359][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.359][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.359][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.359][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.359][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.359][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.359][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.360][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.360][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.360][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.360][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.360][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.360][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.360][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.360][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.360][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.360][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.360][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.360][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.360][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.361][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.361][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.361][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.361][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.361][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.361][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.361][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.361][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.361][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.361][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.361][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.361][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.361][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.361][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.362][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.362][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.362][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.362][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.362][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.362][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.362][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.362][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.362][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 4800 batches in 715.402002ms -[06:42:53.362][PUT] put #4800 -[06:42:53.362][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.362][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.362][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.362][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.363][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.363][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.363][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.363][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.363][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.363][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.363][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.363][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.363][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.363][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.363][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.363][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.363][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.364][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.364][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.364][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.364][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.364][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.364][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.364][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.364][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.364][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.364][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.364][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.364][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.364][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.365][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.365][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.365][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.365][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.365][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.365][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.365][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.365][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.365][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.365][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.365][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.365][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.365][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.366][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.366][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.366][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.366][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.366][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.366][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.366][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.366][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.366][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.366][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.366][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.366][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.366][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.367][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.367][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.367][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.367][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.367][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.367][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.367][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.367][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.367][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.367][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.367][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.367][WAL_SIZE_TRIGGER] pending_bytes=304116536, threshold #29 crossed (290MB), triggering flush to batch #4867 -[06:42:53.367][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.367][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.368][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.368][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.368][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.368][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.368][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.368][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.368][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.368][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.368][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.368][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.368][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.368][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.368][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.369][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.369][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.369][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.369][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.369][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.369][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.369][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.369][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.369][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.369][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.369][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.369][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.369][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.369][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.370][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.370][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.370][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.370][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 4900 batches in 723.015942ms -[06:42:53.370][PUT] put #4900 -[06:42:53.370][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.370][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.370][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.370][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.370][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.370][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.370][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.370][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.370][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.371][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.371][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.371][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.371][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.371][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.371][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.371][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.371][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.371][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.371][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.371][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.371][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.371][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.372][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.372][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.372][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.372][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.372][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.372][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.372][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.372][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.372][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.372][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.372][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.372][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.372][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.373][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.373][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.373][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.373][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.373][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.373][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.373][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.373][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.373][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.373][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.373][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.373][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.373][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.373][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.374][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.374][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.374][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.374][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.374][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.374][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.374][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.374][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.374][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.374][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.374][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.374][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.375][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.375][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.375][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.375][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.375][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.375][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.375][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.375][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.375][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.375][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.375][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.375][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.375][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.376][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.376][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.376][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.376][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.376][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.376][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.376][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.376][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.376][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.376][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.376][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.376][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.376][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.376][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.377][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.377][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.377][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.377][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.377][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.377][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.377][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.377][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.377][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.377][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.377][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.377][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 5000 batches in 730.616783ms -[06:42:53.377][PUT] put #5000 -[06:42:53.377][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.378][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.378][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.378][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.378][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.378][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.378][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.378][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.378][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.378][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.378][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.378][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.378][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.378][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.379][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.379][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.379][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.379][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.379][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.379][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.379][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.379][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.379][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.379][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.379][WAL_SIZE_TRIGGER] pending_bytes=314615168, threshold #30 crossed (300MB), triggering flush to batch #5024 -[06:42:53.379][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.379][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.379][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.380][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.380][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.380][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.381][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.381][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.381][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.381][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.381][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.382][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.382][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.382][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.382][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.382][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.382][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.382][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.382][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.382][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.382][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.382][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.382][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.382][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.383][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.383][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.383][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.383][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.383][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.383][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.383][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.383][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.383][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.383][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.383][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.383][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.383][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.384][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.384][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.384][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.384][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.384][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.384][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.384][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.384][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.384][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.384][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.384][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.384][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.384][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.384][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.385][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.385][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.385][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.385][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.385][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.385][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.385][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.385][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.385][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.385][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.385][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.385][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.385][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.386][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.386][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.386][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.386][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.386][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.386][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.386][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.386][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.386][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.386][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.386][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.386][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 5100 batches in 739.622338ms -[06:42:53.386][PUT] put #5100 -[06:42:53.386][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.387][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.387][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.387][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.387][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.387][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.387][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.387][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.387][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.387][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.387][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.387][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.387][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.387][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.388][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.388][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.388][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.388][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.388][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.388][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.388][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.388][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.388][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.388][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.388][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.388][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.388][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.389][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.389][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.389][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.389][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.389][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.389][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.389][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.389][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.389][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.389][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.389][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.389][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.389][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.390][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.390][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.390][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.390][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.390][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.390][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.390][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.390][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.390][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.390][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.390][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.390][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.390][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.391][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.391][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.391][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.391][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.391][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.391][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.391][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.391][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.391][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.391][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.391][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.391][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.391][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.391][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.392][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.392][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.392][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.392][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.392][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.392][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.392][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.392][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.392][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.392][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.392][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.392][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.392][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.393][WAL_SIZE_TRIGGER] pending_bytes=325114592, threshold #31 crossed (310MB), triggering flush to batch #5180 -[06:42:53.393][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.393][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.393][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.393][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.393][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.393][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.393][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.393][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.393][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.393][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.393][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.393][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.393][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.394][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.394][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.394][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.394][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.394][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.394][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.394][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 5200 batches in 747.214064ms -[06:42:53.394][PUT] put #5200 -[06:42:53.394][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.394][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.394][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.394][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.395][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.395][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.397][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.397][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.398][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.398][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.398][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.398][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.398][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.398][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.398][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.398][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.398][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.399][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.399][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.399][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.399][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.399][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.399][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.399][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.399][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.401][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.401][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.401][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.401][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.402][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.402][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.402][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.402][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.402][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.402][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.402][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.402][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.402][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.402][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.403][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.403][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.403][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.403][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.403][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.403][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.403][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.404][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.404][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.404][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.405][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.405][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.405][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.405][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.405][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.405][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.405][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.405][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.405][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.405][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.405][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.405][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.405][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.406][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.406][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.406][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.406][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.406][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.406][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.406][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.406][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.406][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.406][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.406][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.406][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.406][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.407][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.407][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.407][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.407][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.407][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.407][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.407][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.407][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.407][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.407][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.407][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.407][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.407][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.408][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.408][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.408][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.408][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.408][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.408][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.408][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.408][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.408][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.408][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.408][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.408][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 5300 batches in 761.582034ms -[06:42:53.408][PUT] put #5300 -[06:42:53.408][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.409][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.409][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.409][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.409][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.409][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.409][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.409][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.409][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.409][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.409][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.409][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.409][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.409][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.409][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.410][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.410][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.410][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.410][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.410][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.410][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.410][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.410][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.410][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.410][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.410][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.410][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.410][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.411][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.411][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.411][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.411][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.411][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.411][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.411][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.411][WAL_SIZE_TRIGGER] pending_bytes=335546712, threshold #32 crossed (320MB), triggering flush to batch #5335 -[06:42:53.411][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.411][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.411][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.411][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.411][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.411][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.412][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.412][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.412][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.412][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.412][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.412][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.412][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.412][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.412][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.412][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.412][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.412][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.412][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.413][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.413][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.413][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.413][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.413][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.413][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.413][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.413][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.413][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.413][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.413][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.413][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.413][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.414][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.414][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.414][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.414][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.414][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.414][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.414][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.414][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.414][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.414][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.414][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.414][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.414][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.414][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.415][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.415][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.415][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.415][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.415][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.415][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.415][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.415][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.415][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.415][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.415][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.415][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.415][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.416][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.416][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.416][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.416][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.416][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.416][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 5400 batches in 769.148059ms -[06:42:53.416][PUT] put #5400 -[06:42:53.416][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.416][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.416][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.416][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.416][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.416][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.416][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.417][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.417][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.417][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.417][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.417][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.417][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.417][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.417][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.417][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.417][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.417][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.417][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.417][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.418][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.418][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.418][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.418][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.418][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.418][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.418][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.418][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.418][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.418][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.418][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.418][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.418][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.419][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.419][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.419][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.419][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.419][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.419][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.419][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.419][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.419][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.419][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.419][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.419][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.419][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.419][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.420][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.420][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.420][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.420][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.420][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.420][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.420][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.420][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.420][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.420][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.420][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.420][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.420][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.421][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.421][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.421][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.421][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.421][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.421][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.421][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.421][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.421][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.421][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.421][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.421][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.421][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.422][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.422][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.422][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.422][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.422][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.422][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.422][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.422][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.422][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.422][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.422][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.422][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.422][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.422][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.423][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.423][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.423][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.423][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.423][WAL_SIZE_TRIGGER] pending_bytes=346046136, threshold #33 crossed (330MB), triggering flush to batch #5491 -[06:42:53.423][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.423][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.423][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.423][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.423][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.423][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.423][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.423][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.423][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 5500 batches in 776.697757ms -[06:42:53.424][PUT] put #5500 -[06:42:53.424][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.424][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.424][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.424][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.424][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.424][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.424][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.424][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.424][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.424][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.424][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.424][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.424][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.425][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.425][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.425][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.425][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.425][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.425][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.425][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.425][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.425][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.425][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.425][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.425][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.425][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.426][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.426][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.426][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.426][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.426][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.426][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.426][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.426][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.426][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.426][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.426][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.426][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.426][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.426][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.427][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.427][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.427][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.427][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.427][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.427][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.427][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.427][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.427][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.427][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.427][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.427][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.427][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.428][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.428][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.428][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.428][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.428][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.428][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.428][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.428][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.428][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.428][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.428][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.428][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.428][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.429][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.429][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.429][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.429][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.429][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.429][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.429][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.429][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.429][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.429][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.429][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.429][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.429][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.430][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.430][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.430][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.430][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.430][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.430][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.430][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.430][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.430][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.430][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.430][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.430][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.430][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.431][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.431][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.431][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.431][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.431][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.431][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.431][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.431][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 5600 batches in 784.258786ms -[06:42:53.431][PUT] put #5600 -[06:42:53.431][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.431][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.431][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.431][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.431][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.432][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.432][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.432][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.432][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.432][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.432][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.432][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.432][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.432][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.432][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.432][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.432][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.432][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.432][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.433][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.433][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.433][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.433][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.433][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.433][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.433][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.433][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.433][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.433][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.433][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.433][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.433][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.434][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.434][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.434][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.434][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.434][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.434][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.434][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.434][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.434][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.434][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.434][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.434][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.434][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.435][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.435][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.435][WAL_SIZE_TRIGGER] pending_bytes=356545560, threshold #34 crossed (340MB), triggering flush to batch #5647 -[06:42:53.435][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.435][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.435][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.435][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.435][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.435][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.435][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.435][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.435][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.435][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.435][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.436][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.436][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.436][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.436][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.436][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.436][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.436][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.436][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.436][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.436][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.436][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.436][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.436][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.437][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.437][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.437][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.437][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.437][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.437][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.437][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.437][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.437][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.437][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.437][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.437][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.437][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.437][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.438][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.438][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.438][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.438][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.438][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.438][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.438][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.438][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.438][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.438][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.438][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.438][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.438][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.439][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.439][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 5700 batches in 791.864215ms -[06:42:53.439][PUT] put #5700 -[06:42:53.439][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.439][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.439][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.439][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.439][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.439][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.439][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.439][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.439][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.439][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.439][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.440][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.440][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.440][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.440][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.440][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.440][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.440][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.440][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.440][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.440][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.440][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.440][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.440][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.441][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.441][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.441][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.441][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.441] [WAL_FLUSH] WAL #4 complete: S3=169ms, index=0ms, 157 batches -[06:42:53.442][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 628, done: None } -[06:42:53.442][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #628, starting flush -[06:42:53.442] [WAL_FLUSH] Flushing range 471..628 (157 batches, 3140 rows) to WAL #5 -[06:42:53.457][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.458][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.458][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.458][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.458][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.458][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.458][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.459][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.459][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.459][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.459][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.459][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.459][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.459][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.459][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.459][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.460][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.460][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.460][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.460][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.461][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.461][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.461][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.461][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.461][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.461][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.461][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.461][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.464][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.464][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.464][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.464][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.464][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.464][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.464][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.465][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.465][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.465][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.465][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.465][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.465][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.465][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.465][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.465][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.465][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.466][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.466][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.466][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.467][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.468][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.468][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.468][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.468][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.468][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.468][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.468][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.468][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.469][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.469][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.469][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.469][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.469][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.469][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.469][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.469][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.469][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.469][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.469][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.470][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.471][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.472][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.472][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 5800 batches in 824.877403ms -[06:42:53.472][PUT] put #5800 -[06:42:53.472][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.472][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.472][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.472][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.472][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.472][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.472][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.472][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.472][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.473][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.473][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.473][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.473][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.473][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.473][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.473][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.473][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.473][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.473][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.473][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.473][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.474][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.474][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.474][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.474][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.474][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.474][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.474][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.474][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.474][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.474][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.474][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.474][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.474][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.475][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.475][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.475][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.475][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.475][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.475][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.475][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.475][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.475][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.475][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.475][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.475][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.475][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.476][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.476][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.476][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.476][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.476][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.476][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.476][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.476][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.476][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.476][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.476][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.476][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.476][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.477][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.477][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.477][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.477][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.477][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.477][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.477][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.477][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.477][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.477][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.477][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.477][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.477][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.477][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.478][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.478][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.478][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.478][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.478][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.478][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.478][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.478][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.478][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.478][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.478][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.478][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.478][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.479][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.479][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.479][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.479][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.479][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.479][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.479][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.479][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.479][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.479][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.479][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.479][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.479][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 5900 batches in 832.700812ms -[06:42:53.480][PUT] put #5900 -[06:42:53.480][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.480][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.480][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.480][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.480][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.480][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.480][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.480][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.480][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.480][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.480][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.480][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.480][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.481][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.481][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.481][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.481][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.481][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.481][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.481][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.481][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.481][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.481][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.481][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.481][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.481][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.482][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.482][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.482][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.482][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.482][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.482][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.482][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.482][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.482][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.482][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.482][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.482][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.482][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.482][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.483][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.483][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.483][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.483][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.483][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.483][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.483][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.483][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.483][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.483][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.483][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.483][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.483][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.484][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.484][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.484][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.484][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.484][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.484][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.484][WAL_SIZE_TRIGGER] pending_bytes=367064344, threshold #35 crossed (350MB), triggering flush to batch #5959 -[06:42:53.484][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.484][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.484][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.484][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.484][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.484][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.484][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.485][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.485][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.485][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.485][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.485][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.485][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.485][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.485][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.485][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.485][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.485][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.485][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.485][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.485][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.486][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.486][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.486][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.486][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.486][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.486][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.486][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.486][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.486][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.486][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.486][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.486][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.486][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.487][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.487][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.487][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.487][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.487][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.487][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.487][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 6000 batches in 840.243898ms -[06:42:53.487][PUT] put #6000 -[06:42:53.487][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.487][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.487][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.487][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.487][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.487][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.488][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.488][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.488][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.488][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.488][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.488][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.488][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.488][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.488][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.488][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.488][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.488][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.488][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.489][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.489][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.489][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.489][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.489][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.489][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.489][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.489][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.489][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.489][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.489][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.489][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.489][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.490][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.490][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.490][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.490][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.490][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.490][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.490][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.490][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.490][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.490][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.490][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.490][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.490][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.490][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.491][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.491][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.491][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.491][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.491][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.491][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.491][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.491][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.491][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.491][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.491][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.491][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.491][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.492][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.492][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.492][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.492][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.492][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.492][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.492][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.492][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.492][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.492][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.492][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.492][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.492][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.492][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.493][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.493][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.493][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.493][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.493][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.493][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.493][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.493][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.493][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.493][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.493][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.493][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.493][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.494][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.494][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.494][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.494][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.494][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.494][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.494][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.494][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.494][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.494][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.494][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.494][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.494][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.495][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 6100 batches in 847.738486ms -[06:42:53.495][PUT] put #6100 -[06:42:53.495][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.495][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.495][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.495][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.495][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.495][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.495][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.495][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.495][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.495][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.495][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.495][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.495][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.496][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.496][WAL_SIZE_TRIGGER] pending_bytes=377496464, threshold #36 crossed (360MB), triggering flush to batch #6114 -[06:42:53.496][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.496][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.496][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.496][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.496][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.496][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.496][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.496][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.496][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.496][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.496][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.496][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.497][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.497][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.497][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.497][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.497][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.497][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.497][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.497][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.497][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.497][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.497][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.497][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.497][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.498][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.498][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.498][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.498][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.498][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.498][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.498][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.498][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.498][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.498][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.498][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.498][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.498][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.499][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.499][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.499][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.499][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.499][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.499][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.499][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.499][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.499][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.499][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.499][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.499][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.499][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.499][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.500][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.500][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.500][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.500][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.500][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.500][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.500][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.500][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.500][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.500][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.500][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.500][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.500][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.501][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.501][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.501][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.501][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.501][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.501][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.501][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.501][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.501][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.501][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.501][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.501][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.501][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.502][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.502][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.502][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.502][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.502][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.502][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.502][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.502][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 6200 batches in 855.273836ms -[06:42:53.502][PUT] put #6200 -[06:42:53.502][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.502][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.502][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.502][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.502][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.503][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.503][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.503][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.503][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.503][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.503][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.503][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.503][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.503][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.503][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.503][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.503][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.503][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.503][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.504][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.504][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.504][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.504][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.504][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.504][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.504][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.504][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.504][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.504][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.504][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.504][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.504][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.505][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.505][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.505][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.505][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.505][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.505][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.505][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.505][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.505][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.505][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.505][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.505][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.505][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.506][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.506][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.506][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.506][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.506][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.506][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.506][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.506][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.506][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.506][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.506][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.506][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.506][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.507][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.507][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.507][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.507][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.507][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.507][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.507][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.507][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.507][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.507][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.507][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.507][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.507][WAL_SIZE_TRIGGER] pending_bytes=387995888, threshold #37 crossed (370MB), triggering flush to batch #6270 -[06:42:53.507][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.508][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.508][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.508][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.508][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.508][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.508][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.508][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.508][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.508][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.508][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.508][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.508][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.508][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.508][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.509][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.509][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.509][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.509][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.509][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.509][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.509][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.509][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.509][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.509][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.509][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.509][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.509][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.510][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.510][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 6300 batches in 862.844054ms -[06:42:53.510][PUT] put #6300 -[06:42:53.510][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.510][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.510][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.510][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.510][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.510][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.510][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.510][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.510][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.510][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.510][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.511][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.511][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.511][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.511][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.511][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.511][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.511][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.511][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.511][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.511][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.511][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.511][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.511][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.512][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.512][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.512][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.512][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.512][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.512][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.512][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.512][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.512][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.512][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.512][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.512][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.512][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.512][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.513][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.513][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.513][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.513][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.513][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.513][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.513][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.513][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.513][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.513][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.513][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.513][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.513][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.514][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.514][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.514][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.514][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.514][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.514][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.514][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.514][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.514][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.514][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.514][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.514][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.514][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.515][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.515][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.515][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.515][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.515][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.515][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.515][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.515][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.515][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.515][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.515][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.515][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.515][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.516][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.516][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.516][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.516][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.516][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.516][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.516][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.516][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.516][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.516][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.516][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.516][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.516][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.516][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.517][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.517][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.517][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.517][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.517][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.517][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.517][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.517][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.517][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 6400 batches in 870.41193ms -[06:42:53.517][PUT] put #6400 -[06:42:53.517][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.517][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.517][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.517][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.518][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.518][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.518][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.518][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.518][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.518][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.518][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.518][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.518][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.518][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.518][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.518][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.518][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.519][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.519][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.519][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.519][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.519][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.519][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.519][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.519][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.519][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.519][WAL_SIZE_TRIGGER] pending_bytes=398495312, threshold #38 crossed (380MB), triggering flush to batch #6426 -[06:42:53.519][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.519][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.519][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.519][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.520][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.520][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.520][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.520][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.520][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.520][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.520][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.520][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.520][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.520][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.520][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.520][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.520][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.520][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.521][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.521][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.521][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.521][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.521][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.521][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.521][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.521][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.521][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.521][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.521][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.521][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.521][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.522][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.522][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.522][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.522][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.522][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.522][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.522][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.522][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.522][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.522][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.522][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.522][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.522][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.523][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.523][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.523][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.523][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.523][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.523][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.523][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.523][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.523][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.523][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.523][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.523][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.523][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.523][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.524][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.524][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.524][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.524][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.524][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.524][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.524][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.524][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.524][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.524][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.524][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.524][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.524][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.525][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.525][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.525][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 6500 batches in 877.923557ms -[06:42:53.525][PUT] put #6500 -[06:42:53.525][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.525][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.525][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.525][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.525][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.525][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.525][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.525][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.525][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.525][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.526][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.526][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.526][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.526][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.526][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.526][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.526][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.526][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.526][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.526][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.526][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.526][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.526][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.527][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.527][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.527][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.527][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.527][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.527][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.527][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.527][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.527][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.527][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.527][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.527][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.527][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.527][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.528][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.528][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.528][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.528][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.528][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.528][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.528][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.528][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.528][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.528][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.528][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.528][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.528][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.529][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.529][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.529][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.529][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.529][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.529][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.529][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.529][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.529][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.529][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.529][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.529][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.529][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.530][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.530][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.530][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.533][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.533][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.533][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.533][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.533][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.533][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.533][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.534][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.534][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.534][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.534][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.534][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.534][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.534][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.534][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.534][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.534][WAL_SIZE_TRIGGER] pending_bytes=408994736, threshold #39 crossed (390MB), triggering flush to batch #6582 -[06:42:53.535][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.535][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.535][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.535][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.537][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.537][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.537][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.537][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.537][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.537][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.537][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.537][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.538][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.538][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.538][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.538][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.538][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.538][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 6600 batches in 891.36448ms -[06:42:53.538][PUT] put #6600 -[06:42:53.538][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.538][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.538][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.539][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.539][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.539][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.541][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.541][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.541][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.541][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.541][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.541][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.541][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.541][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.541][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.542][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.542][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.542][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.542][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.542][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.542][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.542][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.542][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.542][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.542][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.542][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.542][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.543][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.543][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.543][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.543][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.543][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.543][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.543][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.543][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.543][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.543][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.543][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.543][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.543][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.544][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.544][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.544][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.544][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.544][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.544][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.544][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.544][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.544][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.544][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.544][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.544][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.544][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.544][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.545][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.545][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.545][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.545][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.545][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.545][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.545][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.545][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.545][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.545][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.545][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.545][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.545][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.546][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.546][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.546][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.546][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.546][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.546][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.546][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.546][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.546][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.546][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.546][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.546][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.546][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.547][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.547][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.547][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.547][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.547][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.547][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.547][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.547][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.547][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.547][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.547][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.547][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.547][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.548][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.548][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.548][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.548][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.548][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.548][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.548][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 6700 batches in 901.25522ms -[06:42:53.548][PUT] put #6700 -[06:42:53.548][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.548][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.548][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.548][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.548][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.548][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.549][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.549][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.549][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.549][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.549][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.549][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.549][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.549][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.549][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.549][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.549][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.549][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.549][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.550][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.550][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.550][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.550][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.550][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.550][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.550][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.550][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.550][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.550][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.550][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.550][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.550][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.551][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.551][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.551][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.551][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.551][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.551][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.551][WAL_SIZE_TRIGGER] pending_bytes=419494160, threshold #40 crossed (400MB), triggering flush to batch #6738 -[06:42:53.551][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.551][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.551][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.551][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.551][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.551][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.551][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.552][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.552][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.552][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.552][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.552][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.552][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.552][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.552][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.552][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.552][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.552][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.552][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.552][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.552][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 6800 batches in 908.817143ms -[06:42:53.556][PUT] put #6800 -[06:42:53.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.557][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.557][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.557][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.557][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.557][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.557][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.557][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.557][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.557][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.557][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.557][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.557][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.558][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.558][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.558][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.558][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.558][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.558][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.558][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.558][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.558][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.558][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.558][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.558][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.558][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.558][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.559][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.559][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.559][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.559][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.559][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.559][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.559][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.559][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.559][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.559][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.559][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.559][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.559][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.560][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.560][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.560][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.560][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.560][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.560][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.560][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.560][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.560][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.560][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.560][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.560][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.560][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.561][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.561][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.561][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.561][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.561][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.561][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.561][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.561][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.561][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.561][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.561][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.561][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.561][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.561][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.562][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.562][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.562][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.562][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.562][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.562][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.562][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.562][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.562][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.562][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.562][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.562][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.562][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.563][WAL_SIZE_TRIGGER] pending_bytes=429926280, threshold #41 crossed (410MB), triggering flush to batch #6893 -[06:42:53.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 6900 batches in 916.396256ms -[06:42:53.563][PUT] put #6900 -[06:42:53.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 7000 batches in 923.969205ms -[06:42:53.571][PUT] put #7000 -[06:42:53.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.574][WAL_SIZE_TRIGGER] pending_bytes=440425704, threshold #42 crossed (420MB), triggering flush to batch #7049 -[06:42:53.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 7100 batches in 931.497452ms -[06:42:53.578][PUT] put #7100 -[06:42:53.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 7200 batches in 938.979652ms -[06:42:53.586][PUT] put #7200 -[06:42:53.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:53.586][BP_TRIGGER] iter=0 batch_store_nearly_full: remaining=799/8000 (<10%), triggering flush and waiting -[06:42:53.586][TRIGGER] Sending FlushMemTable message and waiting for completion -[06:42:53.604] [WAL_FLUSH] WAL #5 complete: S3=154ms, index=0ms, 157 batches -[06:42:53.604][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 785, done: None } -[06:42:53.604][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #785, starting flush -[06:42:53.604] [WAL_FLUSH] Flushing range 628..785 (157 batches, 3140 rows) to WAL #6 -[06:42:53.795] [WAL_FLUSH] WAL #6 complete: S3=185ms, index=0ms, 157 batches -[06:42:53.796][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 942, done: None } -[06:42:53.796][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #942, starting flush -[06:42:53.796] [WAL_FLUSH] Flushing range 785..942 (157 batches, 3140 rows) to WAL #7 -[06:42:53.977] [WAL_FLUSH] WAL #7 complete: S3=175ms, index=0ms, 157 batches -[06:42:53.978][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 1099, done: None } -[06:42:53.978][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #1099, starting flush -[06:42:53.978] [WAL_FLUSH] Flushing range 942..1099 (157 batches, 3140 rows) to WAL #8 -[06:42:54.160] [WAL_FLUSH] WAL #8 complete: S3=176ms, index=0ms, 157 batches -[06:42:54.161][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 1256, done: None } -[06:42:54.161][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #1256, starting flush -[06:42:54.161] [WAL_FLUSH] Flushing range 1099..1256 (157 batches, 3140 rows) to WAL #9 -[06:42:54.314] [WAL_FLUSH] WAL #9 complete: S3=148ms, index=0ms, 157 batches -[06:42:54.315][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 1413, done: None } -[06:42:54.315][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #1413, starting flush -[06:42:54.315] [WAL_FLUSH] Flushing range 1256..1413 (157 batches, 3140 rows) to WAL #10 -[06:42:54.514] [WAL_FLUSH] WAL #10 complete: S3=193ms, index=0ms, 157 batches -[06:42:54.514][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 1570, done: None } -[06:42:54.514][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #1570, starting flush -[06:42:54.515] [WAL_FLUSH] Flushing range 1413..1570 (157 batches, 3140 rows) to WAL #11 -[06:42:54.621] [WAL_FLUSH] WAL #11 complete: S3=100ms, index=0ms, 157 batches -[06:42:54.621][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 1727, done: None } -[06:42:54.621][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #1727, starting flush -[06:42:54.621] [WAL_FLUSH] Flushing range 1570..1727 (157 batches, 3140 rows) to WAL #12 -[06:42:54.760] [WAL_FLUSH] WAL #12 complete: S3=134ms, index=0ms, 157 batches -[06:42:54.761][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 1884, done: None } -[06:42:54.761][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #1884, starting flush -[06:42:54.761] [WAL_FLUSH] Flushing range 1727..1884 (157 batches, 3140 rows) to WAL #13 -[06:42:54.844][FREEZE] WAL S3 flush took 1845ms -[06:42:54.852][FREEZE] Swapping memtable: old had 7201 batches -[06:42:54.854][FREEZE] Complete: gen=1 imm_queue=1 new_capacity=8000 took=1854ms -[06:42:54.854][MEMTABLE_FLUSH] freeze_memtable took 1854ms -[06:42:54.854][LANCE_FLUSH] Starting flush_oldest_immutable -[06:42:54.854][LANCE_FLUSH] Flushing memtable with 144020 rows, 7201 batches -[06:42:54.854] [FLUSHER] flush() called: 144020 rows, 7201 batches -[06:42:54.934] [WAL_FLUSH] WAL #13 complete: S3=167ms, index=0ms, 157 batches -[06:42:54.934][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 2041, done: None } -[06:42:54.934][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #2041, starting flush -[06:42:54.934][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 2198, done: None } -[06:42:54.934][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #2198, starting flush -[06:42:54.934][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 2355, done: None } -[06:42:54.934][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #2355, starting flush -[06:42:54.934][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 2512, done: None } -[06:42:54.934][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #2512, starting flush -[06:42:54.934][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 2826, done: None } -[06:42:54.934][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #2826, starting flush -[06:42:54.934][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 2983, done: None } -[06:42:54.934][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #2983, starting flush -[06:42:54.934][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 3140, done: None } -[06:42:54.934][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #3140, starting flush -[06:42:54.935][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 3297, done: None } -[06:42:54.935][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #3297, starting flush -[06:42:54.935][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 3454, done: None } -[06:42:54.935][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #3454, starting flush -[06:42:54.935][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 3611, done: None } -[06:42:54.935][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #3611, starting flush -[06:42:54.935][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 3768, done: None } -[06:42:54.935][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #3768, starting flush -[06:42:54.935][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 3925, done: None } -[06:42:54.935][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #3925, starting flush -[06:42:54.935][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 4020, done: None } -[06:42:54.935][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #4020, starting flush -[06:42:54.935][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 4239, done: None } -[06:42:54.935][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #4239, starting flush -[06:42:54.935][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 4396, done: None } -[06:42:54.935][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #4396, starting flush -[06:42:54.935][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 4553, done: None } -[06:42:54.935][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #4553, starting flush -[06:42:54.935][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 4710, done: None } -[06:42:54.935][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #4710, starting flush -[06:42:54.935][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 4867, done: None } -[06:42:54.935][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #4867, starting flush -[06:42:54.935][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 5024, done: None } -[06:42:54.935][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #5024, starting flush -[06:42:54.935][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 5180, done: None } -[06:42:54.935][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #5180, starting flush -[06:42:54.936][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 5335, done: None } -[06:42:54.936][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #5335, starting flush -[06:42:54.936][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 5491, done: None } -[06:42:54.936][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #5491, starting flush -[06:42:54.936][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 5647, done: None } -[06:42:54.936][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #5647, starting flush -[06:42:54.936][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 5959, done: None } -[06:42:54.936][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #5959, starting flush -[06:42:54.936][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 6114, done: None } -[06:42:54.936][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #6114, starting flush -[06:42:54.936][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 6270, done: None } -[06:42:54.936][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #6270, starting flush -[06:42:54.936][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 6426, done: None } -[06:42:54.936][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #6426, starting flush -[06:42:54.936][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 6582, done: None } -[06:42:54.936][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #6582, starting flush -[06:42:54.936][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 6738, done: None } -[06:42:54.936][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #6738, starting flush -[06:42:54.936][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 6893, done: None } -[06:42:54.936][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #6893, starting flush -[06:42:54.937][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 7049, done: None } -[06:42:54.937][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #7049, starting flush -[06:42:54.942][DISPATCHER] Task 'memtable_flusher' received message: FlushMemTable { done: Some(Sender { inner: Some(Inner { state: State { is_complete: false, is_closed: false, is_rx_task_set: true, is_tx_task_set: false } }) }) } -[06:42:54.942][FLUSH_HANDLER] Received FlushMemTable: batches=0, remaining=8000, pending_wal_bytes=98539112 -[06:42:54.942][MEMTABLE_FLUSH] Starting do_flush: 0 batches, 98539112 pending WAL bytes -[06:42:54.943][FREEZE] Starting freeze_memtable -[06:42:54.943][FREEZE] WAL flush: pending_bytes=98539112, remaining_capacity=8000 -[06:42:54.943][FREEZE] WAL S3 flush took 0ms -[06:42:54.943][FREEZE] Swapping memtable: old had 0 batches -[06:42:54.944][FREEZE] Complete: gen=2 imm_queue=1 new_capacity=8000 took=1ms -[06:42:54.944][MEMTABLE_FLUSH] freeze_memtable took 1ms -[06:42:54.944][LANCE_FLUSH] Starting flush_oldest_immutable -[06:42:54.944][LANCE_FLUSH] Flushing memtable with 0 rows, 0 batches -[06:42:54.944] [FLUSHER] flush() called: 0 rows, 0 batches -[06:42:55.008][TRIGGER] Flush failed: Invalid user input: Cannot flush empty MemTable, rust/lance/src/dataset/mem_wal/write/flush.rs:147:17 -[06:42:55.008][BP_TRIGGER] flush complete after 1422ms, new remaining=8000 -[06:42:55.008][BP] waited 1422ms | remaining_batches=8000 total_batches=8000 -[06:42:55.008][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.008][WAL_TIME_TRIGGER] pending_bytes=98606416, interval elapsed, triggering flush to batch #1 -[06:42:55.008][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 1, done: None } -[06:42:55.008][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #1, starting flush -[06:42:55.008][WAL_FLUSH_HANDLER] Skipping flush to batch #1 - already at #1884 -[06:42:55.008][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.008][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.009][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.009][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.009][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.009][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.009][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.009][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.009][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.009][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.009][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.009][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.009][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.009][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.009][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.010][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.010][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.010][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.010][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.010][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.010][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.010][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.010][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.010][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.010][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.010][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.010][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.010][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.011][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.011][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.011][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.011][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.011][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.011][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.011][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.011][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.011][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.011][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.011][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.011][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.011][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.012][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.012][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.012][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.012][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.012][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.012][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.012][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.012][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.012][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.012][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.012][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.012][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.012][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.013][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.013][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.013][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.013][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.013][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.013][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.013][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.013][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.013][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.013][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.013][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.013][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.013][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.013][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.014][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.014][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.014][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.014][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.014][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.014][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.014][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.014][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.014][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.014][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.014][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.014][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.014][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.015][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.015][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.015][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.015][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.015][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.015][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.015][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.015][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.015][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.015][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.015][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.015][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.015][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.016][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.016][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.016][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.016][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 7300 batches in 2.368987405s -[06:42:55.016][PUT] put #7300 -[06:42:55.016][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.016][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.016][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.016][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.016][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.016][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.016][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.016][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.016][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.017][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.017][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.017][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.017][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.017][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.017][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.017][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.017][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.017][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.017][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.017][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.017][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.017][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.018][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.018][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.018][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.018][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.018][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.018][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.018][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.018][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.018][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.018][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.018][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.018][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.018][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.019][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.019][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.019][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.019][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.019][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.019][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.019][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.019][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.019][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.019][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.019][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.019][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.019][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.019][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.020][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.020][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.020][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.020][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.020][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.020][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.020][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.020][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.020][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.020][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.020][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.020][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.020][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.021][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.021][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.021][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.021][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.021][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.021][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.021][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.021][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.021][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.021][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.021][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.021][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.021][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.022][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.022][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.022][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.022][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.022][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.022][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.022][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.022][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.022][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.022][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.022][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.022][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.022][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.022][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.023][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.023][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.023][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.023][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.023][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.023][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.023][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.023][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.023][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.023][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.023][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 7400 batches in 2.376555126s -[06:42:55.023][PUT] put #7400 -[06:42:55.023][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.023][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.024][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.024][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.024][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.024][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.024][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.024][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.024][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.024][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.024][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.024][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.024][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.024][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.024][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.025][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.025][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.025][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.025][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.025][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.025][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.025][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.025][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.025][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.025][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.025][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.025][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.025][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.025][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.026][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.026][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.026][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.026][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.026][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.026][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.026][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.026][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.026][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.026][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.026][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.026][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.026][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.027][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.027][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.027][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.027][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.027][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.027][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.027][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.027][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.027][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.027][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.027][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.027][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.027][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.028][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.028][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.028][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.028][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.028][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.028][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.028][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.028][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.028][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.028][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.028][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.028][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.028][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.029][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.029][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.029][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.029][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.029][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.029][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.029][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.029][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.029][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.029][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.029][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.029][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.029][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.029][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.030][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.030][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.030][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.030][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.030][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.030][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.030][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.030][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.030][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.030][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.030][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.030][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.030][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.031][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.031][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.031][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.031][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.031][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 7500 batches in 2.38408899s -[06:42:55.031][PUT] put #7500 -[06:42:55.031][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.031][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.031][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.031][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.031][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.031][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.031][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.031][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.032][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.032][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.032][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.032][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.032][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.032][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.032][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.032][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.032][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.032][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.032][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.032][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.032][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.033][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.033][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.033][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.033][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.033][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.033][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.033][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.033][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.033][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.033][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.033][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.033][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.033][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.033][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.034][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.034][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.034][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.034][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.034][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.034][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.034][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.034][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.034][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.034][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.034][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.034][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.034][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.035][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.035][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.035][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.035][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.035][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.035][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.035][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.035][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.035][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.035][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.035][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.035][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.035][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.035][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.036][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.036][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.036][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.036][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.036][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.036][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.036][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.036][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.036][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.036][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.036][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.036][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.036][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.037][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.037][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.037][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.037][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.037][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.037][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.037][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.037][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.037][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.037][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.037][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.037][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.037][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.037][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.038][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.038][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.038][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.038][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.038][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.038][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.038][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.038][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.038][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.038][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.038][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 7600 batches in 2.391562249s -[06:42:55.038][PUT] put #7600 -[06:42:55.038][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.038][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.039][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.039][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.039][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.039][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.039][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.039][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.039][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.039][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.039][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.039][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.039][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.039][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.039][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.040][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.040][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.040][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.040][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.040][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.040][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.040][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.040][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.040][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.040][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.040][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.040][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.040][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.040][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.041][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.041][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.041][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.041][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.041][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.041][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.041][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.041][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.041][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.041][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.041][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.041][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.041][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.042][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.042][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.042][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.042][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.042][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.042][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.042][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.042][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.042][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.042][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.042][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.042][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.042][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.043][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.043][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.043][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.043][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.043][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.043][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.043][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.043][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.043][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.043][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.043][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.043][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.043][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.044][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.044][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.044][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.044][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.044][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.044][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.044][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.044][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.044][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.044][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.044][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.044][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.044][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.044][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.045][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.045][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.045][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.045][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.045][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.045][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.045][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.045][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.045][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.045][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.045][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.045][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.045][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.046][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.046][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.046][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.046][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.046][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 7700 batches in 2.399057518s -[06:42:55.046][PUT] put #7700 -[06:42:55.046][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.046][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.046][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.046][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.046][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.046][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.046][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.046][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.047][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.047][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.047][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.047][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.047][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.047][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.047][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.047][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.047][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.047][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.047][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.047][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.047][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.048][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.048][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.048][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.048][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.048][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.048][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.048][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.048][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.048][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.048][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.048][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.048][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.048][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.048][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.049][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.049][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.049][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.049][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.049][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.049][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.049][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.049][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.049][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.049][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.049][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.049][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.049][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.050][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.050][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.050][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.050][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.050][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.050][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.050][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.050][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.050][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.050][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.050][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.050][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.050][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.051][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.051][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.051][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.051][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.051][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.051][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.051][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.051][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.051][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.051][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.051][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.051][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.051][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.051][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.052][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.052][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.052][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.052][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.052][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.052][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.052][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.052][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.052][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.052][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.052][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.052][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.052][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.053][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.053][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.053][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.053][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.053][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.053][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.053][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.053][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.053][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.053][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.053][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.053][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 7800 batches in 2.406591516s -[06:42:55.053][PUT] put #7800 -[06:42:55.053][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.054][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.054][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.054][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.054][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.054][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.054][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.054][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.054][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.054][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.054][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.054][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.054][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.054][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.055][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.055][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.055][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.055][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.055][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.055][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.055][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.055][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.055][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.055][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.055][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.055][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.055][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.055][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.056][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.056][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.056][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.056][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.056][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.056][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.056][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.056][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.056][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.056][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.056][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.056][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.056][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.057][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.057][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.057][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.057][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.057][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.057][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.057][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.057][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.057][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.057][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.057][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.057][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.057][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.058][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.058][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.058][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.058][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.058][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.058][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.058][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.058][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.058][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.058][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.058][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.058][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.058][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.059][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.059][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.059][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.059][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.059][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.059][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.059][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.059][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.059][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.059][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.059][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.059][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.059][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.059][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.060][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.060][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.060][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.060][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.060][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.060][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.060][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.060][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.060][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.060][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.060][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.060][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.060][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.061][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.061][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.061][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.061][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.061][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.061][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 7900 batches in 2.414158382s -[06:42:55.061][PUT] put #7900 -[06:42:55.061][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.061][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.061][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.061][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.061][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.061][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.061][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.062][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.062][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.062][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.062][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.062][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.062][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.062][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.062][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.062][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.062][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.062][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.062][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.062][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.063][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.063][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.063][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.063][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.063][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.063][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.063][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.063][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.063][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.063][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.063][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.063][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.063][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.063][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.064][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.064][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.064][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.064][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.064][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.064][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.064][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.064][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.064][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.064][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.064][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.064][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.064][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.065][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.065][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.065][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.065][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.065][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.065][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.065][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.065][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.065][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.065][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.065][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.065][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.065][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.066][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.066][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.066][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.066][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.066][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.066][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.066][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.066][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.066][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.066][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.066][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.066][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.066][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.066][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.067][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.067][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.067][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.067][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.067][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.067][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.067][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.067][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.067][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.067][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.067][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.067][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.067][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.068][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.068][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.068][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.068][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.068][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.068][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.068][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.068][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.068][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.068][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.068][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.068][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.068][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 8000 batches in 2.421649333s -[06:42:55.068][PUT] put #8000 -[06:42:55.069][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.069][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.069][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.069][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.069][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.069][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.069][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.069][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.069][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.069][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.069][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.069][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.069][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.069][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.070][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.070][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.070][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.070][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.070][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.070][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.070][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.070][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.070][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.070][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.070][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.070][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.070][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.071][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.071][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.071][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.071][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.071][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.071][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.071][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.071][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.071][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.071][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.071][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.071][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.071][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.072][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.072][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.072][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.072][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.072][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.072][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.072][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.072][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.072][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.072][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.072][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.072][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.072][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.072][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.073][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.073][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.073][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.073][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.073][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.073][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.073][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.073][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.073][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.073][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.073][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.073][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.073][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.074][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.074][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.074][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.074][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.074][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.074][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.074][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.074][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.074][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.074][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.074][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.074][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.074][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.075][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.075][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.075][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.075][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.075][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.075][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.075][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.075][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.075][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.075][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.075][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.075][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.075][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.075][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.076][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.076][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.076][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.076][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.076][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.076][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 8100 batches in 2.429165815s -[06:42:55.076][PUT] put #8100 -[06:42:55.076][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.076][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.076][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.076][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.076][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.076][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.076][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.077][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.077][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.077][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.077][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.077][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.077][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.077][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.077][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.077][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.077][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.077][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.077][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.077][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.078][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.078][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.078][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.078][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.078][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.078][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.078][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.078][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.078][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.078][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.078][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.078][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.078][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.079][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.079][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.079][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.079][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.079][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.079][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.079][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.079][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.079][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.079][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.079][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.079][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.079][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.079][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.080][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.080][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.080][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.080][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.080][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.080][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.080][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.080][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.080][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.080][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.080][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.080][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.080][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.081][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.081][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.081][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.081][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.081][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.081][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.081][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.081][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.081][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.081][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.081][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.081][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.081][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.082][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.082][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.082][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.082][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.082][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.082][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.082][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.082][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.082][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.082][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.082][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.082][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.082][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.082][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.083][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.083][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.083][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.083][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.083][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.083][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.083][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.083][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.083][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.083][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.083][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.083][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.083][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 8200 batches in 2.436735136s -[06:42:55.084][PUT] put #8200 -[06:42:55.084][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.084][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.084][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.084][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.084][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.084][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.084][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.084][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.084][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.084][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.084][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.084][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.085][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.085][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.085][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.085][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.085][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.085][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.085][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.085][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.085][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.085][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.085][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.085][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.085][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.086][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.086][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.086][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.086][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.086][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.086][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.086][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.086][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.086][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.086][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.086][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.086][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.086][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.087][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.087][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.087][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.087][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.087][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.087][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.087][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.087][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.087][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.087][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.087][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.087][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.087][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.087][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.088][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.088][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.088][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.088][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.088][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.088][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.088][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.088][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.088][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.088][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.088][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.088][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.088][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.089][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.089][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.089][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.089][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.089][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.089][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.089][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.089][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.089][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.089][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.089][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.089][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.089][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.090][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.090][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.090][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.090][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.090][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.090][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.090][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.090][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.090][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.090][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.090][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.090][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.091][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.091][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.091][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.091][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.091][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.091][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.091][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.091][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.091][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.091][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 8300 batches in 2.444422352s -[06:42:55.091][PUT] put #8300 -[06:42:55.091][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.091][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.091][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.092][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.092][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.092][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.092][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.092][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.092][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.092][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.092][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.092][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.092][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.092][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.092][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.092][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.092][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.093][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.093][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.093][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.093][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.093][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.093][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.093][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.093][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.093][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.093][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.093][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.093][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.093][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.094][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.094][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.094][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.094][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.094][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.094][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.094][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.094][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.094][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.094][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.094][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.094][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.094][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.094][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.095][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.095][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.095][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.095][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.095][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.095][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.095][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.095][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.095][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.095][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.095][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.095][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.095][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.096][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.096][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.096][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.096][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.096][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.096][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.096][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.096][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.096][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.096][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.096][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.097][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.097][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.097][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.097][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.097][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.097][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.097][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.097][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.097][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.097][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.097][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.097][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.097][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.097][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.098][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.098][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.098][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.098][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.098][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.098][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.098][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.098][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.098][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.098][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.098][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.098][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.098][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.099][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.099][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.099][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.099][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.099][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 8400 batches in 2.452082585s -[06:42:55.099][PUT] put #8400 -[06:42:55.099][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.099][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.099][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.099][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.099][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.099][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.099][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.099][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.100][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.100][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.100][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.100][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.100][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.100][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.100][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.100][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.100][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.100][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.100][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.100][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.100][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.101][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.101][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.101][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.101][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.101][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.101][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.101][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.101][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.101][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.101][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.101][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.101][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.101][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.102][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.102][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.102][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.102][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.102][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.102][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.102][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.102][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.102][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.102][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.102][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.102][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.102][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.102][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.103][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.103][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.103][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.103][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.103][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.103][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.103][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.103][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.103][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.103][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.103][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.103][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.103][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.104][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.104][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.104][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.104][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.104][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.104][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.104][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.104][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.104][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.104][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.104][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.104][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.104][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.105][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.105][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.105][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.105][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.105][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.105][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.105][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.105][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.105][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.105][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.105][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.105][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.105][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.105][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.106][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.106][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.106][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.106][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.106][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.106][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.106][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.106][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.106][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.106][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.106][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.106][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 8500 batches in 2.459607743s -[06:42:55.106][PUT] put #8500 -[06:42:55.106][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.107][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.107][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.107][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.107][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.107][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.107][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.107][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.107][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.107][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.107][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.107][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.107][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.107][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.108][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.108][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.108][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.108][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.108][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.108][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.108][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.108][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.108][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.108][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.108][WAL_TIME_TRIGGER] pending_bytes=187582304, interval elapsed, triggering flush to batch #1323 -[06:42:55.108][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 1323, done: None } -[06:42:55.108][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #1323, starting flush -[06:42:55.108][WAL_FLUSH_HANDLER] Skipping flush to batch #1323 - already at #1884 -[06:42:55.108][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.108][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.109][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.109][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.109][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.109][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.109][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.109][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.109][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.109][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.109][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.109][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.109][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.109][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.109][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.109][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.110][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.110][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.110][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.110][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.110][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.110][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.110][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.110][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.110][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.110][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.110][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.110][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.110][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.111][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.111][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.111][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.111][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.111][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.111][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.111][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.111][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.111][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.111][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.111][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.111][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.111][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.112][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.112][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.112][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.112][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.112][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.112][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.112][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.112][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.112][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.112][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.112][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.112][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.112][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.112][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.113][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.113][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.113][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.113][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.113][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.113][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.113][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.113][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.113][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.113][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.113][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.113][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.113][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.114][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.114][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.114][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.114][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.114][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.114][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.114][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 8600 batches in 2.467207466s -[06:42:55.114][PUT] put #8600 -[06:42:55.114][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.114][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.114][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.114][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.114][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.114][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.115][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.115][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.115][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.115][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.115][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.115][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.115][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.115][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.115][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.115][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.115][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.115][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.115][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.115][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.116][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.116][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.116][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.116][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.116][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.116][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.116][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.116][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.116][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.116][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.116][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.116][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.116][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.117][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.117][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.117][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.117][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.117][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.117][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.117][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.117][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.117][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.117][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.117][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.117][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.117][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.117][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.118][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.118][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.118][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.118][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.118][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.118][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.118][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.118][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.118][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.118][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.118][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.118][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.118][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.119][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.119][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.119][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.119][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.119][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.119][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.119][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.119][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.119][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.119][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.119][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.119][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.119][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.119][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.120][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.120][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.120][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.120][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.120][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.120][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.120][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.120][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.120][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.120][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.120][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.120][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.120][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.121][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.121][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.121][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.121][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.121][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.121][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.121][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.121][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.121][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.121][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.121][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.121][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.121][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 8700 batches in 2.474663725s -[06:42:55.122][PUT] put #8700 -[06:42:55.122][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.122][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.122][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.122][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.122][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.122][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.122][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.122][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.122][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.122][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.122][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.122][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.122][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.123][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.123][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.123][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.123][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.123][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.123][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.123][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.123][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.123][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.123][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.123][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.123][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.123][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.123][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.124][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.124][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.124][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.124][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.124][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.124][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.124][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.124][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.124][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.124][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.124][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.124][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.124][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.125][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.125][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.125][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.125][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.125][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.125][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.125][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.125][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.125][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.125][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.125][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.125][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.125][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.126][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.126][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.126][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.126][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.126][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.126][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.126][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.126][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.126][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.126][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.126][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.126][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.126][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.126][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.127][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.127][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.127][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.127][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.127][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.127][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.127][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.127][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.127][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.127][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.127][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.127][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.127][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.128][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.128][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.128][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.128][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.128][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.128][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.128][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.128][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.128][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.128][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.128][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.128][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.128][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.129][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.129][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.129][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.129][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.129][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.129][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.129][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 8800 batches in 2.482209688s -[06:42:55.129][PUT] put #8800 -[06:42:55.129][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.129][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.129][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.129][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.129][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.129][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.130][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.130][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.130][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.130][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.130][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.130][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.130][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.130][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.130][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.130][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.130][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.130][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.130][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.130][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.131][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.131][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.131][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.131][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.131][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.131][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.131][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.131][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.131][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.131][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.131][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.131][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.131][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.132][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.132][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.132][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.132][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.132][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.132][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.132][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.132][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.132][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.132][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.132][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.132][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.132][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.132][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.133][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.133][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.133][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.133][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.133][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.133][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.133][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.133][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.133][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.133][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.133][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.133][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.133][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.134][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.134][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.134][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.134][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.134][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.134][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.134][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.134][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.134][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.134][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.134][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.134][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.134][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.135][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.135][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.135][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.135][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.135][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.135][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.135][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.135][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.135][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.135][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.135][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.135][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.135][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.136][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.136][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.136][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.136][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.136][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.136][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.136][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.136][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.136][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.136][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.136][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.136][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.136][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.136][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 8900 batches in 2.489717219s -[06:42:55.137][PUT] put #8900 -[06:42:55.137][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.137][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.137][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.137][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.137][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.137][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.137][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.137][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.137][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.137][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.137][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.137][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.137][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.138][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.138][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.138][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.138][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.138][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.138][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.138][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.138][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.138][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.138][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.138][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.138][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.138][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.139][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.139][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.139][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.139][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.139][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.139][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.139][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.139][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.139][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.139][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.139][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.139][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.139][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.140][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.140][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.140][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.140][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.140][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.140][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.140][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.140][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.140][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.140][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.140][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.140][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.140][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.140][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.141][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.141][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.141][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.141][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.141][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.141][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.141][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.141][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.141][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.141][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.141][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.141][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.141][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.142][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.142][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.142][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.142][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.142][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.142][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.142][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.142][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.142][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.142][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.142][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.142][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.142][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.143][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.143][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.143][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.143][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.143][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.143][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.143][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.143][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.143][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.143][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.143][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.143][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.143][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.143][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.144][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.144][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.144][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.144][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.144][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.144][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.144][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 9000 batches in 2.497257537s -[06:42:55.144][PUT] put #9000 -[06:42:55.144][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.144][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.144][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.144][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.144][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.144][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.145][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.145][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.145][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.145][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.145][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.145][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.145][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.145][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.145][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.145][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.145][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.145][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.145][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.146][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.146][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.146][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.146][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.146][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.146][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.146][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.146][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.146][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.146][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.146][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.146][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.146][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.147][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.147][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.147][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.147][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.147][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.147][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.147][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.147][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.147][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.147][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.147][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.147][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.147][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.147][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.148][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.148][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.148][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.148][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.148][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.148][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.148][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.148][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.148][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.148][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.148][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.148][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.148][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.149][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.149][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.149][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.149][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.149][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.149][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.149][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.149][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.149][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.149][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.149][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.149][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.149][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.150][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.150][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.150][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.150][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.150][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.150][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.150][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.150][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.150][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.150][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.150][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.150][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.150][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.151][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.151][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.151][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.151][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.151][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.151][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.151][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.151][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.151][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.151][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.151][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.151][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.151][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.151][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.152][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 9100 batches in 2.504783742s -[06:42:55.152][PUT] put #9100 -[06:42:55.152][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.152][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.152][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.152][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.152][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.152][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.152][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.152][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.152][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.152][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.152][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.152][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.153][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.153][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.153][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.153][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.153][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.153][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.153][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.153][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.153][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.153][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.153][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.153][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.153][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.154][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.154][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.154][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.154][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.154][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.154][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.154][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.154][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.154][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.154][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.154][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.154][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.154][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.154][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.155][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.155][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.155][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.155][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.155][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.155][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.155][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.155][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.155][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.155][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.155][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.155][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.155][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.156][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.156][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.156][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.156][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.156][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.156][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.156][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.156][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.156][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.156][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.156][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.156][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.156][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.156][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.157][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.157][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.157][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.157][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.157][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.157][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.157][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.157][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.157][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.157][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.157][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.157][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.157][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.158][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.158][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.158][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.158][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.158][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.158][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.158][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.158][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.158][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.158][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.158][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.158][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.158][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.159][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.159][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.159][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.159][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.159][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.159][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.159][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.159][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 9200 batches in 2.51226589s -[06:42:55.159][PUT] put #9200 -[06:42:55.159][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.159][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.159][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.159][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.159][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.159][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.160][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.160][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.160][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.160][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.160][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.160][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.160][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.160][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.160][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.160][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.160][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.160][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.160][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.161][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.161][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.161][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.161][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.161][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.161][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.161][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.161][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.161][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.161][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.161][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.161][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.161][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.162][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.162][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.162][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.162][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.162][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.162][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.162][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.162][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.162][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.162][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.162][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.162][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.162][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.163][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.163][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.163][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.163][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.163][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.163][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.163][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.163][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.163][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.163][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.163][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.163][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.163][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.164][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.164][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.164][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.164][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.164][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.164][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.164][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.164][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.164][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.164][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.164][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.164][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.164][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.165][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.165][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.165][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.165][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.165][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.165][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.165][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.165][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.165][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.165][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.165][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.165][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.165][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.165][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.166][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.166][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.166][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.166][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.166][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.166][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.166][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.166][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.166][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.166][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.166][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.166][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.166][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.167][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.167][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 9300 batches in 2.519878636s -[06:42:55.167][PUT] put #9300 -[06:42:55.167][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.167][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.167][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.167][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.167][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.167][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.167][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.167][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.167][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.167][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.168][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.168][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.168][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.168][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.168][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.168][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.168][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.168][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.168][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.168][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.168][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.168][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.168][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.169][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.169][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.169][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.169][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.169][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.169][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.169][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.169][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.169][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.169][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.169][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.169][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.169][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.169][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.170][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.170][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.170][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.170][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.170][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.170][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.170][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.170][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.170][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.170][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.170][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.170][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.170][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.171][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.171][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.171][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.171][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.171][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.171][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.171][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.171][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.171][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.171][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.171][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.171][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.171][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.172][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.172][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.172][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.172][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.172][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.172][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.172][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.172][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.172][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.172][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.172][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.172][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.172][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.173][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.173][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.173][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.173][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.173][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.173][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.173][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.173][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.173][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.173][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.173][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.173][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.173][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.174][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.174][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.174][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.174][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.174][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.174][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.174][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.174][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.174][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.174][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.174][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 9400 batches in 2.527526664s -[06:42:55.174][PUT] put #9400 -[06:42:55.174][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.174][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.175][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.175][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.175][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.175][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.175][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.175][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.175][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.175][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.175][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.175][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.175][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.175][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.175][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.176][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.176][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.176][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.176][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.176][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.176][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.176][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.176][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.176][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.176][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.176][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.176][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.176][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.177][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.177][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.177][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.177][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.177][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.177][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.177][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.177][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.177][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.177][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.177][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.177][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.177][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.178][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.178][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.178][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.178][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.178][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.178][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.178][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.178][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.178][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.178][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.178][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.178][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.178][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.179][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.179][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.179][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.179][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.179][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.179][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.179][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.179][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.179][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.179][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.179][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.179][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.179][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.179][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.180][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.180][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.180][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.180][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.180][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.180][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.180][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.180][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.180][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.180][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.180][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.180][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.180][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.181][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.181][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.181][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.181][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.181][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.181][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.181][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.181][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.181][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.181][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.181][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.181][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.182][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.182][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.182][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.182][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.182][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.182][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.182][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 9500 batches in 2.535188492s -[06:42:55.182][PUT] put #9500 -[06:42:55.182][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.182][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.182][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.182][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.182][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.182][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.183][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.183][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.183][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.183][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.183][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.183][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.183][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.183][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.183][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.183][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.183][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.183][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.183][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.183][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.184][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.184][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.184][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.184][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.184][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.184][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.184][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.184][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.184][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.184][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.184][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.184][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.184][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.185][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.185][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.185][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.185][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.185][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.185][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.185][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.185][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.185][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.185][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.185][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.185][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.185][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.185][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.186][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.186][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.186][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.186][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.186][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.186][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.186][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.186][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.186][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.186][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.186][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.186][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.186][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.187][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.187][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.187][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.187][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.187][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.187][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.187][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.187][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.187][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.187][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.187][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.187][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.187][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.188][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.188][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.188][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.188][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.188][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.188][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.188][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.188][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.188][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.188][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.188][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.188][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.188][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.189][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.189][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.189][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.189][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.189][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.189][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.189][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.189][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.189][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.189][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.189][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.189][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.189][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.189][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 9600 batches in 2.542715307s -[06:42:55.190][PUT] put #9600 -[06:42:55.190][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.190][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.190][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.190][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.190][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.190][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.190][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.190][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.190][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.190][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.190][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.190][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.190][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.191][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.191][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.191][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.191][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.191][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.191][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.191][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.191][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.191][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.191][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.191][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.191][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.191][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.192][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.192][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.192][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.192][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.192][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.192][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.192][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.192][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.192][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.192][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.192][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.192][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.192][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.192][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.193][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.193][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.193][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.193][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.193][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.193][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.193][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.193][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.193][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.193][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.193][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.193][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.193][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.194][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.194][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.194][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.194][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.194][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.194][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.194][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.194][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.194][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.194][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.194][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.194][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.194][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.195][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.195][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.195][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.195][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.195][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.195][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.195][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.195][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.195][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.195][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.195][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.195][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.195][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.195][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.196][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.196][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.196][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.196][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.196][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.196][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.196][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.196][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.196][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.196][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.196][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.196][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.196][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.197][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.197][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.197][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.197][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.197][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.197][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.197][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 9700 batches in 2.550254036s -[06:42:55.197][PUT] put #9700 -[06:42:55.197][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.197][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.197][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.197][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.197][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.197][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.198][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.198][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.198][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.198][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.198][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.198][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.198][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.198][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.198][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.198][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.198][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.198][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.198][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.199][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.199][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.199][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.199][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.199][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.199][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.199][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.199][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.199][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.199][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.199][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.199][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.199][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.200][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.200][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.200][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.200][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.200][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.200][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.200][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.200][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.200][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.200][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.200][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.200][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.200][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.200][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.201][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.201][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.201][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.201][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.201][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.201][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.201][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.201][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.201][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.201][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.201][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.201][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.201][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.202][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.202][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.202][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.202][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.202][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.202][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.202][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.202][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.202][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.202][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.202][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.202][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.202][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.202][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.203][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.203][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.203][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.203][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.203][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.203][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.203][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.203][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.203][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.203][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.203][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.203][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.203][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.204][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.204][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.204][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.204][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.204][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.204][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.204][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.204][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.204][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.204][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.204][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.204][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.204][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.205][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 9800 batches in 2.557739463s -[06:42:55.205][PUT] put #9800 -[06:42:55.205][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.205][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.205][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.205][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.205][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.205][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.205][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.205][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.205][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.205][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.205][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.205][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.205][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.206][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.206][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.206][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.206][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.206][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.206][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.206][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.206][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.206][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.206][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.206][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.206][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.206][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.207][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.207][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.207][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.207][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.207][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.207][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.207][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.207][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.207][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.207][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.207][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.207][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.207][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.208][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.208][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.208][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.208][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.208][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.208][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.208][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.208][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.208][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.208][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.208][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.208][WAL_TIME_TRIGGER] pending_bytes=276827408, interval elapsed, triggering flush to batch #2649 -[06:42:55.208][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 2649, done: None } -[06:42:55.208][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #2649, starting flush -[06:42:55.209] [WAL_FLUSH] Flushing range 1884..2649 (765 batches, 15300 rows) to WAL #45 -[06:42:55.267][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.267][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.267][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.268][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.268][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.268][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.268][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.268][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.268][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.268][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.268][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.268][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.268][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.268][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.268][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.268][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.268][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.269][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.269][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.269][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.269][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.269][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.269][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.269][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.269][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.269][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.270][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.271][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.271][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.271][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.271][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.271][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.271][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.271][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.271][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.271][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.271][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.271][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.271][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.271][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.272][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.272][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.272][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.272][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.272][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.272][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.272][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.272][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.272][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.273][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 9900 batches in 2.626576884s -[06:42:55.273][PUT] put #9900 -[06:42:55.273][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.274][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.274][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.274][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.274][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.274][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.274][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.274][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.274][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.274][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.274][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.274][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.274][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.274][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.275][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.275][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.275][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.275][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.275][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.275][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.275][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.275][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.275][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.275][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.275][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.275][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.275][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.276][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.276][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.276][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.276][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.276][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.276][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.276][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.276][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.276][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.276][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.276][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.276][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.276][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.276][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.277][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.277][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.277][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.277][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.277][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.277][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.277][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.277][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.277][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.277][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.277][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.277][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.277][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.278][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.278][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.278][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.278][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.278][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.278][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.278][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.278][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.278][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.278][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.278][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.280][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.281][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.281][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.281][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.281][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.281][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.281][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.281][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.281][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.281][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.281][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.281][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.281][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.281][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.282][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.282][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.282][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.282][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.282][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.282][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.282][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.282][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.282][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.282][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.282][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.282][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.282][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.283][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.283][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.283][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.283][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.283][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.283][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.283][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:42:55.283][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 10000 batches in 2.636291345s -[TEST] All writes done in 2.636301742s +[06:50:13.518][PUT] put #0 +[06:50:13.518][EXECUTOR] Task 'wal_flusher' spawned and starting +[06:50:13.518][DISPATCHER] Task 'wal_flusher' started, has 0 tickers +[06:50:13.518][EXECUTOR] Task 'memtable_flusher' spawned and starting +[06:50:13.518][DISPATCHER] Task 'memtable_flusher' started, has 0 tickers +[06:50:13.518][EXECUTOR] Task 'writer' spawned and starting +[06:50:13.518][DISPATCHER] Task 'writer' started, has 0 tickers +[06:50:13.518][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.519][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.519][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.519][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.519][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.519][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.519][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.519][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.519][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.520][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.520][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.520][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.520][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.520][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.520][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.520][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.520][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.521][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.521][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.521][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.521][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.521][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.521][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.521][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.521][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.522][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.522][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.522][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.522][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.522][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.522][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.522][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.523][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.523][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.523][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.523][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.523][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.523][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.523][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.523][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.524][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.524][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.524][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.524][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.524][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.524][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.524][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.524][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.525][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.525][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.525][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.525][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.525][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.525][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.525][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.525][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.526][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.526][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.526][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.526][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.526][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.526][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.526][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.526][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.527][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.527][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.527][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.527][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.527][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.527][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.527][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.527][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.528][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.528][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.528][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.528][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.528][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.528][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.528][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.528][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.529][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.529][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.529][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.529][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.529][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.529][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.529][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.529][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.530][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.530][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.530][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.530][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.530][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.530][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.530][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.530][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.531][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.531][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.531][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.531][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 100 batches in 13.415698ms +[06:50:13.531][PUT] put #100 +[06:50:13.531][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.531][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.531][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.531][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.532][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.532][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.532][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.532][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.532][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.532][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.532][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.532][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.533][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.533][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.533][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.533][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.533][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.533][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.533][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.533][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.534][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.534][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.534][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.534][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.534][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.534][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.534][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.534][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.535][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.535][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.535][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.535][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.535][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.535][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.535][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.535][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.536][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.536][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.536][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.536][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.536][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.536][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.536][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.536][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.537][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.537][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.537][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.537][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.537][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.537][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.537][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.537][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.538][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.538][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.538][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.538][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.538][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.538][WAL_SIZE_TRIGGER] pending_bytes=10486344, threshold #1 crossed (10MB), triggering flush to batch #157 +[06:50:13.538][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 157, done: None } +[06:50:13.538][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #157, starting flush +[06:50:13.539] [WAL_FLUSH] Flushing range 0..157 (157 batches, 3140 rows) to WAL #1 +[06:50:13.551][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.551][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.551][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.551][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.552][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.552][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.552][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.552][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.557][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.557][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.557][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.557][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.557][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.557][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.557][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.557][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.558][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.558][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.558][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.558][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.558][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.559][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.559][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.559][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.559][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.559][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.560][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.560][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 200 batches in 42.170715ms +[06:50:13.560][PUT] put #200 +[06:50:13.560][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.560][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.560][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.561][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.561][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.561][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.561][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.561][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.562][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.562][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.562][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.562][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.562][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.562][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.562][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 300 batches in 58.790528ms +[06:50:13.576][PUT] put #300 +[06:50:13.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.578][WAL_SIZE_TRIGGER] pending_bytes=20972688, threshold #2 crossed (20MB), triggering flush to batch #314 +[06:50:13.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 400 batches in 71.411304ms +[06:50:13.589][PUT] put #400 +[06:50:13.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.595][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.595][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.595][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.595][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.595][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.595][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.595][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.595][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.598][WAL_SIZE_TRIGGER] pending_bytes=31459032, threshold #3 crossed (30MB), triggering flush to batch #471 +[06:50:13.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.599][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.599][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.599][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.599][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.599][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.599][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.599][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.599][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.599][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.600][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.600][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.600][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.600][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.600][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.600][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.600][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.600][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 500 batches in 83.982185ms +[06:50:13.602][PUT] put #500 +[06:50:13.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.604][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.604][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.604][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.604][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.604][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.604][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.604][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.604][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.608][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.608][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.608][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.608][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.608][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.608][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.608][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.608][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.609][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.609][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.609][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.609][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.609][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.609][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.609][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.609][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.610][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.610][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.610][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.610][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.610][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.610][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.610][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.610][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.611][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.611][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.611][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.611][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.611][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.611][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.611][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.611][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.612][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.612][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.612][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.612][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.612][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.612][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.612][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.612][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.613][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.613][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.613][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.613][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.613][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.613][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.613][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.613][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.614][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.614][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.614][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.614][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.614][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 600 batches in 96.532228ms +[06:50:13.614][PUT] put #600 +[06:50:13.614][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.614][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.614][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.615][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.615][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.615][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.615][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.615][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.615][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.615][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.615][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.616][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.616][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.616][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.616][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.616][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.616][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.616][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.616][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.617][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.617][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.617][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.617][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.617][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.617][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.617][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.617][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.618][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.618][WAL_SIZE_TRIGGER] pending_bytes=41945376, threshold #4 crossed (40MB), triggering flush to batch #628 +[06:50:13.618][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.618][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.618][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.618][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.618][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.618][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.618][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.619][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.619][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.619][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.619][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.619][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.619][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.619][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.619][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.620][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.620][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.620][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.620][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.620][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.620][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.620][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.620][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.624][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.624][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.624][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.624][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.624][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.624][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.624][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.624][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 700 batches in 109.056361ms +[06:50:13.627][PUT] put #700 +[06:50:13.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.637][WAL_SIZE_TRIGGER] pending_bytes=52431720, threshold #5 crossed (50MB), triggering flush to batch #785 +[06:50:13.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 800 batches in 121.58288ms +[06:50:13.639][PUT] put #800 +[06:50:13.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.645][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.645][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.645][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.645][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.645][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.645][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.645][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.645][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 900 batches in 134.149603ms +[06:50:13.652][PUT] put #900 +[06:50:13.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.657][WAL_SIZE_TRIGGER] pending_bytes=62918064, threshold #6 crossed (60MB), triggering flush to batch #942 +[06:50:13.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.659][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.659][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.659][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.659][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.659][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.659][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.659][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.659][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.660][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.660][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.660][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.660][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.660][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.660][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.660][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.660][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.661][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.661][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.661][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.661][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.661][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.661][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.661][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.661][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.662][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.662][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.662][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.662][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.662][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.662][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.662][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.662][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.663][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.663][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.663][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.663][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.663][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.663][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.663][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.663][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.664][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.664][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.664][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.664][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.664][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.664][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.664][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 1000 batches in 146.837604ms +[06:50:13.664][PUT] put #1000 +[06:50:13.665][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.665][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.665][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.665][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.665][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.665][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.665][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.665][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.666][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.666][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.666][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.666][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.666][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.666][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.666][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.666][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.667][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.667][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.667][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.667][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.667][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.667][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.667][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.667][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.668][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.668][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.668][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.668][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.668][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.668][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.668][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.668][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.669][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.669][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.669][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.669][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.669][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.669][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.669][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.669][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.670][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.670][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.670][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.670][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.670][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.670][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.670][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.670][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.671][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.671][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.671][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.671][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.671][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.671][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.671][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.671][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.672][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.672][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.672][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.672][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.672][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.672][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.672][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.672][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.673][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.673][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.673][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.673][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.673][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.673][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.673][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.673][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.674][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.674][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.674][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.674][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.674][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.674][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.674][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.674][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.675][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.675][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.675][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.675][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.675][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.675][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.675][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.675][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.676][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.676][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.676][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.676][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.676][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.676][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.676][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.676][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.677][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.677][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.677][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.677][WAL_SIZE_TRIGGER] pending_bytes=73404408, threshold #7 crossed (70MB), triggering flush to batch #1099 +[06:50:13.677][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 1100 batches in 159.465855ms +[06:50:13.677][PUT] put #1100 +[06:50:13.677][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.677][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.677][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.677][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.678][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.678][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.678][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.678][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.678][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.678][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.678][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.679][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.679][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.679][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.679][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.679][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.679][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.679][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.679][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.679][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.680][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.680][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.680][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.680][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.680][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.680][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.680][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.680][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.681][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.681][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.681][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.681][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.681][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.681][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.681][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.681][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.682][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.682][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.682][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.682][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.682][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.682][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.682][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.682][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.683][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.683][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.683][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.683][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.683][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.683][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.683][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.683][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.684][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.684][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.684][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.684][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.684][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.684][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.684][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.684][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.685][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.685][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.685][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.685][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.685][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.685][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.685][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.685][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.686][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.686][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.686][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.686][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.686][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.686][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.686][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.686][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.687][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.687][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.687][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.687][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.687][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.687][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.687][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.687][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.688][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.688][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.688][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.688][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.688][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.688][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.688][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.689][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.689][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.689][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.689][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.689][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.689][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.689][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.689][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.690][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 1200 batches in 172.022841ms +[06:50:13.690][PUT] put #1200 +[06:50:13.690][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.690][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.690][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.690][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.690][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.690][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.690][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.691][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.691][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.691][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.691][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.691][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.691][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.691][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.691][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.692][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.692][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.692][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.692][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.692][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.692][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.692][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.692][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.693][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.693][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.693][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.693][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.693][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.693][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.693][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.693][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.694][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.694][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.694][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.694][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.694][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.694][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.694][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.694][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.695][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.695][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.695][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.695][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.695][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.695][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.695][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.695][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.696][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.696][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.696][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.696][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.696][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.696][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.696][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.696][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.697][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.697][WAL_SIZE_TRIGGER] pending_bytes=83890752, threshold #8 crossed (80MB), triggering flush to batch #1256 +[06:50:13.697][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.697][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.697][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.697][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.697][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.697][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.697][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.698][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.698][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.698][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.698][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.698][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.698][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.698][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.698][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.699][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.699][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.699][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.699][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.699][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.699][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.699][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.699][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.700][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.700][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.700][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.700][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.700][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.700][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.700][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.700][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.701][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.701][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.701][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.701][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.701][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.701][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.701][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.701][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.702][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.702][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.702][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.702][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.702][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 1300 batches in 184.563337ms +[06:50:13.702][PUT] put #1300 +[06:50:13.702][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.702][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.702][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.703][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.703][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.703][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.703][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.703][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.703][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.703][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.703][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.704][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.704][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.704][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.704][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.704][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.704][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.704][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.704][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.705][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.705][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.705][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.705][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.705][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.705][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.705][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.705][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.706][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.706][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.706][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.706][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.706][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.706][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.706][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.706][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.707][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.707][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.707][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.707][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.707][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.707][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.707][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.708][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.708][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.708][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.708][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.708][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.708][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.708][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.708][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.709][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.709][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.709][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.709][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.709][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.709][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.709][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.709][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.710][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.710][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.710][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.710][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.710][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.710][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.710][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.710][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.711][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.711][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.711][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.711][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.711][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.711][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.711][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.711][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.712][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.712][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.712][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.712][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.712][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.712][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.712][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.712][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.713][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.713][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.713][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.713][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.713][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.713][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.713][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.713][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.714][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.714][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.714][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.714][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.714][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.714][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.714][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.714][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.715][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.715][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 1400 batches in 197.170483ms +[06:50:13.715][PUT] put #1400 +[06:50:13.715][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.715][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.715][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.715][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.715][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.715][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.716][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.716][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.716][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.716][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.716][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.716][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.716][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.716][WAL_SIZE_TRIGGER] pending_bytes=94377096, threshold #9 crossed (90MB), triggering flush to batch #1413 +[06:50:13.717][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.717][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.717][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.717][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.717][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.717][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.717][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.717][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.718][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.718][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.718][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.718][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.718][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.718][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.718][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.718][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.719][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.719][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.719][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.719][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.719][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.719][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.719][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.719][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.720][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.720][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.720][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.720][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.720][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.720][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.720][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.720][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.721][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.721][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.721][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.721][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.721][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.721][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.721][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.721][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.721][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.722][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.722][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.722][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.722][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.722][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.722][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.722][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.722][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.723][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.723][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.723][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.723][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.723][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.723][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.723][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.723][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.724][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.724][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.724][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.724][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.724][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.724][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.724][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.724][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.725][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.725][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.725][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.725][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.725][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.725][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.725][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.725][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.726][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.726][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.726][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.726][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.726][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.726][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.726][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.727][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.727][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.727][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.727][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.727][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.727][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.727][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 1500 batches in 209.775051ms +[06:50:13.727][PUT] put #1500 +[06:50:13.727][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.728][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.728][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.728][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.728][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.728][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.728][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.728][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.728][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.729][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.729][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.729][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.729][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.729][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.729][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.729][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.729][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.730][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.730][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.730][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.730][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.730][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.730][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.730][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.730][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.731][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.731][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.731][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.731][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.731][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.731][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.731][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.731][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.732][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.732][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.732][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.732][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.732][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.732][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.732][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.732][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.733][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.733][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.733][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.733][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.733][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.733][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.733][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.733][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.734][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.734][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.734][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.734][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.734][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.734][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.734][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.734][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.735][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.735][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.735][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.735][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.735][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.735][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.735][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.735][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.736][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.736][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.736][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.736][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.736][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.736][WAL_SIZE_TRIGGER] pending_bytes=104863440, threshold #10 crossed (100MB), triggering flush to batch #1570 +[06:50:13.736][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.736][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.736][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.737][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.737][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.737][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.737][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.737][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.737][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.737][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.737][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.738][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.738][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.738][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.738][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.738][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.738][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.738][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.738][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.739][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.739][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.739][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.739][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.739][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.739][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.739][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.739][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.740][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.740][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.740][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 1600 batches in 222.361104ms +[06:50:13.740][PUT] put #1600 +[06:50:13.740][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.740][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.740][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.740][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.741][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.741][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.741][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.741][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.741][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.741][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.741][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.741][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.742][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.742][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.742][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.742][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.742][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.742][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.742][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.742][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.743][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.743][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.743][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.743][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.743][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.743][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.743][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.743][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.744][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.744][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.744][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.744][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.744][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.744][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.744][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.744][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.745][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.745][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.745][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.745][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.745][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.745][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.745][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.745][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.746][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.746][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.746][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.746][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.746][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.746][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.746][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.746][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.747][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.747][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.747][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.747][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.747][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.747][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.747][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.747][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.748][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.748][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.748][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.748][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.748][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.748][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.748][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.748][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.749][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.749][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.749][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.749][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.749][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.749][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.749][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.749][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.750][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.750][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.750][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.750][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.750][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.750][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.750][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.750][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.751][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.751][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.751][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.751][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.751][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.751][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.751][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.751][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.752][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.752][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.752][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.752][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.752][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.752][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.752][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.752][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 1700 batches in 234.936061ms +[06:50:13.753][PUT] put #1700 +[06:50:13.753][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.753][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.753][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.753][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.753][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.753][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.753][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.753][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.754][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.754][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.754][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.754][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.754][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.754][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.754][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.754][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.755][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.755][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.755][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.755][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.755][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.755][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.755][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.755][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.756][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.756][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.756][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.756][WAL_SIZE_TRIGGER] pending_bytes=115349784, threshold #11 crossed (110MB), triggering flush to batch #1727 +[06:50:13.756][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.756][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.756][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.756][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.757][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.757][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.757][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.757][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.757][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.757][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.757][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.757][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.758][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.758][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.758][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.758][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.758][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.758][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.758][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.758][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.759][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.759][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.759][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.759][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.759][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.759][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.759][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.759][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.760][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.760][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.760][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.760][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.760][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.760][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.760][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.760][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.761][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.761][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.761][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.761][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.761][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.761][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.761][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.761][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.762][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.762][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.762][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.762][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.762][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.762][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.762][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.762][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.763][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.763][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.763][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.763][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.763][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.763][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.763][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.763][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.764][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.764][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.764][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.764][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.764][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.764][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.764][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.764][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.765][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.765][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.765][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.765][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.765][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 1800 batches in 247.575311ms +[06:50:13.765][PUT] put #1800 +[06:50:13.765][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.765][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.765][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.766][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.766][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.766][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.766][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.766][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.766][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.766][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.767][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.767][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.767][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.767][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.767][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.767][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.767][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.767][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.768][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.768][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.768][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.768][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.768][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.768][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.768][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.768][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.769][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.769][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.769][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.769][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.769][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.769][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.769][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.769][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.770][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.770][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.770][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.770][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.770][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.770][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.770][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.770][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.771][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.771][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.771][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.771][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.771][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.771][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.771][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.771][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.772][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.773] [WAL_FLUSH] WAL #1 complete: S3=226ms, index=0ms, 157 batches +[06:50:13.773][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 314, done: None } +[06:50:13.773][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #314, starting flush +[06:50:13.773] [WAL_FLUSH] Flushing range 157..314 (157 batches, 3140 rows) to WAL #2 +[06:50:13.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 1900 batches in 277.524087ms +[06:50:13.795][PUT] put #1900 +[06:50:13.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.797][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.797][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.797][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.797][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 2000 batches in 291.531722ms +[06:50:13.809][PUT] put #2000 +[06:50:13.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.814][WAL_SIZE_TRIGGER] pending_bytes=125842408, threshold #12 crossed (120MB), triggering flush to batch #2041 +[06:50:13.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 2100 batches in 304.150407ms +[06:50:13.822][PUT] put #2100 +[06:50:13.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.834][WAL_SIZE_TRIGGER] pending_bytes=136328752, threshold #13 crossed (130MB), triggering flush to batch #2198 +[06:50:13.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 2200 batches in 316.870933ms +[06:50:13.835][PUT] put #2200 +[06:50:13.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 2300 batches in 329.425239ms +[06:50:13.847][PUT] put #2300 +[06:50:13.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.854][WAL_SIZE_TRIGGER] pending_bytes=146815096, threshold #14 crossed (140MB), triggering flush to batch #2355 +[06:50:13.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 2400 batches in 342.045055ms +[06:50:13.860][PUT] put #2400 +[06:50:13.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.863][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.863][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.863][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.863][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.863][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.863][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.863][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.863][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.864][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.864][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.864][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.864][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.864][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.864][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.864][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.864][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.865][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.865][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.865][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.865][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.865][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.865][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.865][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.865][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.866][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.866][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.866][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.866][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.866][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.866][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.866][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.866][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.867][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.867][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.867][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.867][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.867][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.867][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.867][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.868][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.868][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.868][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.868][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.868][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.868][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.868][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.868][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.869][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.869][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.869][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.869][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.869][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.869][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.869][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.869][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.870][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.870][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.870][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.870][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.870][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.870][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.870][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.870][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.871][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.871][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.871][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.871][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.871][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.871][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.871][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.871][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.872][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.872][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.872][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.872][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.872][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.872][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 2500 batches in 354.649438ms +[06:50:13.872][PUT] put #2500 +[06:50:13.872][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.872][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.873][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.873][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.873][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.873][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.873][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.873][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.873][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.873][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.874][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.874][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.874][WAL_SIZE_TRIGGER] pending_bytes=157301440, threshold #15 crossed (150MB), triggering flush to batch #2512 +[06:50:13.874][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.874][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.874][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.874][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.874][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.875][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.875][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.875][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.875][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.875][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.875][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.875][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.875][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.876][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.876][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.876][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.876][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.876][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.876][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.876][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.876][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.877][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.877][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.877][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.877][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.877][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.877][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.877][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.877][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.878][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.878][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.878][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.878][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.878][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.878][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.878][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.878][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.879][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.879][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.879][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.879][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.879][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.879][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.879][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.879][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.880][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.880][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.880][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.880][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.880][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.880][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.880][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.880][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.881][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.881][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.881][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.881][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.881][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.881][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.881][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.881][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.882][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.882][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.882][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.882][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.882][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.882][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.882][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.882][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.883][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.883][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.883][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.883][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.883][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.883][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.883][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.883][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.884][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.884][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.884][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.884][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.884][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.884][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.884][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.884][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.885][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.885][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.885][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 2600 batches in 367.300923ms +[06:50:13.885][PUT] put #2600 +[06:50:13.885][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.885][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.885][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.885][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.885][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.886][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.886][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.886][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.886][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.886][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.886][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.886][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.886][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.887][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.887][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.887][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.887][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.887][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.887][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.887][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.887][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.888][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.888][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.888][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.888][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.888][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.888][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.888][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.888][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.889][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.889][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.889][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.889][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.889][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.889][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.889][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.889][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.890][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.890][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.890][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.890][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.890][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.890][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.890][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.890][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.891][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.891][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.891][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.891][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.891][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.891][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.891][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.891][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.892][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.892][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.892][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.892][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.892][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.892][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.892][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.892][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.893][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.893][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.893][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.893][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.893][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.893][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.893][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.893][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.894][WAL_SIZE_TRIGGER] pending_bytes=167787784, threshold #16 crossed (160MB), triggering flush to batch #2669 +[06:50:13.894][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.894][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.894][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.894][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.894][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.894][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.894][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.895][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.895][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.895][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.895][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.895][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.895][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.895][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.895][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.896][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.896][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.896][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.896][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.896][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.896][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.896][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.896][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.897][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.897][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.897][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.897][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.897][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.897][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.897][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.897][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 2700 batches in 379.92433ms +[06:50:13.898][PUT] put #2700 +[06:50:13.898][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.898][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.898][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.898][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.898][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.898][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.898][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.898][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.899][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.899][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.899][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.899][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.899][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.899][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.899][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.899][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.900][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.900][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.900][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.900][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.900][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.900][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.900][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.900][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.901][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.901][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.901][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.901][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.901][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.901][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.901][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.901][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.902][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.902][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.902][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.902][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.902][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.902][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.902][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.902][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.903][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.903][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.903][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.903][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.903][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.903][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.903][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.903][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.904][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.904][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.904][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.904][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.904][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.904][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.904][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.904][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.905][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.905][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.905][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.905][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.905][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.905][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.905][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.905][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.906][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.906][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.906][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.906][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.906][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.906][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.906][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.906][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.907][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.907][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.907][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.907][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.907][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.907][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.907][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.907][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.908][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.908][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.908][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.908][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.908][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.908][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.908][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.908][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.909][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.909][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.909][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.909][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.909][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.909][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.909][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.909][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.910][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.910][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.910][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.910][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 2800 batches in 392.473609ms +[06:50:13.910][PUT] put #2800 +[06:50:13.910][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.910][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.910][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.911][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.911][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.911][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.911][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.911][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.911][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.911][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.911][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.912][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.912][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.912][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.912][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.912][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.912][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.912][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.912][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.913][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.913][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.913][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.913][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.913][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.913][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.913][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.913][WAL_SIZE_TRIGGER] pending_bytes=178274128, threshold #17 crossed (170MB), triggering flush to batch #2826 +[06:50:13.913][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.914][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.914][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.914][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.914][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.914][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.914][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.914][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.914][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.915][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.915][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.915][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.915][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.915][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.915][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.915][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.915][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.916][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.916][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.916][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.916][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.916][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.916][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.916][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.916][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.917][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.917][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.917][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.917][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.917][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.917][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.917][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.917][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.918][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.918][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.918][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.918][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.918][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.918][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.918][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.918][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.919][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.919][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.919][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.919][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.919][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.919][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.919][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.919][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.920][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.920][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.920][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.920][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.920][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.920][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.920][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.920][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.921][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.921][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.921][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.921][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.921][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.921][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.921][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.921][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.922][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.922][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.922][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.922][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.922][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.922][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.922][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.922][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.923][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 2900 batches in 405.129383ms +[06:50:13.923][PUT] put #2900 +[06:50:13.923][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.923][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.923][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.923][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.923][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.923][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.924][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.924][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.924][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.924][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.924][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.924][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.924][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.924][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.925][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.925][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.925][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.925][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.925][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.925][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.925][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.925][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.926][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.927] [WAL_FLUSH] WAL #2 complete: S3=145ms, index=0ms, 157 batches +[06:50:13.927][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 471, done: None } +[06:50:13.927][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #471, starting flush +[06:50:13.927] [WAL_FLUSH] Flushing range 314..471 (157 batches, 3140 rows) to WAL #3 +[06:50:13.941][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.941][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.941][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.941][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.942][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.943][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.943][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.943][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.943][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.943][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.943][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.943][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.943][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.944][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.944][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.945][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.945][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.945][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.945][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.945][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.946][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.946][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.946][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.946][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.946][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.947][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.947][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.947][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.947][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.947][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.947][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.947][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.947][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.948][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.948][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.948][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.948][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.948][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.948][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.948][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.948][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.949][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.949][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.949][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.949][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.949][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.949][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.949][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.949][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.950][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.950][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.950][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.950][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.950][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.950][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.950][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.950][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.951][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.951][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.951][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.951][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.951][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.951][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.951][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.951][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.952][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.952][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.952][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.952][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.952][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.952][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.952][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.952][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.953][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.953][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.953][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.953][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 3000 batches in 435.424106ms +[06:50:13.953][PUT] put #3000 +[06:50:13.953][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.953][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.953][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.953][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.954][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.954][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.954][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.954][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.954][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.954][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.954][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.954][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.955][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.955][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.955][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.955][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.955][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.955][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.955][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.955][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.956][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.956][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.956][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.956][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.956][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.956][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.956][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.956][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.957][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.957][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.957][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.957][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.957][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.957][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.957][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.957][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.958][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.958][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.958][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.958][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.958][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.958][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.958][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.958][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.959][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.959][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.959][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.959][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.959][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.959][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.959][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.959][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.960][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.960][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.960][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.960][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.960][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.960][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.960][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.960][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.961][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.961][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.961][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.961][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.961][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.961][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.961][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.961][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.962][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.962][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.962][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.962][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.962][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.962][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.962][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.962][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.963][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.963][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.963][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.963][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.963][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.963][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.963][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.963][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.964][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.964][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.964][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.964][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.964][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.964][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.964][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.964][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.965][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.965][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.965][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.965][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.965][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.965][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.965][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.965][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 3100 batches in 447.954381ms +[06:50:13.966][PUT] put #3100 +[06:50:13.966][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.966][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.966][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.966][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.966][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.966][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.966][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.966][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.967][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.967][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.967][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.967][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.967][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.967][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.967][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.968][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.968][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.968][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.968][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.968][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.968][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.968][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.968][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.969][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.969][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.969][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.969][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.969][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.969][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.969][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.969][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.970][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.970][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.970][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.970][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.970][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.970][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.970][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.970][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.971][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.971][WAL_SIZE_TRIGGER] pending_bytes=188766752, threshold #18 crossed (180MB), triggering flush to batch #3140 +[06:50:13.971][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.971][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.971][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.971][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.971][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.971][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.971][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.972][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.972][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.972][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.972][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.972][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.972][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.972][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.972][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.973][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.973][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.973][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.973][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.973][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.973][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.973][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.973][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.974][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.974][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.974][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.974][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.974][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.974][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.974][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.974][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.975][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.975][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.975][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.975][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.975][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.975][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.975][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.975][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.976][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.976][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.976][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.976][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.976][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.976][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.976][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.976][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.977][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.977][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.977][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.977][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.977][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.977][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.977][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.977][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.978][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.978][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.978][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.978][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.978][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 3200 batches in 460.535155ms +[06:50:13.978][PUT] put #3200 +[06:50:13.978][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.978][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.978][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.979][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.979][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.979][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.979][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.979][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.979][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.979][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.979][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.980][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.980][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.980][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.980][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.980][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.980][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.980][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.980][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.981][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.981][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.981][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.981][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.981][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.981][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.981][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.981][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.982][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.982][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.982][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.982][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.982][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.982][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.982][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.982][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.983][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.983][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.983][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.983][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.983][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.983][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.983][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.983][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.984][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.984][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.984][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.984][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.984][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.984][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.984][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.984][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.985][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.985][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.985][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.985][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.985][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.985][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.985][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.985][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.986][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.986][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.986][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.986][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.986][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.986][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.986][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.986][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.987][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.987][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.987][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.987][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.987][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.987][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.987][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.987][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.988][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.988][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.988][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.988][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.988][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.988][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.988][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.988][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.989][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.989][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.989][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.989][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.989][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.989][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.989][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.989][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.990][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.990][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.990][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.990][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.990][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.990][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.990][WAL_SIZE_TRIGGER] pending_bytes=199253096, threshold #19 crossed (190MB), triggering flush to batch #3297 +[06:50:13.990][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.990][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.991][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 3300 batches in 473.123997ms +[06:50:13.991][PUT] put #3300 +[06:50:13.991][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.991][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.991][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.991][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.991][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.991][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.992][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.992][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.992][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.992][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.992][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.992][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.992][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.992][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.993][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.993][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.993][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.993][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.993][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.993][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.993][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.993][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.994][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.994][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.994][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.994][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.994][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.994][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.994][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.994][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.995][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.995][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.995][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.995][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.995][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.995][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.995][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.995][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.996][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.996][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.996][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.996][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.996][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.996][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.996][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.996][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.997][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.997][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.997][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.997][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.997][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.997][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.997][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.997][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.998][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.998][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.998][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.998][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.998][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.998][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.998][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.998][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.999][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.999][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.999][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.999][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.999][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.999][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.999][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:13.999][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.000][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.000][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.000][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.000][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.000][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.000][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.000][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.000][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.001][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.001][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.001][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.001][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.001][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.001][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.001][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.001][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.002][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.002][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.002][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.002][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.002][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.002][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.002][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.002][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.003][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.003][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.003][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.003][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.003][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.003][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 3400 batches in 485.747521ms +[06:50:14.003][PUT] put #3400 +[06:50:14.003][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.004][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.004][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.004][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.004][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.004][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.004][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.004][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.004][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.005][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.005][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.005][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.005][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.005][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.005][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.005][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.005][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.006][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.006][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.006][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.006][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.006][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.006][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.006][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.006][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.007][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.007][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.007][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.007][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.007][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.007][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.007][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.007][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.008][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.008][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.008][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.008][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.008][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.008][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.008][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.008][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.009][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.009][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.009][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.009][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.009][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.009][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.009][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.009][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.010][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.010][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.010][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.010][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.010][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.010][WAL_SIZE_TRIGGER] pending_bytes=209739440, threshold #20 crossed (200MB), triggering flush to batch #3454 +[06:50:14.010][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.010][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.010][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.011][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.011][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.011][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.011][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.011][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.011][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.011][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.012][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.012][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.012][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.012][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.012][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.012][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.012][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.012][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.013][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.013][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.013][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.013][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.013][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.013][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.013][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.013][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.014][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.014][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.014][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.014][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.014][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.014][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.014][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.014][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.015][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.015][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.015][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.015][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.015][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.015][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.015][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.015][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.016][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.016][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.016][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.016][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 3500 batches in 498.417364ms +[06:50:14.016][PUT] put #3500 +[06:50:14.016][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.016][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.016][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.016][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.017][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.017][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.017][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.017][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.017][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.017][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.017][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.017][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.018][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.018][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.018][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.018][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.018][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.018][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.018][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.018][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.019][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.019][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.019][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.019][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.019][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.019][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.019][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.019][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.020][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.020][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.020][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.020][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.020][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.020][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.020][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.020][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.021][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.021][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.021][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.021][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.021][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.021][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.021][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.022][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.022][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.022][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.022][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.022][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.022][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.022][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.022][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.023][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.023][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.023][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.023][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.023][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.023][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.023][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.023][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.024][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.024][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.024][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.024][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.024][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.024][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.024][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.024][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.025][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.025][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.025][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.025][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.025][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.025][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.025][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.025][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.026][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.026][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.026][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.026][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.026][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.026][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.026][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.026][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.027][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.027][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.027][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.027][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.027][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.027][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.027][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.027][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.028][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.028][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.028][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.028][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.028][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.028][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.028][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.028][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.029][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 3600 batches in 511.050181ms +[06:50:14.029][PUT] put #3600 +[06:50:14.029][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.029][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.029][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.029][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.029][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.029][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.029][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.030][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.030][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.030][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.030][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.030][WAL_SIZE_TRIGGER] pending_bytes=220225784, threshold #21 crossed (210MB), triggering flush to batch #3611 +[06:50:14.030][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.030][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.030][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.031][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.031][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.031][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.031][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.031][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.031][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.031][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.031][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.032][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.032][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.032][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.032][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.032][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.032][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.032][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.032][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.033][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.033][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.033][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.033][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.033][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.033][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.033][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.033][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.034][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.034][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.034][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.034][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.034][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.034][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.034][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.034][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.035][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.035][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.035][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.035][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.035][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.035][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.035][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.035][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.036][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.036][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.036][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.036][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.036][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.036][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.036][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.036][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.037][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.037][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.037][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.037][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.037][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.037][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.037][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.037][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.038][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.038][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.038][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.038][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.038][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.038][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.038][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.038][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.039][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.039][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.039][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.039][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.039][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.039][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.039][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.039][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.040][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.040][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.040][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.040][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.040][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.040][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.040][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.040][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.041][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.041][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.041][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.041][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.041][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.041][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 3700 batches in 523.681856ms +[06:50:14.041][PUT] put #3700 +[06:50:14.041][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.041][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.042][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.042][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.042][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.042][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.042][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.042][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.042][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.042][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.043][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.043][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.043][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.043][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.043][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.043][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.043][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.043][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.044][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.044][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.044][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.044][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.044][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.044][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.044][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.044][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.045][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.045][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.045][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.045][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.045][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.045][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.045][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.045][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.046][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.046][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.046][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.046][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.046][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.046][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.046][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.046][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.047][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.047][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.047][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.047][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.047][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.047][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.047][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.047][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.048][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.048][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.048][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.048][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.048][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.048][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.048][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.049][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.049][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.049][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.049][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.049][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.049][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.049][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.049][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.050][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.050][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.050][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.050][WAL_SIZE_TRIGGER] pending_bytes=230712128, threshold #22 crossed (220MB), triggering flush to batch #3768 +[06:50:14.050][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.050][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.050][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.050][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.050][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.051][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.051][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.051][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.051][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.051][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.051][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.051][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.051][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.052][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.052][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.052][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.052][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.052][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.052][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.052][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.052][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.053][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.053][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.053][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.053][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.053][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.053][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.053][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.053][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.054][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.054][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.054][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 3800 batches in 536.321265ms +[06:50:14.054][PUT] put #3800 +[06:50:14.054][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.054][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.054][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.054][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.054][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.055][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.055][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.055][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.055][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.055][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.055][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.055][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.056][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.056][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.056][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.056][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.056][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.056][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.056][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.056][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.057][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.057][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.057][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.057][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.057][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.057][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.057][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.057][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.058][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.058][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.058][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.058][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.058][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.058][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.058][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.058][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.059][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.059][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.059][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.059][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.059][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.059][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.059][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.059][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.060][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.060][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.060][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.060][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.060][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.060][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.060][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.060][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.061][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.061][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.061][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.061][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.061][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.061][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.061][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.061][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.062][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.062][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.062][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.062][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.062][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.062][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.062][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.062][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.063][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.063][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.063][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.063] [WAL_FLUSH] WAL #3 complete: S3=129ms, index=0ms, 157 batches +[06:50:14.064][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 628, done: None } +[06:50:14.064][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #628, starting flush +[06:50:14.064] [WAL_FLUSH] Flushing range 471..628 (157 batches, 3140 rows) to WAL #4 +[06:50:14.077][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.077][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.077][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.077][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.078][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.078][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.078][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.079][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.079][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.079][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.079][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.080][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.080][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.080][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.080][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.080][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.080][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.080][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.081][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.081][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.081][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.081][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.081][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.081][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.081][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.082][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.082][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.082][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.082][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 3900 batches in 564.47102ms +[06:50:14.082][PUT] put #3900 +[06:50:14.082][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.082][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.082][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.083][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.083][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.083][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.083][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.083][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.083][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.083][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.083][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.084][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.084][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.084][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.084][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.084][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.084][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.084][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.084][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.085][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.085][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.085][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.085][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.085][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.085][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.085][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.085][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.086][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.086][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.086][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.086][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.086][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.086][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.086][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.086][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.087][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.087][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.087][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.087][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.087][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.087][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.087][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.087][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.088][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.088][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.088][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.088][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.088][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.088][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.088][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.088][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.089][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.089][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.089][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.089][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.089][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.089][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.089][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.089][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.090][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.090][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.090][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.090][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.090][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.090][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.090][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.090][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.091][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.091][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.091][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.091][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.091][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.091][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.091][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.092][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.092][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.092][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.092][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.092][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.092][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.092][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.092][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.093][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.093][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.093][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.093][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.093][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.093][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.093][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.093][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.094][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.094][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.094][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.094][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.094][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.094][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.094][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.094][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.095][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.095][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 4000 batches in 577.171503ms +[06:50:14.095][PUT] put #4000 +[06:50:14.095][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.095][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.095][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.095][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.095][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.095][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.096][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.096][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.096][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.096][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.096][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.096][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.096][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.096][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.097][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.097][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.097][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.097][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.097][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.097][DISPATCHER] Task 'memtable_flusher' received message: FlushMemTable { done: None } +[06:50:14.097][FLUSH_HANDLER] Received FlushMemTable: batches=4019, remaining=3981, pending_wal_bytes=236996856 +[06:50:14.097][MEMTABLE_FLUSH] Starting do_flush: 4019 batches, 236996856 pending WAL bytes +[06:50:14.097][FREEZE] Starting freeze_memtable +[06:50:14.097][FREEZE] WAL flush: pending_bytes=236996856, remaining_capacity=3981 +[06:50:14.344][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.344][WAL_TIME_TRIGGER] pending_bytes=237063648, interval elapsed, triggering flush to batch #4020 +[06:50:14.344] [WAL_FLUSH] WAL #4 complete: S3=275ms, index=0ms, 157 batches +[06:50:14.345][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 785, done: None } +[06:50:14.345][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #785, starting flush +[06:50:14.345] [WAL_FLUSH] Flushing range 628..785 (157 batches, 3140 rows) to WAL #6 +[06:50:14.359][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.360][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.361][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.364][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.365][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.367][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.368][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.368][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.368][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.368][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.368][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.368][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.368][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.369][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.369][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.369][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.369][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.370][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.370][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.370][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.370][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.370][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.371][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.371][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.371][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.371][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.372][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.372][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.372][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.373][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.374][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.374][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.375][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.375][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.375][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.375][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.375][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.375][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.375][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.375][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.376][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.376][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.376][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.377][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.377][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.377][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.377][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.377][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.377][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.377][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.378][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.378][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.378][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.378][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.379][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.379][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.379][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.379][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.379][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.379][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.380][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.380][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.380][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.380][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.380][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.383][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.384][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.384][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.384][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.384][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.384][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.384][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.385][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.387][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.387][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.387][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.387][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.387][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.387][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.388][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 4100 batches in 870.022008ms +[06:50:14.388][PUT] put #4100 +[06:50:14.388][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.388][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.388][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.388][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.388][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.388][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.388][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.389][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.390][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.390][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.390][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.391][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.391][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.391][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.391][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.391][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.391][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.391][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.391][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.392][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.392][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.392][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.392][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.392][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.392][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.392][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.392][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.392][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.393][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.393][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.393][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.393][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.393][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.393][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.393][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.393][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.394][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.394][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.394][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.394][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.394][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.394][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.394][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.394][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.395][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.395][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.395][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.395][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.395][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.395][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.395][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.395][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.396][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.396][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.396][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.396][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.396][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.396][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.396][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.396][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.397][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.397][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.397][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.397][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.397][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.397][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.397][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.397][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.398][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.398][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.398][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.398][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.398][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.398][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.398][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.398][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.399][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.399][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.399][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.399][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.399][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.399][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.399][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.399][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.400][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.400][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.400][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.400][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.400][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.400][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.400][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.400][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.401][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.401][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.401][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.401][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.401][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.401][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.401][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.401][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 4200 batches in 883.934647ms +[06:50:14.402][PUT] put #4200 +[06:50:14.402][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.402][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.402][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.402][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.402][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.402][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.402][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.402][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.403][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.403][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.403][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.403][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.403][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.403][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.403][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.403][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.404][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.404][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.404][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.404][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.404][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.404][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.404][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.404][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.405][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.405][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.405][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.405][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.405][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.405][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.405][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.405][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.406][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.406][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.406][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.406][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.406][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.406][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.406][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.406][WAL_SIZE_TRIGGER] pending_bytes=241211032, threshold #23 crossed (230MB), triggering flush to batch #4239 +[06:50:14.407][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.407][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.407][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.407][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.407][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.407][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.407][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.407][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.408][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.408][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.408][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.408][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.408][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.408][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.408][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.408][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.409][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.409][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.409][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.409][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.409][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.409][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.409][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.409][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.410][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.410][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.410][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.410][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.410][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.410][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.410][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.410][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.411][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.411][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.411][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.411][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.411][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.411][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.411][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.411][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.412][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.412][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.412][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.412][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.412][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.412][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.412][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.412][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.413][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.413][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.413][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.413][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.413][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.413][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.413][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.413][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.414][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.414][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.414][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.414][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.414][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 4300 batches in 896.530662ms +[06:50:14.414][PUT] put #4300 +[06:50:14.414][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.414][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.414][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.415][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.415][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.415][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.415][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.415][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.415][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.415][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.415][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.416][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.416][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.416][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.416][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.416][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.416][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.416][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.416][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.417][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.417][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.417][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.417][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.417][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.417][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.417][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.417][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.418][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.418][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.418][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.418][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.418][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.418][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.418][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.418][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.419][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.419][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.419][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.419][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.419][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.419][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.419][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.419][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.420][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.420][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.420][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.420][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.420][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.420][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.420][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.420][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.421][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.421][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.421][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.421][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.421][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.421][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.421][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.421][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.422][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.422][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.422][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.422][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.422][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.422][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.422][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.422][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.422][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.423][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.423][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.423][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.423][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.423][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.423][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.423][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.423][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.424][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.424][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.424][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.424][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.424][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.424][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.424][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.424][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.425][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.425][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.425][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.425][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.425][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.425][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.425][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.425][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.426][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.426][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.426][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.426][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.426][WAL_SIZE_TRIGGER] pending_bytes=251697376, threshold #24 crossed (240MB), triggering flush to batch #4396 +[06:50:14.426][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.426][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.426][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.427][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 4400 batches in 909.028424ms +[06:50:14.427][PUT] put #4400 +[06:50:14.427][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.427][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.427][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.427][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.427][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.427][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.427][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.428][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.428][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.428][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.428][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.428][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.428][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.428][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.428][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.429][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.429][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.429][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.429][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.429][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.429][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.429][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.429][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.430][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.430][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.430][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.430][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.430][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.430][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.430][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.430][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.431][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.431][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.431][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.431][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.431][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.431][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.431][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.431][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.432][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.432][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.432][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.432][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.432][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.432][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.432][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.432][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.433][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.433][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.434][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.434][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.434][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.434][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.434][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.434][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.435][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.435][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.435][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.435][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.435][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.435][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.435][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.435][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.436][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.436][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.436][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.436][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.436][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.436][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.436][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.436][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.437][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.437][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.437][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.437][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.437][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.437][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.437][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.437][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.438][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.438][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.438][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.438][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.438][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.438][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.438][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.438][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.439][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.439][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.439][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.439][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.439][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.439][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.439][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.439][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.440][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.440][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.440][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.440][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.440][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 4500 batches in 922.510022ms +[06:50:14.440][PUT] put #4500 +[06:50:14.440][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.440][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.440][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.441][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.441][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.441][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.441][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.441][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.441][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.441][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.441][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.442][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.442][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.442][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.442][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.442][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.442][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.442][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.442][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.443][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.443][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.443][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.443][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.443][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.443][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.443][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.443][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.444][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.444][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.444][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.444][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.444][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.444][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.444][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.444][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.444][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.445][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.445][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.445][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.445][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.445][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.445][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.445][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.445][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.446][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.446][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.446][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.446][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.446][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.446][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.446][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.446][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.447][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.447][WAL_SIZE_TRIGGER] pending_bytes=262183720, threshold #25 crossed (250MB), triggering flush to batch #4553 +[06:50:14.447][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.447][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.447][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.447][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.447][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.447][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.448][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.448][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.448][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.448][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.448][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.448][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.448][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.448][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.449][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.449][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.449][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.449][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.449][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.449][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.449][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.451][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.451][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.451][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.451][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.451][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.452][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.452][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.452][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.452][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.452][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.452][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.452][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.452][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.452][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.453][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.453][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.453][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.454][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.454][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.455][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.455][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.455][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.455][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.455][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.455][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.455][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 4600 batches in 937.769478ms +[06:50:14.455][PUT] put #4600 +[06:50:14.455][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.456][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.456][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.456][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.456][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.456][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.456][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.456][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.458][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.458][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.458][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.458][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.458][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.458][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.459][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.459][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.459][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.459][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.459][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.459][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.459][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.460][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.460][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.460][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.460][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.460][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.460][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.460][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.460][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.460][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.461][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.461][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.461][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.461][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.461][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.461][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.461][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.461][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.462][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.462][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.462][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.462][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.462][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.462][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.462][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.462][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.463][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.463][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.463][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.463][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.463][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.463][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.463][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.463][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.464][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.464][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.464][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.464][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.464][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.464][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.464][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.464][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.465][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.465][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.465][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.465][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.465][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.465][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.465][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.465][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.466][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.466][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.466][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.466][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.466][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.466][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.466][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.466][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.467][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.467][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.467][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.467][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.467][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.467][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.467][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.467][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.468][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.468][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.468][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.468][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.468][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.468][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.468][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.468][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.469][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.469][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.469][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.469][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.469][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.469][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 4700 batches in 951.666984ms +[06:50:14.469][PUT] put #4700 +[06:50:14.469][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.469][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.470][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.470][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.470][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.470][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.470][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.470][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.470][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.470][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.471][WAL_SIZE_TRIGGER] pending_bytes=272670064, threshold #26 crossed (260MB), triggering flush to batch #4710 +[06:50:14.471][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.471][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.471][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.471][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.471][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.471][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.471][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.472][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.472][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.472][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.472][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.472][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.472][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.472][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.472][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.472][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.473][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.473][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.473][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.473][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.473][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.473][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.473][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.473][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.474][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.474][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.474][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.474][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.474][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.474][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.474][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.474][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.475][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.475][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.475][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.475][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.475][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.475][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.475][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.475][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.476][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.476][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.476][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.476][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.476][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.476][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.476][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.476][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.477][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.477][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.477][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.477][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.477][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.477][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.477][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.477][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.478][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.478][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.478][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.478][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.478][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.478][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.478][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.478][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.479][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.479][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.479][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.479][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.479][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.479][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.479][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.479][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.479][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.480][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.480][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.480][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.480][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.480][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.480][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.480][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.480][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.481][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.481][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.481][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.481][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.481][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.481][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.481][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.481][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.482][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 4800 batches in 964.088567ms +[06:50:14.482][PUT] put #4800 +[06:50:14.482][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.482][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.482][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.482][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.482][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.482][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.483][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.483][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.483][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.483][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.483][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.483][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.483][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.483][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.483][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.484][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.484][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.484][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.484][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.484][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.484][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.484][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.484][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.485][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.485][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.485][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.485][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.485][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.485][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.485][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.485][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.486][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.486][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.486][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.486][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.486][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.486][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.486][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.486][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.487][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.487][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.487][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.487][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.487][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.487][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.487][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.487][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.487][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.488][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.488][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.488][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.488][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.488][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.488][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.488][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.488][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.489][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.489][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.489][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.489] [WAL_FLUSH] WAL #6 complete: S3=139ms, index=0ms, 157 batches +[06:50:14.490][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 942, done: None } +[06:50:14.490][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #942, starting flush +[06:50:14.490] [WAL_FLUSH] Flushing range 785..942 (157 batches, 3140 rows) to WAL #7 +[06:50:14.502][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.503][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.503][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.503][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.503][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.504][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.504][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.504][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.505][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.505][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.505][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.505][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.505][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.505][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.505][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.505][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.506][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.506][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.506][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.506][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.506][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.506][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.506][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.506][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.507][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.508][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.508][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.508][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.508][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.508][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.509][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.509][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.509][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.509][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.510][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.510][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.510][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.510][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.510][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.510][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.510][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 4900 batches in 992.956866ms +[06:50:14.511][PUT] put #4900 +[06:50:14.511][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.511][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.511][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.511][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.511][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.511][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.512][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.513][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.513][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.513][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.513][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.513][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.513][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.513][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.513][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.514][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.514][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.514][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.514][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.514][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.514][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.514][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.515][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.515][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.515][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.515][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.515][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.515][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.515][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.515][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.516][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.516][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.516][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.516][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.516][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.516][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.516][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.517][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.517][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.517][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.517][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.517][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.517][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.517][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.517][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.518][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.518][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.518][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.518][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.518][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.518][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.518][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.518][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.519][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.519][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.519][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.519][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.519][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.519][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.519][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.519][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.520][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.520][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.520][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.520][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.520][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.520][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.520][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.520][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.521][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.521][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.521][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.521][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.521][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.521][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.521][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.521][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.522][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.522][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.522][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.522][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.522][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.522][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.522][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.522][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.522][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.523][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.523][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.523][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.523][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.523][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.523][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.523][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.523][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.524][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.524][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.524][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.524][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.524][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.524][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 5000 batches in 1.006728702s +[06:50:14.524][PUT] put #5000 +[06:50:14.524][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.525][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.525][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.525][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.525][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.525][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.525][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.525][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.525][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.526][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.526][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.526][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.526][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.526][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.526][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.526][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.526][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.527][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.527][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.527][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.527][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.527][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.527][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.527][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.527][WAL_SIZE_TRIGGER] pending_bytes=283174976, threshold #27 crossed (270MB), triggering flush to batch #5024 +[06:50:14.527][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.528][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.528][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.528][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.528][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.528][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.530][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.530][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.530][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.530][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.530][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.530][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.530][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.531][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.531][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.531][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.531][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.531][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.531][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.531][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.531][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.532][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.532][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.532][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.532][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.532][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.532][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.532][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.534][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.534][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.534][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.534][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.534][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.534][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.535][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.535][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.535][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.535][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.535][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.535][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.535][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.535][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.536][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.536][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.536][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.536][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.537][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.538][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.538][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.538][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.538][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.538][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.538][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.538][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.538][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.539][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.539][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.539][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.539][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.539][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.539][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.539][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.539][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.539][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.540][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.540][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.540][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.540][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.540][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.540][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.540][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.540][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.541][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.541][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.541][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.541][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 5100 batches in 1.023479231s +[06:50:14.541][PUT] put #5100 +[06:50:14.541][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.541][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.541][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.542][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.542][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.542][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.542][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.542][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.542][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.542][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.542][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.543][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.543][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.543][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.543][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.543][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.543][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.543][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.543][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.543][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.544][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.544][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.544][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.544][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.544][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.544][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.544][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.544][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.545][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.545][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.545][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.545][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.545][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.545][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.545][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.545][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.546][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.546][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.546][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.546][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.546][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.546][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.546][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.546][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.547][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.547][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.547][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.547][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.547][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.547][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.547][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.547][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.548][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.548][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.548][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.548][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.548][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.548][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.548][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.548][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.549][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.549][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.549][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.549][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.549][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.549][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.549][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.549][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.550][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.550][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.550][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.550][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.550][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.550][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.550][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.550][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.551][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.551][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.551][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.551][WAL_SIZE_TRIGGER] pending_bytes=293607096, threshold #28 crossed (280MB), triggering flush to batch #5179 +[06:50:14.551][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.551][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.551][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.551][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.551][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.552][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.552][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.552][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.552][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.552][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.552][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.552][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.552][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 5200 batches in 1.035908508s +[06:50:14.554][PUT] put #5200 +[06:50:14.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.557][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.557][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.557][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.557][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.557][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.557][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.557][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.557][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.558][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.558][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.558][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.558][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.558][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.558][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.558][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.558][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.559][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.559][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.559][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.559][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.559][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.559][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.559][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.559][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.560][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.560][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.560][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.560][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.560][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.560][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.560][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.560][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.560][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.561][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.561][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.561][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.561][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.561][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.561][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.561][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.561][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.562][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.562][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.562][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.562][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.562][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.562][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.562][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.562][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 5300 batches in 1.048321646s +[06:50:14.566][PUT] put #5300 +[06:50:14.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.570][WAL_SIZE_TRIGGER] pending_bytes=304106520, threshold #29 crossed (290MB), triggering flush to batch #5335 +[06:50:14.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 5400 batches in 1.060853001s +[06:50:14.578][PUT] put #5400 +[06:50:14.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.590][WAL_SIZE_TRIGGER] pending_bytes=314605944, threshold #30 crossed (300MB), triggering flush to batch #5491 +[06:50:14.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 5500 batches in 1.0733889s +[06:50:14.591][PUT] put #5500 +[06:50:14.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.599][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.599][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.608][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.608][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.608][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.608][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.608][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.608] [WAL_FLUSH] WAL #7 complete: S3=113ms, index=0ms, 157 batches +[06:50:14.610][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 1099, done: None } +[06:50:14.610][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #1099, starting flush +[06:50:14.610] [WAL_FLUSH] Flushing range 942..1099 (157 batches, 3140 rows) to WAL #8 +[06:50:14.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 5600 batches in 1.105456908s +[06:50:14.623][PUT] put #5600 +[06:50:14.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 5700 batches in 1.12071355s +[06:50:14.638][PUT] put #5700 +[06:50:14.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.645][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.645][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.645][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.645][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.645][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.645][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.645][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.645][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 5800 batches in 1.133283194s +[06:50:14.651][PUT] put #5800 +[06:50:14.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.651][WAL_SIZE_TRIGGER] pending_bytes=325124728, threshold #31 crossed (310MB), triggering flush to batch #5803 +[06:50:14.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.659][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.659][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.659][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.659][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.659][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.659][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.659][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.659][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.660][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.660][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.660][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.660][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.660][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.660][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.660][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.660][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.661][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.661][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.661][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.661][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.661][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.661][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.661][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.661][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.662][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.662][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.662][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.662][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.662][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.662][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.662][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.662][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.663][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.663][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.663][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.663][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.663][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.663][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.663][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.663][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.664][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.664][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.664][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.664][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.664][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.664][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.664][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.664][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 5900 batches in 1.14690748s +[06:50:14.665][PUT] put #5900 +[06:50:14.665][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.665][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.665][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.665][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.665][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.665][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.665][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.665][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.666][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.666][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.666][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.666][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.666][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.666][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.666][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.666][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.667][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.667][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.667][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.667][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.669][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.669][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.669][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.669][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.669][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.669][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.669][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.670][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.670][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.670][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.670][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.670][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.670][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.670][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.670][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.671][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.671][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.671][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.673][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.673][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.673][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.673][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.673][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.673][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.673][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.673][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.674][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.674][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.674][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.674][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.674][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.674][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.674][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.674][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.675][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.675][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.677][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.677][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.677][WAL_SIZE_TRIGGER] pending_bytes=335556848, threshold #32 crossed (320MB), triggering flush to batch #5958 +[06:50:14.677][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.677][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.677][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.677][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.677][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.678][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.678][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.678][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.678][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.678][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.678][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.678][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.678][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.679][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.679][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.679][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.679][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.679][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.679][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.679][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.679][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.680][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.680][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.680][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.680][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.680][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.680][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.680][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.680][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.681][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.681][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.681][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.681][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.681][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.681][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.681][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.681][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.682][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.682][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.682][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.682][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.682][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 6000 batches in 1.164581132s +[06:50:14.682][PUT] put #6000 +[06:50:14.682][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.682][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.683][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.683][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.683][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.683][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.683][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.683][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.683][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.683][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.683][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.684][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.684][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.684][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.684][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.684][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.684][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.684][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.684][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.685][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.685][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.685][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.685][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.685][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.685][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.685][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.685][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.686][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.686][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.686][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.686][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.686][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.686][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.686][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.686][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.687][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.687][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.687][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.687][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.687][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.687][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.687][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.687][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.688][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.688][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.688][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.688][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.688][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.688][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.688][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.688][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.689][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.689][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.689][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.689][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.689][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.689][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.689][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.689][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.690][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.690][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.690][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.690][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.690][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.690][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.690][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.690][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.691][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.691][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.691][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.691][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.691][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.691][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.691][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.691][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.692][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.692][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.692][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.692][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.692][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.692][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.692][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.692][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.693][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.693][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.693][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.693][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.693][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.693][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.693][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.693][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.694][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.694][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.694][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.694][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.694][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.694][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.694][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.694][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.695][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 6100 batches in 1.17701578s +[06:50:14.695][PUT] put #6100 +[06:50:14.695][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.695][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.695][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.695][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.695][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.695][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.695][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.696][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.696][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.696][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.696][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.696][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.696][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.696][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.696][WAL_SIZE_TRIGGER] pending_bytes=346056272, threshold #33 crossed (330MB), triggering flush to batch #6114 +[06:50:14.696][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.697][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.697][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.697][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.697][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.697][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.697][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.697][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.697][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.698][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.698][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.698][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.698][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.698][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.698][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.698][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.699][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.699][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.699][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.699][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.699][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.699][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.699][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.699][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.699][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.700][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.700][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.700][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.700][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.700][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.700][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.700][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.700][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.701][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.701][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.701][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.701][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.701][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.701][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.701][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.701][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.702][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.702][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.702][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.702][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.702][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.702][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.702][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.702][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.703][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.703][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.703][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.703][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.703][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.703][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.703][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.703][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.704][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.704][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.704][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.704][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.704][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.704][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.704][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.704][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.705][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.705][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.705][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.705][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.705][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.705][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.705][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.705][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.706][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.706][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.706][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.706][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.706][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.706][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.706][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.706][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.707][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.707][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.707][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.707][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.707][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 6200 batches in 1.189541931s +[06:50:14.707][PUT] put #6200 +[06:50:14.707][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.707][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.707][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.708][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.708][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.708][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.708][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.708][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.708][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.708][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.708][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.709][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.709][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.709][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.709][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.709][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.709][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.709][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.709][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.710][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.710][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.710][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.710][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.710][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.710][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.710][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.710][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.711][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.711][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.711][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.711][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.711][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.711][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.711][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.711][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.712][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.712][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.712][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.712][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.712][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.712][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.712][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.712][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.713][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.713][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.713][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.713][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.713][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.713][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.713][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.713][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.714][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.714][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.714][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.714][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.714][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.714][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.714][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.714][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.715][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.715][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.715][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.715][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.715][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.715][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.715][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.715][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.716][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.716][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.716][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.716][WAL_SIZE_TRIGGER] pending_bytes=356555696, threshold #34 crossed (340MB), triggering flush to batch #6270 +[06:50:14.716][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.716][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.716][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.716][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.716][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.717][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.717][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.717][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.717][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.717][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.717][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.717][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.717][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.718][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.718][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.718][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.718][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.718][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.718][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.718][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.718][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.719][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.719][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.719][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.719][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.719][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.719][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.719][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.719][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.720][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 6300 batches in 1.202042693s +[06:50:14.720][PUT] put #6300 +[06:50:14.720][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.720][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.720][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.720][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.720][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.720][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.720][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.721][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.721][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.721][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.721][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.721][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.721][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.721][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.721][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.722][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.722][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.722][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.722][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.722][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.722][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.722][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.722][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.723][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.723][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.723][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.723][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.723][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.723][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.723][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.723][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.724][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.724][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.724][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.724][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.724][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.724][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.724][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.724][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.725][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.725][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.725][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.725][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.725][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.725][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.725][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.725][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.726][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.726][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.726][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.726][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.726][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.726][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.726][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.726][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.727][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.727][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.727][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.727][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.727][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.727][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.727][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.727][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.728][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.728][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.728][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.728][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.728][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.728][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.728][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.728][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.728][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.729][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.729][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.729][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.729][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.729][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.729][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.729][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.729][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.730][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.730][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.730][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.730][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.730][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.730][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.730][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.730][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.731][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.731][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.731][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.731][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.731][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.731][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.731][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.731][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.732][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.732][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.732][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.732][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 6400 batches in 1.214489547s +[06:50:14.732][PUT] put #6400 +[06:50:14.732][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.732][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.732][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.733][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.733][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.733][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.733][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.733][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.733][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.733][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.733][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.734][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.734][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.734][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.734][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.734][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.734][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.734][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.734][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.735][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.735][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.735][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.735][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.735][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.735][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.735][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.735][WAL_SIZE_TRIGGER] pending_bytes=367055120, threshold #35 crossed (350MB), triggering flush to batch #6426 +[06:50:14.735][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.736][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.736][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.736][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.736][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.736][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.736][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.736][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.736][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.737][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.737][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.737][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.737][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.737][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.737][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.737][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.737][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.738][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.738][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.738][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.738][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.738][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.738][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.738][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.738][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.739][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.739][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.739][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.739][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.739][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.739][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.739][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.739][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.740][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.740][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.740][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.740][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.740][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.740][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.740][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.740][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.741][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.741][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.741][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.741][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.741][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.741][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.741][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.741][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.742][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.742][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.742][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.742][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.742][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.742][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.742][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.742][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.743][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.743][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.743][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.743][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.743][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.743][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.743][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.743][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.744][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.744][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.744][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.744][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.744][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.744][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.744][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.744][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.745][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 6500 batches in 1.227028566s +[06:50:14.745][PUT] put #6500 +[06:50:14.745][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.745][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.745][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.745][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.745][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.745][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.745][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.746][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.748][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.748][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.748][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.748][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.748][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.748][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.748][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.748][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.749][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.749][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.749][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.749][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.749][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.749][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.749][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.749][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.750][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.751][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.751][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.752][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.752][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.752][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.752][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.752][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.752][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.752][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.752][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.753][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.753][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.753][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.753][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.753][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.753][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.753][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.753][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.754][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.755][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.755][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.755][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.756][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.756][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.756][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.756][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.756][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.756][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.756][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.756][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.756][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.757][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.757][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.757][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.757][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.757][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.757][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.757][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.757][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.758][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.758][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.758][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.758][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.758][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.758][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.758][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.758][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.759][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.759][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.759][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.759][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.759][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.759][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.759][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.759][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.760][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.760][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.760][WAL_SIZE_TRIGGER] pending_bytes=377554544, threshold #36 crossed (360MB), triggering flush to batch #6582 +[06:50:14.760][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.760][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.760][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.760][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.760][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.761][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.761][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.761][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.761][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.761][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.761][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.761][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.761][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.761][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.762][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.762][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.762][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.762][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 6600 batches in 1.244489913s +[06:50:14.762][PUT] put #6600 +[06:50:14.762][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.762][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.762][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.763][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.763][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.763][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.763][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.763][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.763][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.763][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.763][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.764][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.764][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.764][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.764][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.764][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.764][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.764][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.764][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.765][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.765][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.765][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.765][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.765][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.765][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.765][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.765][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.766][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.766][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.766][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.766][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.766][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.766][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.766][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.766][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.767][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.767][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.767][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.767][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.767][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.767][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.767][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.767][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.768][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.768][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.768][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.768][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.768][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.768][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.768][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.768][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.769][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.769][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.769][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.769][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.769][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.769][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.769][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.769][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.770][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.770][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.770][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.770][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.770][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.770][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.770][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.770][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.771][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.771][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.771][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.771][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.771][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.771][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.771][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.771][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.772][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.772][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.772][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.772][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.772][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.772][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.772][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.772][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.773][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.773][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.773][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.773][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.773][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.773][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.773][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.773][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.773][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.774][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.774][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.774][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.774][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.774][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.774][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.774][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.774][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 6700 batches in 1.257003078s +[06:50:14.775][PUT] put #6700 +[06:50:14.775][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.775][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.775][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.775][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.775][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.775][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.775][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.776][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.776][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.776][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.776][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.776][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.776][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.776][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.776][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.776][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.777][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.777][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.777][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.777][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.777][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.777][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.777][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.778][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.778][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.778][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.778][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.778][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.778][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.778][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.778][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.779][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.779][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.779][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.779][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.779][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.779][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.779][WAL_SIZE_TRIGGER] pending_bytes=387986664, threshold #37 crossed (370MB), triggering flush to batch #6737 +[06:50:14.779][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.779][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.780][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.780][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.780][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.780][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.780][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.780][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.780][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.780][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.781][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.781][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.781][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.781][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.781][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.781][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.781][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.781][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.782][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.782][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.782][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.782][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.782][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.782][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.782][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.782][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.783][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.783][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.783][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.783][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.783][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.783][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.783][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.783][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.784][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.784][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.784][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.784][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.784][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.784] [WAL_FLUSH] WAL #8 complete: S3=169ms, index=0ms, 157 batches +[06:50:14.785][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 1256, done: None } +[06:50:14.785][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #1256, starting flush +[06:50:14.785] [WAL_FLUSH] Flushing range 1099..1256 (157 batches, 3140 rows) to WAL #9 +[06:50:14.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 6800 batches in 1.287453474s +[06:50:14.805][PUT] put #6800 +[06:50:14.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 6900 batches in 1.303259449s +[06:50:14.821][PUT] put #6900 +[06:50:14.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 7000 batches in 1.317262062s +[06:50:14.835][PUT] put #7000 +[06:50:14.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.841][WAL_SIZE_TRIGGER] pending_bytes=398505448, threshold #38 crossed (380MB), triggering flush to batch #7049 +[06:50:14.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 7100 batches in 1.329892724s +[06:50:14.848][PUT] put #7100 +[06:50:14.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 7200 batches in 1.342380602s +[06:50:14.860][PUT] put #7200 +[06:50:14.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:14.860][BP_TRIGGER] iter=0 batch_store_nearly_full: remaining=799/8000 (<10%), triggering flush and waiting +[06:50:14.860][TRIGGER] Sending FlushMemTable message and waiting for completion +[06:50:14.940] [WAL_FLUSH] WAL #9 complete: S3=149ms, index=0ms, 157 batches +[06:50:14.940][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 1413, done: None } +[06:50:14.940][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #1413, starting flush +[06:50:14.940] [WAL_FLUSH] Flushing range 1256..1413 (157 batches, 3140 rows) to WAL #10 +[06:50:15.086] [WAL_FLUSH] WAL #10 complete: S3=140ms, index=0ms, 157 batches +[06:50:15.086][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 1570, done: None } +[06:50:15.086][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #1570, starting flush +[06:50:15.086] [WAL_FLUSH] Flushing range 1413..1570 (157 batches, 3140 rows) to WAL #11 +[06:50:15.198] [WAL_FLUSH] WAL #11 complete: S3=106ms, index=0ms, 157 batches +[06:50:15.198][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 1727, done: None } +[06:50:15.198][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #1727, starting flush +[06:50:15.198] [WAL_FLUSH] Flushing range 1570..1727 (157 batches, 3140 rows) to WAL #12 +[06:50:15.331] [WAL_FLUSH] WAL #12 complete: S3=127ms, index=0ms, 157 batches +[06:50:15.332][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 2041, done: None } +[06:50:15.332][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #2041, starting flush +[06:50:15.332] [WAL_FLUSH] Flushing range 1727..2041 (314 batches, 6280 rows) to WAL #13 +[06:50:15.654] [WAL_FLUSH] WAL #13 complete: S3=307ms, index=0ms, 314 batches +[06:50:15.656][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 2198, done: None } +[06:50:15.656][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #2198, starting flush +[06:50:15.656] [WAL_FLUSH] Flushing range 2041..2198 (157 batches, 3140 rows) to WAL #14 +[06:50:15.762][FREEZE] WAL S3 flush took 1664ms +[06:50:15.768][FREEZE] Swapping memtable: old had 7201 batches +[06:50:15.769][FREEZE] Complete: gen=1 imm_queue=1 new_capacity=8000 took=1671ms +[06:50:15.769][MEMTABLE_FLUSH] freeze_memtable took 1672ms +[06:50:15.769][LANCE_FLUSH] Starting flush_oldest_immutable +[06:50:15.769][LANCE_FLUSH] Flushing memtable with 144020 rows, 7201 batches +[06:50:15.769] [FLUSHER] flush() called: 144020 rows, 7201 batches +[06:50:15.800] [WAL_FLUSH] WAL #14 complete: S3=138ms, index=0ms, 157 batches +[06:50:15.800][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 2355, done: None } +[06:50:15.800][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #2355, starting flush +[06:50:15.800][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 2512, done: None } +[06:50:15.800][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #2512, starting flush +[06:50:15.800][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 2669, done: None } +[06:50:15.800][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #2669, starting flush +[06:50:15.800][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 2826, done: None } +[06:50:15.801][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #2826, starting flush +[06:50:15.801][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 3140, done: None } +[06:50:15.801][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #3140, starting flush +[06:50:15.801][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 3297, done: None } +[06:50:15.801][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #3297, starting flush +[06:50:15.801][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 3454, done: None } +[06:50:15.801][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #3454, starting flush +[06:50:15.801][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 3611, done: None } +[06:50:15.801][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #3611, starting flush +[06:50:15.801][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 3768, done: None } +[06:50:15.801][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #3768, starting flush +[06:50:15.801][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 4020, done: None } +[06:50:15.801][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #4020, starting flush +[06:50:15.801][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 4239, done: None } +[06:50:15.801][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #4239, starting flush +[06:50:15.801][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 4396, done: None } +[06:50:15.802][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #4396, starting flush +[06:50:15.802][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 4553, done: None } +[06:50:15.802][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #4553, starting flush +[06:50:15.802][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 4710, done: None } +[06:50:15.802][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #4710, starting flush +[06:50:15.802][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 5024, done: None } +[06:50:15.802][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #5024, starting flush +[06:50:15.802][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 5179, done: None } +[06:50:15.802][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #5179, starting flush +[06:50:15.802][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 5335, done: None } +[06:50:15.802][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #5335, starting flush +[06:50:15.802][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 5491, done: None } +[06:50:15.802][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #5491, starting flush +[06:50:15.802][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 5803, done: None } +[06:50:15.803][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #5803, starting flush +[06:50:15.803][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 5958, done: None } +[06:50:15.803][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #5958, starting flush +[06:50:15.803][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 6114, done: None } +[06:50:15.803][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #6114, starting flush +[06:50:15.803][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 6270, done: None } +[06:50:15.803][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #6270, starting flush +[06:50:15.803][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 6426, done: None } +[06:50:15.803][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #6426, starting flush +[06:50:15.803][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 6582, done: None } +[06:50:15.803][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #6582, starting flush +[06:50:15.803][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 6737, done: None } +[06:50:15.804][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #6737, starting flush +[06:50:15.804][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 7049, done: None } +[06:50:15.804][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #7049, starting flush +[06:50:15.859][DISPATCHER] Task 'memtable_flusher' received message: FlushMemTable { done: Some(Sender { inner: Some(Inner { state: State { is_complete: false, is_closed: false, is_rx_task_set: true, is_tx_task_set: false } }) }) } +[06:50:15.859][FLUSH_HANDLER] Received FlushMemTable: batches=0, remaining=8000, pending_wal_bytes=18446744073699071552 +[06:50:15.859][MEMTABLE_FLUSH] Starting do_flush: 0 batches, 18446744073699071552 pending WAL bytes +[06:50:15.859][FREEZE] Starting freeze_memtable +[06:50:15.859][FREEZE] WAL flush: pending_bytes=18446744073699071552, remaining_capacity=8000 +[06:50:15.859][FREEZE] WAL S3 flush took 0ms +[06:50:15.859][FREEZE] Swapping memtable: old had 0 batches +[06:50:15.861][FREEZE] Complete: gen=2 imm_queue=1 new_capacity=8000 took=1ms +[06:50:15.861][MEMTABLE_FLUSH] freeze_memtable took 1ms +[06:50:15.861][LANCE_FLUSH] Starting flush_oldest_immutable +[06:50:15.861][LANCE_FLUSH] Flushing memtable with 0 rows, 0 batches +[06:50:15.861] [FLUSHER] flush() called: 0 rows, 0 batches +[06:50:15.935][TRIGGER] Flush failed: Invalid user input: Cannot flush empty MemTable, rust/lance/src/dataset/mem_wal/write/flush.rs:147:17 +[06:50:15.935][BP_TRIGGER] flush complete after 1074ms, new remaining=8000 +[06:50:15.935][BP] waited 1074ms | remaining_batches=8000 total_batches=8000 +[06:50:15.935][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.935][WAL_TIME_TRIGGER] pending_bytes=67304, interval elapsed, triggering flush to batch #1 +[06:50:15.935][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 1, done: None } +[06:50:15.935][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #1, starting flush +[06:50:15.935] [WAL_FLUSH] Flushing range 0..1 (1 batches, 20 rows) to WAL #41 +[06:50:15.936][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.936][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.936][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.937][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.937][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.937][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.937][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.937][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.937][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.937][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.937][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.938][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.938][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.938][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.938][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.938][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.938][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.938][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.938][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.939][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.939][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.939][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.939][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.939][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.939][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.939][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.939][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.940][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.940][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.940][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.940][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.940][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.940][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.940][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.940][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.941][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.941][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.941][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.941][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.941][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.941][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.941][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.941][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.942][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.942][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.942][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.942][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.942][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.942][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.942][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.942][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.943][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.943][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.943][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.943][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.943][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.943][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.943][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.943][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.943][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.944][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.944][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.944][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.944][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.944][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.944][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.944][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.944][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.945][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.945][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.945][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.945][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.945][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.945][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.945][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.945][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.946][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.946][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.946][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.946][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.946][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.946][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.946][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.946][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.947][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.947][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.947][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.947][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.947][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.947][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.947][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.947][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.948][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.948][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.948][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.948][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.948][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.948][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 7300 batches in 2.430651782s +[06:50:15.948][PUT] put #7300 +[06:50:15.948][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.948][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.949][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.949][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.949][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.949][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.949][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.949][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.949][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.949][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.950][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.950][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.950][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.950][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.950][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.950][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.950][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.950][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.951][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.951][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.951][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.951][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.951][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.951][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.951][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.951][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.952][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.952][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.952][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.952][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.952][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.952][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.952][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.952][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.953][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.953][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.953][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.953][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.953][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.953][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.953][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.953][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.954][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.954][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.954][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.954][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.954][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.954][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.954][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.954][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.955][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.955][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.955][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.955][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.955][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.955][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.955][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.955][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.956][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.956][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.956][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.956][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.956][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.956][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.956][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.956][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.957][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.957][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.957][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.957][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.957][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.957][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.957][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.957][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.957][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.958][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.958][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.958][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.958][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.958][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.958][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.958][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.958][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.959][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.959][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.959][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.959][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.959][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.959][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.959][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.959][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.960][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.960][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.960][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.960][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.960][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.960][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.960][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.960][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.961][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 7400 batches in 2.443082094s +[06:50:15.961][PUT] put #7400 +[06:50:15.961][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.961][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.961][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.961][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.961][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.961][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.961][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.962][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.962][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.962][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.962][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.962][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.962][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.962][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.962][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.963][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.963][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.963][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.963][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.963][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.963][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.963][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.963][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.964][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.964][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.964][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.964][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.964][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.964][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.965] [WAL_FLUSH] WAL #41 complete: S3=29ms, index=0ms, 1 batches +[06:50:15.965][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.965][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.965][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.965][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.965][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.965][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.966][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.966][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.966][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.966][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.966][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.966][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.966][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.966][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.967][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.967][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.967][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.967][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.967][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.967][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.967][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.967][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.968][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.968][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.968][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.968][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.968][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.968][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.968][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.968][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.969][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.969][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.969][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.969][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.969][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.969][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.969][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.969][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.970][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.970][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.970][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.970][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.970][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.970][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.970][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.970][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.971][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.971][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.971][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.971][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.971][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.971][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.971][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.971][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.972][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.972][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.972][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.972][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.972][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.972][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.972][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.972][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.973][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.973][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.973][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.973][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.973][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.973][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.973][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.973][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.974][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 7500 batches in 2.456023913s +[06:50:15.974][PUT] put #7500 +[06:50:15.974][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.974][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.974][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.974][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.974][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.974][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.974][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.975][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.975][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.975][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.975][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.975][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.975][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.975][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.975][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.976][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.976][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.976][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.976][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.976][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.976][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.976][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.976][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.977][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.977][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.977][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.977][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.977][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.977][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.977][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.977][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.978][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.978][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.978][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.978][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.978][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.978][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.978][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.978][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.979][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.979][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.979][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.979][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.979][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.979][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.979][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.979][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.980][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.980][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.980][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.980][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.980][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.980][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.980][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.980][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.981][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.981][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.981][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.981][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.981][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.981][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.981][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.981][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.982][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.982][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.982][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.982][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.982][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.982][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.982][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.982][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.982][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.983][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.983][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.983][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.983][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.983][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.983][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.983][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.984][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.984][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.984][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.984][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.984][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.984][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.984][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.984][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.985][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.985][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.985][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.985][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.985][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.985][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.985][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.985][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.986][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.986][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.986][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.986][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.986][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 7600 batches in 2.468498819s +[06:50:15.986][PUT] put #7600 +[06:50:15.986][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.986][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.986][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.987][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.987][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.987][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.987][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.987][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.987][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.987][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.987][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.988][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.988][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.988][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.988][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.988][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.988][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.988][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.988][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.989][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.989][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.989][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.989][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.989][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.989][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.989][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.989][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.990][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.990][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.990][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.990][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.990][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.990][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.990][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.990][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.990][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.991][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.991][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.991][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.991][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.991][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.991][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.991][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.991][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.992][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.992][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.992][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.992][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.992][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.992][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.992][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.992][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.993][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.993][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.993][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.993][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.993][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.993][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.993][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.993][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.994][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.994][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.994][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.994][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.994][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.994][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.994][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.994][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.995][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.995][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.995][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.995][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.995][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.995][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.995][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.995][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.996][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.996][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.996][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.996][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.996][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.996][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.996][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.996][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.997][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.997][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.997][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.997][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.997][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.997][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.997][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.997][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.998][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.998][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.998][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.998][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.998][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.998][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.998][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.998][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 7700 batches in 2.480885691s +[06:50:15.999][PUT] put #7700 +[06:50:15.999][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.999][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.999][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.999][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.999][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.999][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.999][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:15.999][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.000][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.000][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.000][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.000][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.000][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.000][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.000][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.000][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.001][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.001][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.001][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.001][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.001][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.001][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.001][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.001][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.002][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.002][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.002][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.002][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.002][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.002][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.002][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.002][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.003][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.003][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.003][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.003][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.003][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.003][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.003][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.003][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.004][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.004][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.004][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.004][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.004][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.004][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.004][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.004][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.005][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.005][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.005][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.005][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.005][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.005][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.005][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.005][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.006][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.006][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.006][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.006][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.006][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.006][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.006][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.006][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.007][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.007][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.007][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.007][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.007][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.007][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.007][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.007][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.008][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.008][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.008][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.008][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.008][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.008][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.008][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.008][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.009][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.009][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.009][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.009][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.009][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.009][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.009][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.009][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.010][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.010][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.010][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.010][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.010][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.010][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.010][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.010][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.011][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.011][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.011][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.011][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 7800 batches in 2.493414282s +[06:50:16.011][PUT] put #7800 +[06:50:16.011][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.011][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.011][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.011][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.012][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.012][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.012][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.012][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.012][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.012][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.012][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.012][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.013][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.013][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.013][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.013][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.013][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.013][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.013][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.013][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.014][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.014][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.014][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.014][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.014][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.014][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.014][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.014][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.015][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.015][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.015][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.015][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.015][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.015][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.015][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.015][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.016][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.016][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.016][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.016][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.016][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.016][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.016][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.016][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.017][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.017][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.017][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.017][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.017][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.017][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.017][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.017][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.017][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.018][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.018][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.018][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.018][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.018][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.018][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.018][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.018][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.019][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.019][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.019][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.019][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.019][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.019][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.019][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.019][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.020][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.020][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.020][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.020][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.020][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.020][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.020][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.020][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.021][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.021][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.021][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.021][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.021][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.021][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.021][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.021][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.022][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.022][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.022][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.022][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.022][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.022][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.022][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.022][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.023][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.023][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.023][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.023][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.023][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.023][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.023][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 7900 batches in 2.505830747s +[06:50:16.023][PUT] put #7900 +[06:50:16.024][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.024][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.024][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.024][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.024][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.024][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.024][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.024][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.024][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.025][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.025][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.025][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.025][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.025][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.025][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.025][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.025][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.026][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.026][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.026][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.026][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.026][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.026][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.026][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.026][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.027][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.027][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.027][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.027][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.027][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.027][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.027][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.027][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.028][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.028][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.028][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.028][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.028][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.028][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.028][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.028][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.029][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.029][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.029][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.029][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.029][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.029][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.029][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.029][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.030][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.030][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.030][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.030][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.030][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.030][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.030][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.030][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.031][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.031][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.031][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.031][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.031][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.031][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.031][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.031][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.032][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.032][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.032][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.032][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.032][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.032][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.032][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.032][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.033][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.033][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.033][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.033][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.033][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.033][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.033][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.033][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.034][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.034][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.034][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.034][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.034][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.034][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.034][WAL_TIME_TRIGGER] pending_bytes=52833680, interval elapsed, triggering flush to batch #786 +[06:50:16.034][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 786, done: None } +[06:50:16.034][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #786, starting flush +[06:50:16.035] [WAL_FLUSH] Flushing range 1..786 (785 batches, 15700 rows) to WAL #42 +[06:50:16.090][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.090][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.090][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.091][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.091][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.091][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.091][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.091][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.092][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.092][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.092][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.092][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.092][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 8000 batches in 2.57469442s +[06:50:16.092][PUT] put #8000 +[06:50:16.093][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.093][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.093][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.093][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.093][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.093][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.094][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.094][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.094][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.094][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.094][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.094][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.094][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.095][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.095][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.095][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.095][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.095][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.095][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.095][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.096][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.096][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.096][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.096][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.096][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.097][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.097][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.097][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.097][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.097][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.097][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.098][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.098][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.098][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.098][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.098][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.099][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.099][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.099][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.099][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.099][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.099][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.099][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.099][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.100][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.100][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.100][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.100][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.100][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.100][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.101][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.101][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.101][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.101][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.101][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.102][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.102][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.102][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.102][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.102][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.102][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.102][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.102][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.103][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.103][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.103][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.103][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.103][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.104][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.104][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.104][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.104][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.104][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.104][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.104][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.105][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.105][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.105][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.105][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.105][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.105][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.105][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.106][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.106][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.106][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.106][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.107][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.107][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.107][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.107][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.107][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.107][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.107][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.107][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.108][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.108][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.108][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.108][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.109][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.109][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 8100 batches in 2.59118599s +[06:50:16.109][PUT] put #8100 +[06:50:16.109][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.109][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.109][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.109][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.109][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.109][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.110][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.110][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.110][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.110][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.111][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.111][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.111][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.111][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.111][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.111][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.111][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.112][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.112][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.112][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.112][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.112][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.112][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.113][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.113][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.113][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.113][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.113][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.113][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.114][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.114][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.114][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.114][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.114][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.114][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.115][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.115][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.115][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.115][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.115][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.115][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.115][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.115][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.116][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.116][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.116][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.116][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.116][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.116][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.116][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.116][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.117][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.117][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.117][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.117][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.117][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.117][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.117][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.117][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.118][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.118][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.118][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.118][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.118][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.118][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.118][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.118][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.119][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.119][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.119][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.119][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.119][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.119][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.119][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.119][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.120][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.120][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.120][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.120][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.120][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.120][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.120][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.120][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.121][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.121][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.121][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.121][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.121][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.121][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.121][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.121][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.122][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.122][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.122][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.122][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.122][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.122][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.122][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.122][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.123][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 8200 batches in 2.605047672s +[06:50:16.123][PUT] put #8200 +[06:50:16.123][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.123][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.123][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.123][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.123][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.123][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.123][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.124][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.124][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.124][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.124][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.124][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.124][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.124][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.124][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.125][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.125][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.125][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.125][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.125][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.125][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.126][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.127][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.127][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.127][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.127][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.127][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.127][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.127][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.127][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.128][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.128][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.128][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.128][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.129][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.129][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.129][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.129][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.129][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.129][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.129][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.129][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.130][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.130][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.130][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.130][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.130][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.130][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.130][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.130][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.131][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.131][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.131][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.131][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.131][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.132][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.132][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.132][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.132][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.132][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.133][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.133][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.133][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.133][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.133][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.133][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.133][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.133][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.133][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.134][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.134][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.134][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.134][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.135][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.135][WAL_TIME_TRIGGER] pending_bytes=72149928, interval elapsed, triggering flush to batch #1073 +[06:50:16.135][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.135][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.135][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.135][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.135][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.135][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.135][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.136][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.136][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.136][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.136][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.137][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.137][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.137][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.137][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.137][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.138][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.138][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.138][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.138][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.138][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.138][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.139][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.139][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.139][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.140][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 8300 batches in 2.622070361s +[06:50:16.140][PUT] put #8300 +[06:50:16.140][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.140][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.140][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.140][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.140][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.140][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.140][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.141][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.141][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.141][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.141][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.142][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.142][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.142][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.142][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.142][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.143][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.143][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.143][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.143][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.143][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.143][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.143][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.143][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.144][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.145][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.145][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.145][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.145][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.145][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.145][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.145][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.145][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.146][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.146][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.146][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.146][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.146][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.146][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.146][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.146][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.147][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.147][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.147][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.147][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.147][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.147][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.147][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.147][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.148][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.148][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.148][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.148][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.148][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.148][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.148][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.148][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.149][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.149][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.149][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.149][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.149][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.149][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.149][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.149][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.150][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.150][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.150][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.150][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.150][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.150][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.150][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.150][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.151][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.151][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.151][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.151][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.151][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.151][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.151][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.151][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.152][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.152][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.152][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.152][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.152][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.152][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.152][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.152][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.153][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.153][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.153][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.153][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.153][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.153][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.153][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.153][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.154][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.154][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.154][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 8400 batches in 2.636263926s +[06:50:16.154][PUT] put #8400 +[06:50:16.154][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.154][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.154][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.154][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.154][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.155][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.155][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.155][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.155][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.155][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.155][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.155][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.155][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.156][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.156][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.156][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.156][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.156][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.156][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.156][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.156][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.157][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.157][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.157][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.157][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.157][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.157][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.157][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.157][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.158][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.158][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.158][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.158][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.158][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.158][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.158][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.158][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.159][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.159][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.159][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.159][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.159][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.159][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.159][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.159][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.160][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.160][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.160][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.160][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.160][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.160][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.160][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.160][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.160][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.161][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.161][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.161][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.161][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.161][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.161][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.161][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.161][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.162][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.162][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.162][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.162][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.162][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.162][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.162][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.162][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.163][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.163][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.163][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.163][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.163][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.163][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.163][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.163][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.164][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.164][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.164][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.164][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.164][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.164][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.164][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.164][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.165][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.165][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.165][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.165][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.165][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.165][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.165][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.165][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.166][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.166][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.166][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.166][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.166][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.166][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 8500 batches in 2.648737251s +[06:50:16.166][PUT] put #8500 +[06:50:16.166][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.167][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.167][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.167][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.167][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.167][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.167][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.167][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.167][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.168][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.168][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.168][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.168][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.168][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.168][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.168][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.168][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.168][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.169][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.169][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.169][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.169][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.169][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.169][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.169][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.169][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.170][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.170][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.170][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.170][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.170][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.170][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.170][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.170][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.171][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.171][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.171][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.171][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.171][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.171][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.171][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.171][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.172][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.172][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.172][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.172][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.172][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.172][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.172][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.172][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.173][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.173][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.173][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.173][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.173][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.173][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.173][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.173][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.174][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.174][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.174][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.174][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.174][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.174][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.174][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.174][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.175][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.175][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.175][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.175][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.175][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.175][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.175][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.175][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.176][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.176][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.176][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.176][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.176][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.176][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.176][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.176][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.177][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.177][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.177][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.177][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.177][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.177][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.177][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.177][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.178][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.178][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.178][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.178][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.178][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.178][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.178][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.178][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.179][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.179][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 8600 batches in 2.66115681s +[06:50:16.179][PUT] put #8600 +[06:50:16.179][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.179][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.179][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.179][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.179][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.179][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.180][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.180][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.180][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.180][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.180][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.180][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.180][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.180][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.181][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.181][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.181][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.181][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.181][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.181][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.181][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.181][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.182][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.182][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.182][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.182][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.182][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.182][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.182][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.182][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.183][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.183][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.183][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.183][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.183][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.183][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.183][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.183][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.184][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.184][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.184][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.184][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.184][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.184][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.184][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.184][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.185][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.185][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.185][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.185][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.185][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.185][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.185][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.185][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.186][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.186][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.186][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.186][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.186][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.186][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.186][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.186][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.187][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.187][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.187][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.187][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.187][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.187][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.187][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.187][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.188][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.188][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.188][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.188][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.188][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.188][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.188][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.188][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.189][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.189][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.189][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.189][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.189][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.189][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.189][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.191][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.191][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.191][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.191][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.191][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.191][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.191][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.191][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.192][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.192][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.192][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.192][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.192][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.192][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.192][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 8700 batches in 2.674843632s +[06:50:16.192][PUT] put #8700 +[06:50:16.193][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.193][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.193][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.193][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.193][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.193][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.193][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.193][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.194][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.194][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.194][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.194][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.194][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.194][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.194][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.194][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.195][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.195][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.195][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.195][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.195][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.195][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.195][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.195][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.196][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.196][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.196][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.196][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.196][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.196][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.196][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.196][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.197][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.197][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.197][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.197][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.197][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.197][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.197][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.197][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.198][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.198][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.198][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.198][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.198][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.198][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.198][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.198][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.199][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.199][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.199][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.199][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.199][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.199][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.199][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.199][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.200][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.200][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.200][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.200][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.200][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.200][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.200][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.200][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.201][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.201][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.201][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.201][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.201][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.201][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.201][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.201][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.202][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.202][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.202][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.202][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.202][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.202][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.202][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.202][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.203][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.203][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.203][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.203][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.203][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.203][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.203][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.203][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.204][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.204][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.204][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.204][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.204][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.204][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.204][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.204][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.205][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.205][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.205][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.205][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 8800 batches in 2.687344316s +[06:50:16.205][PUT] put #8800 +[06:50:16.205][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.205][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.205][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.207][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.207][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.207][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.207][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.207][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.207][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.207][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.207][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.208][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.208][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.208][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.208][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.208][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.208][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.209][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.210][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.210][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.210][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.210][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.210][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.210][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.210][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.210][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.210][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.211][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.211][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.211][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.211][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.211][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.211][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.211][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.211][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.212][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.212][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.213][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.213][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.213][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.213][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.213][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.213][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.213][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.213][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.214][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.214][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.214][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.214][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.214][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.214][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.214][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.214][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.214][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.215][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.216][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.216][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.216][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.216][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.216][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.217][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.217][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.217][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.217][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.217][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.217][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.217][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.217][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.218][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.218][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.218][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.218][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.218][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.218][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.218][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.218][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.219][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.219][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.219][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.219][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.219][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.219][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.219][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.219][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.220][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.220][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.220][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.220][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.220][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.220][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.220][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.220][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.221][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.221][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.221][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.221][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.221][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.221][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.221][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.221][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 8900 batches in 2.703900008s +[06:50:16.222][PUT] put #8900 +[06:50:16.222][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.222][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.222][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.222][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.222][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.222][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.222][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.222][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.223][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.223][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.223][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.223][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.223][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.223][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.223][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.223][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.224][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.224][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.224][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.224][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.224][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.224][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.224][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.224][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.225][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.225][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.225][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.225][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.225][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.225][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.225][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.225][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.226][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.226][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.226][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.226][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.226][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.226][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.226][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.226][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.226][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.227][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.227][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.227][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.227][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.227][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.227][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.227][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.227][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.228][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.228][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.228][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.228][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.228][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.228][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.228][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.228][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.229][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.229][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.229][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.229][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.229][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.229][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.229][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.229][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.230][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.230][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.230][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.230][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.230][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.230][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.230][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.230][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.231][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.231][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.231][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.231][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.231][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.231][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.231][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.231][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.232][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.232][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.232][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.232][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.232][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.232][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.232][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.232][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.233][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.233][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.233][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.233][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.233][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.233][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.233][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.233][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.234][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.234][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.234][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 9000 batches in 2.716297669s +[06:50:16.234][PUT] put #9000 +[06:50:16.234][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.234][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.234][WAL_TIME_TRIGGER] pending_bytes=121147240, interval elapsed, triggering flush to batch #1801 +[06:50:16.234][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.234][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.235][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.235][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.235][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.235][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.235][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.235][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.235][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.235][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.236][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.236][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.236][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.236][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.236][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.236][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.236][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.236][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.237][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.237][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.237][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.237][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.237][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.237][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.237][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.237][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.238][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.238][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.238][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.238][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.238][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.238][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.238][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.238][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.239][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.239][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.239][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.239][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.239][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.239][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.239][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.239][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.240][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.240][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.240][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.240][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.240][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.240][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.240][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.240][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.241][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.241][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.241][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.241][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.241][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.241][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.241][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.241][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.242][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.242][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.242][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.242][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.242][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.242][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.242][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.242][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.243][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.243][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.243][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.243][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.243][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.243][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.243][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.243][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.244][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.244][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.244][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.244][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.244][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.244][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.244][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.244][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.245][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.245][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.245][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.245][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.245][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.245][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.245][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.245][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.246][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.246][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.246][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.246][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.246][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.246][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.246][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.246][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 9100 batches in 2.728950376s +[06:50:16.247][PUT] put #9100 +[06:50:16.247][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.247][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.247][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.247][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.247][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.247][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.247][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.247][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.248][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.248][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.248][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.248][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.248][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.248][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.248][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.248][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.249][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.249][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.249][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.249][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.249][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.249][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.249][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.249][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.250][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.250][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.250][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.250][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.250][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.250][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.250][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.250][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.251][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.251][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.251][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.251][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.251][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.251][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.251][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.251][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.252][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.252][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.252][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.252][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.252][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.252][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.252][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.252][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.253][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.253][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.253][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.253][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.253][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.253][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.253][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.253][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.254][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.254][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.254][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.254][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.254][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.254][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.254][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.254][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.255][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.255][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.255][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.255][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.255][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.255][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.255][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.255][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.256][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.256][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.256][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.256][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.256][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.256][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.256][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.256][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.257][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.257][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.257][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.257][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.257][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.257][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.257][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.257][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.257][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.258][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.258][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.258][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.258][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.258][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.258][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.258][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.258][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.259][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.259][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.259][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 9200 batches in 2.741358566s +[06:50:16.259][PUT] put #9200 +[06:50:16.259][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.259][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.259][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.259][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.260][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.260][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.260][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.260][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.260][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.260][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.260][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.260][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.261][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.261][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.261][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.261][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.261][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.261][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.263][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.263][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.263][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.263][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.263][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.264][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.264][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.264][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.264][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.264][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.264][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.264][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.264][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.265][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.265][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.265][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.265][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.265][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.267][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.267][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.267][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.267][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.267][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.267][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.268][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.268][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.268][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.268][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.268][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.268][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.268][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.268][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.268][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.269][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.269][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.269][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.269][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.269][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.269][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.269][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.269][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.270][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.270][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.270][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.270][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.271][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.271][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.271][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.271][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.271][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.271][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.272][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.272][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.272][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.272][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.272][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.272][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.272][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.272][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.273][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.273][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.273][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.273][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.273][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.273][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.273][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.273][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.274][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.274][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.274][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.274][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.274][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.274][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.274][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.274][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.275][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.275][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.275][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.275][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.275][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.275][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.275][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 9300 batches in 2.757782323s +[06:50:16.275][PUT] put #9300 +[06:50:16.275][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.276][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.276][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.276][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.276][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.276][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.276][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.276][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.276][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.277][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.277][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.277][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.277][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.277][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.277][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.277][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.277][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.278][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.278][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.278][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.278][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.278][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.278][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.278][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.278][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.279][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.279][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.279][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.279][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.279][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.279][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.279][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.279][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.280][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.280][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.280][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.280][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.280][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.280][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.280][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.280][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.281][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.281][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.281][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.281][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.281][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.281][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.281][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.281][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.281][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.282][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.282][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.282][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.282][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.282][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.282][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.282][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.282][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.283][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.283][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.283][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.283][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.283][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.283][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.283][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.283][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.284][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.284][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.284][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.284][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.284][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.284][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.284][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.284][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.285][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.285][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.285][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.285][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.285][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.285][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.285][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.285][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.286][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.286][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.286][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.286][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.286][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.286][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.286][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.286][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.287][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.287][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.287][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.287][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.287][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.287][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.287][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.287][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.288][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.288][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 9400 batches in 2.77018153s +[06:50:16.288][PUT] put #9400 +[06:50:16.288][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.288][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.288][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.288][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.288][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.288][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.289][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.289][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.289][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.289][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.289][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.289][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.289][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.289][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.290][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.290][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.290][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.290][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.290][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.290][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.290][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.290][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.291][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.291][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.291][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.291][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.291][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.291][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.291][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.291][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.292][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.292][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.292][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.292][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.292][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.292][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.292][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.292][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.293][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.293][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.293][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.293][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.293][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.293][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.293][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.293][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.294][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.294][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.294][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.294][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.294][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.294][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.294][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.294][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.295][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.295][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.295][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.295][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.295][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.295][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.295][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.295][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.295][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.296][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.296][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.296][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.296][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.296][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.296][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.296][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.296][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.297][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.297][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.297][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.297][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.297][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.297][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.297][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.297][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.298][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.298][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.298][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.298][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.298][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.298][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.298][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.299][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.299][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.299][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.299][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.299][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.299][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.299][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.299][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.300][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.300][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.300][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.300][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.300][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.300][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 9500 batches in 2.782650814s +[06:50:16.300][PUT] put #9500 +[06:50:16.300][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.300][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.301][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.301][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.301][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.301][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.301][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.301][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.301][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.301][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.302][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.302][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.302][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.302][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.302][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.302][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.302][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.302][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.303][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.303][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.303][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.303][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.303][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.303][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.303][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.303][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.304][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.304][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.304][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.304][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.304][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.304][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.304][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.304][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.305][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.305][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.305][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.305][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.305][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.305][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.305][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.305][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.306][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.306][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.306][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.306][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.306][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.306][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.306][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.306][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.307][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.307][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.307][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.307][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.307][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.307][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.307][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.307][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.308][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.308][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.308][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.308][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.308][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.308][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.308][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.308][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.309][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.309][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.309][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.309][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.309][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.309][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.309][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.309][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.309][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.310][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.310][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.310][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.310][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.310][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.310][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.310][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.310][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.311][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.311][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.311][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.311][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.311][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.311][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.311][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.311][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.312][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.312][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.312][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.312][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.312][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.312][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.312][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.312][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.313][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 9600 batches in 2.795118021s +[06:50:16.313][PUT] put #9600 +[06:50:16.313][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.313][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.313][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.313][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.313][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.313][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.314][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.314][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.314][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.314][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.314][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.314][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.314][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.314][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.315][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.315][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.315][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.315][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.315][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.315][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.315][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.315][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.316][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.316][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.316][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.316][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.316][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.316][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.316][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.316][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.316][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.317][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.317][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.317][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.317][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.317][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.317][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.317][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.317][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.318][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.318][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.318][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.318][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.318][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.318][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.318][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.318][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.319][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.319][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.319][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.319][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.319][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.319][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.319][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.319][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.320][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.320][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.320][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.320][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.320][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.320][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.320][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.320][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.321][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.321][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.321][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.321][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.321][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.321][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.321][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.321][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.322][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.322][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.322][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.322][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.322][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.322][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.322][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.322][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.323][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.323][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.323][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.323][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.323][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.323][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.323][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.323][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.324][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.324][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.324][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.324][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.324][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.324][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.324][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.324][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.325][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.325][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.325][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.325][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.325][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 9700 batches in 2.807598247s +[06:50:16.325][PUT] put #9700 +[06:50:16.325][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.325][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.326][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.326][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.326][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.326][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.326][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.326][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.326][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.326][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.327][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.327][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.327][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.327][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.327][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.327][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.327][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.327][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.328][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.328][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.328][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.328][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.328][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.328][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.328][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.328][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.329][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.329][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.329][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.329][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.329][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.329][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.329][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.329][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.330][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.330][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.330][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.330][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.330][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.330][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.330][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.330][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.331][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.331][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.331][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.331][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.331][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.331][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.331][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.331][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.332][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.332][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.332][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.332][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.332][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.332][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.332][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.332][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.333][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.333][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.333][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.333][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.333][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.333][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.333][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.333][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.333][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.334][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.334][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.334][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.334][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.334][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.334][WAL_TIME_TRIGGER] pending_bytes=172971320, interval elapsed, triggering flush to batch #2571 +[06:50:16.334][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.334][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.335][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.335][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.335][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.335][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.335][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.335][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.335][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.335][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.336][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.336][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.336][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.336][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.336][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.336][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.336][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.336][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.337][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.337][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.337][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.337][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.337][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.337][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.337][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.337][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.338][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.338][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 9800 batches in 2.820163338s +[06:50:16.338][PUT] put #9800 +[06:50:16.338][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.338][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.338][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.338][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.338][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.338][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.339][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.339][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.339][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.339][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.339][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.339][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.339][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.339][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.340][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.340][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.340][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.340][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.340][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.340][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.340][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.340][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.341][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.341][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.341][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.341][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.341][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.341][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.341][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.341][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.342][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.342][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.342][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.342][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.342][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.342][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.342][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.342][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.343][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.343][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.343][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.343][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.343][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.343][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.343][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.343][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.344][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.344][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.344][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.344][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.344][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.344][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.344][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.344][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.345][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.345][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.345][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.345][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.345][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.345][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.345][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.345][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.346][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.346][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.346][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.346][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.346][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.346][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.346][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.346][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.347][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.347][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.347][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.347][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.347][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.347][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.347][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.347][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.348][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.348][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.348][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.348][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.348][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.348][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.348][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.348][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.349][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.349][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.349][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.349][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.349][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.349][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.349][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.349][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.349][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.350][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.350][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.350][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.350][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.350][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 9900 batches in 2.832625037s +[06:50:16.350][PUT] put #9900 +[06:50:16.350][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.350][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.351][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.351][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.351][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.351][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.351][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.351][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.351][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.351][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.352][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.352][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.352][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.352][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.352][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.352][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.352][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.352][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.353][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.353][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.353][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.353][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.353][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.353][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.353][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.353][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.354][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.354][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.354][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.354][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.354][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.354][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.354][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.354][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.355][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.355][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.355][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.355][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.355][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.355][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.355][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.355][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.356][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.356][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.356][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.356][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.356][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.356][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.356][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.356][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.357][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.357][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.357][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.357][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.357][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.357][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.357][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.357][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.358][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.358][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.358][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.358][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.358][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.358][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.358][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.358][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.358][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.359][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.359][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.359][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.359][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.359][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.359][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.359][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.360][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.360][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.360][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.360][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.360][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.360][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.360][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.360][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.361][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.361][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.361][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.361][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.361][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.361][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.361][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.361][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.362][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.362][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.362][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.362][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.362][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.362][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.362][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.362][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.363][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[06:50:16.363][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 10000 batches in 2.845157333s +[TEST] All writes done in 2.845188538s [TEST] Closing writer... -[06:42:55.645] [WAL_FLUSH] WAL #45 complete: S3=401ms, index=0ms, 765 batches -[TEST] Close took 485.885837ms -[TEST] Stats: puts=10000, WAL flushes=12, WAL bytes=82169944 -[TEST] Throughput: 75864 rows/sec +[06:50:16.562] [WAL_FLUSH] WAL #42 complete: S3=491ms, index=0ms, 785 batches +[TEST] Close took 1.327839249s +[TEST] Stats: puts=10000, WAL flushes=14, WAL bytes=95908660 +[TEST] Throughput: 70294 rows/sec test dataset::mem_wal::write::region_writer_tests::test_region_writer_s3 ... ok -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 1146 filtered out; finished in 10.44s +test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 1146 filtered out; finished in 11.50s Running tests/integration_tests.rs (target/debug/deps/integration_tests-deb1c7e8f5442eaa) diff --git a/rust/lance/src/dataset/mem_wal/write/wal.rs b/rust/lance/src/dataset/mem_wal/write/wal.rs index 9263683528a..4a92845741c 100644 --- a/rust/lance/src/dataset/mem_wal/write/wal.rs +++ b/rust/lance/src/dataset/mem_wal/write/wal.rs @@ -270,6 +270,24 @@ impl WalBuffer { // watchers from the old memtable. New watchers will use the new batch IDs. } + /// Subtract from pending_bytes with saturation (won't underflow below 0). + /// + /// This is needed because in-flight WAL flushes may complete after + /// reset_for_new_memtable() has set pending_bytes to 0. + fn saturating_sub_pending_bytes(&self, value: usize) { + loop { + let current = self.pending_bytes.load(Ordering::Relaxed); + let new_value = current.saturating_sub(value); + if self + .pending_bytes + .compare_exchange_weak(current, new_value, Ordering::Relaxed, Ordering::Relaxed) + .is_ok() + { + break; + } + } + } + /// Trigger an immediate flush up to a specific batch. /// /// # Arguments @@ -362,8 +380,7 @@ impl WalBuffer { // Update watermarks self.last_flushed_id.store(current_count, Ordering::Release); // Subtract only the bytes we flushed (not reset to 0) so that writes during flush are tracked - self.pending_bytes - .fetch_sub(flushed_estimated_bytes, Ordering::Relaxed); + self.saturating_sub_pending_bytes(flushed_estimated_bytes); // Notify durability waiters by updating the durable watermark // This wakes up all BatchDurableWatcher instances waiting for batch_id < current_count @@ -626,8 +643,7 @@ impl WalBuffer { // Update watermarks self.last_flushed_id.store(current_count, Ordering::Release); // Subtract only the bytes we flushed (not reset to 0) so that writes during flush are tracked - self.pending_bytes - .fetch_sub(flushed_estimated_bytes, Ordering::Relaxed); + self.saturating_sub_pending_bytes(flushed_estimated_bytes); // Notify durability waiters let _ = self.durable_watermark_tx.send(current_count); @@ -848,8 +864,7 @@ impl WalBuffer { // Update watermarks self.last_flushed_id.store(end_batch_id, Ordering::Release); - self.pending_bytes - .fetch_sub(flushed_estimated_bytes, Ordering::Relaxed); + self.saturating_sub_pending_bytes(flushed_estimated_bytes); // Notify durability waiters let _ = self.durable_watermark_tx.send(end_batch_id); @@ -1084,8 +1099,7 @@ impl WalBuffer { // Update watermarks - only advance to the batches we actually flushed self.last_flushed_id.store(flush_end, Ordering::Release); // Subtract only the bytes we flushed (not reset to 0) so that writes during flush are tracked - self.pending_bytes - .fetch_sub(flushed_estimated_bytes, Ordering::Relaxed); + self.saturating_sub_pending_bytes(flushed_estimated_bytes); // Notify durability waiters let _ = self.durable_watermark_tx.send(flush_end); From fe45b226f22ee17b36b2d146380542b76d9eee12 Mon Sep 17 00:00:00 2001 From: Heng Ge Date: Wed, 21 Jan 2026 23:14:51 -0800 Subject: [PATCH 06/20] refactor: remove pending_bytes tracking from WalBuffer Use memtable.estimated_size() for size-based flush triggers instead of tracking pending bytes separately. This simplifies the code by: - Removing pending_bytes atomic counter from WalBuffer - Simplifying track_batch() to only return durability watcher - Adding has_pending_batches() to check if unflushed batches exist - Using total memtable bytes for flush trigger thresholds - Removing saturating_sub_pending_bytes() and related tracking The range-based flushing (last_flushed_id to end_batch_id) already determines what to flush, so tracking bytes separately was redundant. Co-Authored-By: Jack Ye Co-Authored-By: Claude --- rust/lance/src/dataset/mem_wal/write/wal.rs | 123 +++--------------- .../lance/src/dataset/mem_wal/write/writer.rs | 99 +++++++------- 2 files changed, 67 insertions(+), 155 deletions(-) diff --git a/rust/lance/src/dataset/mem_wal/write/wal.rs b/rust/lance/src/dataset/mem_wal/write/wal.rs index 4a92845741c..c849ae31671 100644 --- a/rust/lance/src/dataset/mem_wal/write/wal.rs +++ b/rust/lance/src/dataset/mem_wal/write/wal.rs @@ -164,9 +164,6 @@ pub struct WalBuffer { /// Batches `[0, last_flushed_id)` are durable. /// Starts at 0 (meaning no batches flushed yet). last_flushed_id: AtomicUsize, - /// Pending bytes waiting to be flushed (for size-based flush trigger). - /// Incremented on append, reset on flush. - pending_bytes: AtomicUsize, /// Watch channel sender for durable watermark. /// Broadcasts the highest batch_id that is now durable. durable_watermark_tx: watch::Sender, @@ -201,7 +198,6 @@ impl WalBuffer { let (durable_watermark_tx, durable_watermark_rx) = watch::channel(0); Self { last_flushed_id: AtomicUsize::new(0), - pending_bytes: AtomicUsize::new(0), durable_watermark_tx, durable_watermark_rx, object_store: None, @@ -228,25 +224,23 @@ impl WalBuffer { /// Returns a `BatchDurableWatcher` that can be awaited for durability. /// /// Note: The actual batch data is stored in the LockFreeBatchStore. - /// This method only tracks pending bytes for size-based flush triggers. /// /// # Arguments /// /// * `batch_id` - Batch ID (index in the BatchStore) - /// * `estimated_size` - Estimated size in bytes (for flush threshold) - pub fn track_batch(&self, batch_id: usize, estimated_size: usize) -> BatchDurableWatcher { - // Add to pending bytes for size-based flush trigger - self.pending_bytes - .fetch_add(estimated_size, Ordering::Relaxed); - + pub fn track_batch(&self, batch_id: usize) -> BatchDurableWatcher { // Return a watcher that waits for this batch to become durable // batch_id is 0-indexed, so we wait for watermark > batch_id (i.e., >= batch_id + 1) BatchDurableWatcher::new(self.durable_watermark_rx.clone(), batch_id + 1) } - /// Get the current pending bytes waiting for flush. - pub fn pending_bytes(&self) -> usize { - self.pending_bytes.load(Ordering::Relaxed) + /// Check if there are batches pending WAL flush. + /// + /// # Arguments + /// + /// * `current_batch_count` - Current number of batches in the batch store + pub fn has_pending_batches(&self, current_batch_count: usize) -> bool { + self.last_flushed_id.load(Ordering::Acquire) < current_batch_count } /// Get the last flushed batch ID (exclusive watermark). @@ -265,29 +259,10 @@ impl WalBuffer { /// The new memtable starts with batch_id=0, so we reset the watermarks. pub fn reset_for_new_memtable(&self) { self.last_flushed_id.store(0, Ordering::Release); - self.pending_bytes.store(0, Ordering::Relaxed); // Note: We don't reset durable_watermark since that's for notifying // watchers from the old memtable. New watchers will use the new batch IDs. } - /// Subtract from pending_bytes with saturation (won't underflow below 0). - /// - /// This is needed because in-flight WAL flushes may complete after - /// reset_for_new_memtable() has set pending_bytes to 0. - fn saturating_sub_pending_bytes(&self, value: usize) { - loop { - let current = self.pending_bytes.load(Ordering::Relaxed); - let new_value = current.saturating_sub(value); - if self - .pending_bytes - .compare_exchange_weak(current, new_value, Ordering::Relaxed, Ordering::Relaxed) - .is_ok() - { - break; - } - } - } - /// Trigger an immediate flush up to a specific batch. /// /// # Arguments @@ -340,21 +315,11 @@ impl WalBuffer { let final_path = self.wal_dir.child(format!("{}.arrow", filename).as_str()); // Collect batches from the pending range - // Track estimated size of batches being flushed for pending_bytes update let mut batches = Vec::with_capacity(current_count - flushed_id); let mut batch_positions = Vec::with_capacity(current_count - flushed_id); - let mut flushed_estimated_bytes: usize = 0; for batch_id in flushed_id..current_count { if let Some(stored) = batch_store.get(batch_id) { - // Estimate size same way as track_batch does - let batch_size: usize = stored - .data - .columns() - .iter() - .map(|c| c.get_array_memory_size()) - .sum(); - flushed_estimated_bytes += batch_size; batch_positions.push((batch_id, batches.len())); batches.push(stored.data.clone()); } @@ -379,8 +344,6 @@ impl WalBuffer { // Update watermarks self.last_flushed_id.store(current_count, Ordering::Release); - // Subtract only the bytes we flushed (not reset to 0) so that writes during flush are tracked - self.saturating_sub_pending_bytes(flushed_estimated_bytes); // Notify durability waiters by updating the durable watermark // This wakes up all BatchDurableWatcher instances waiting for batch_id < current_count @@ -504,22 +467,12 @@ impl WalBuffer { ); // Collect batches and prepare index data - // Track estimated size of batches being flushed for pending_bytes update let mut batches = Vec::with_capacity(current_count - flushed_id); let mut batch_positions = Vec::with_capacity(current_count - flushed_id); let mut index_batches = Vec::with_capacity(current_count - flushed_id); - let mut flushed_estimated_bytes: usize = 0; for batch_id in flushed_id..current_count { if let Some(stored) = batch_store.get(batch_id) { - // Estimate size same way as track_batch does - let batch_size: usize = stored - .data - .columns() - .iter() - .map(|c| c.get_array_memory_size()) - .sum(); - flushed_estimated_bytes += batch_size; batch_positions.push((batch_id, batches.len())); batches.push(stored.data.clone()); index_batches.push(BufferedBatch { @@ -642,8 +595,6 @@ impl WalBuffer { // Update watermarks self.last_flushed_id.store(current_count, Ordering::Release); - // Subtract only the bytes we flushed (not reset to 0) so that writes during flush are tracked - self.saturating_sub_pending_bytes(flushed_estimated_bytes); // Notify durability waiters let _ = self.durable_watermark_tx.send(current_count); @@ -716,17 +667,9 @@ impl WalBuffer { let mut batches = Vec::with_capacity(end_batch_id - flushed_id); let mut batch_positions = Vec::with_capacity(end_batch_id - flushed_id); let mut index_batches = Vec::with_capacity(end_batch_id - flushed_id); - let mut flushed_estimated_bytes: usize = 0; for batch_id in flushed_id..end_batch_id { if let Some(stored) = batch_store.get(batch_id) { - let batch_size: usize = stored - .data - .columns() - .iter() - .map(|c| c.get_array_memory_size()) - .sum(); - flushed_estimated_bytes += batch_size; batch_positions.push((batch_id, batches.len())); batches.push(stored.data.clone()); index_batches.push(BufferedBatch { @@ -864,7 +807,6 @@ impl WalBuffer { // Update watermarks self.last_flushed_id.store(end_batch_id, Ordering::Release); - self.saturating_sub_pending_bytes(flushed_estimated_bytes); // Notify durability waiters let _ = self.durable_watermark_tx.send(end_batch_id); @@ -940,22 +882,12 @@ impl WalBuffer { let final_path = self.wal_dir.child(format!("{}.arrow", filename).as_str()); // Collect batches and prepare index data - // Track estimated size of batches being flushed for pending_bytes update let mut batches = Vec::with_capacity(flush_end - flushed_id); let mut batch_positions = Vec::with_capacity(flush_end - flushed_id); let mut index_batches = Vec::with_capacity(flush_end - flushed_id); - let mut flushed_estimated_bytes: usize = 0; for batch_id in flushed_id..flush_end { if let Some(stored) = batch_store.get(batch_id) { - // Estimate size same way as track_batch does - let batch_size: usize = stored - .data - .columns() - .iter() - .map(|c| c.get_array_memory_size()) - .sum(); - flushed_estimated_bytes += batch_size; batch_positions.push((batch_id, batches.len())); batches.push(stored.data.clone()); index_batches.push(BufferedBatch { @@ -1098,8 +1030,6 @@ impl WalBuffer { // Update watermarks - only advance to the batches we actually flushed self.last_flushed_id.store(flush_end, Ordering::Release); - // Subtract only the bytes we flushed (not reset to 0) so that writes during flush are tracked - self.saturating_sub_pending_bytes(flushed_estimated_bytes); // Notify durability waiters let _ = self.durable_watermark_tx.send(flush_end); @@ -1246,12 +1176,13 @@ mod tests { buffer.set_object_store(store); // Track a batch - let watcher = buffer.track_batch(0, 1024); + let watcher = buffer.track_batch(0); - // Check pending bytes increased - assert_eq!(buffer.pending_bytes(), 1024); // Watcher should not be durable yet assert!(!watcher.is_durable()); + // Check has_pending_batches + assert!(buffer.has_pending_batches(1)); + assert!(!buffer.has_pending_batches(0)); } #[tokio::test] @@ -1266,30 +1197,18 @@ mod tests { let batch1 = create_test_batch(&schema, 10); let batch2 = create_test_batch(&schema, 5); - // Compute actual sizes same way as flush does (for consistent tracking) - let batch1_size: usize = batch1 - .columns() - .iter() - .map(|c| c.get_array_memory_size()) - .sum(); - let batch2_size: usize = batch2 - .columns() - .iter() - .map(|c| c.get_array_memory_size()) - .sum(); - let batch_store = LockFreeBatchStore::with_capacity(10); batch_store.append(batch1, 1).unwrap(); batch_store.append(batch2, 2).unwrap(); - // Track batch IDs in WAL buffer with actual sizes - let mut watcher1 = buffer.track_batch(0, batch1_size); - let mut watcher2 = buffer.track_batch(1, batch2_size); + // Track batch IDs in WAL buffer + let mut watcher1 = buffer.track_batch(0); + let mut watcher2 = buffer.track_batch(1); // Verify initial state assert!(!watcher1.is_durable()); assert!(!watcher2.is_durable()); - assert_eq!(buffer.pending_bytes(), batch1_size + batch2_size); + assert!(buffer.has_pending_batches(batch_store.len())); // Flush let entry = buffer.flush(&batch_store).await.unwrap().unwrap(); @@ -1297,8 +1216,8 @@ mod tests { assert_eq!(entry.writer_epoch, 1); assert_eq!(entry.batch_positions.len(), 2); assert_eq!(buffer.last_flushed_id(), 2); - // After flush, pending_bytes should be 0 since we tracked the same sizes - assert_eq!(buffer.pending_bytes(), 0); + // After flush, no pending batches + assert!(!buffer.has_pending_batches(batch_store.len())); // Watchers should be notified watcher1.wait().await.unwrap(); @@ -1325,8 +1244,8 @@ mod tests { .unwrap(); // Track batch IDs and flush - let _watcher1 = buffer.track_batch(0, 1024); - let _watcher2 = buffer.track_batch(1, 512); + let _watcher1 = buffer.track_batch(0); + let _watcher2 = buffer.track_batch(1); let entry = buffer.flush(&batch_store).await.unwrap().unwrap(); // Read back the WAL entry @@ -1354,7 +1273,7 @@ mod tests { batch_store .append(create_test_batch(&schema, 10), (i + 1) as u64) .unwrap(); - let _ = buffer.track_batch(i, 1024); + let _ = buffer.track_batch(i); } // Flush only 2 batches at a time diff --git a/rust/lance/src/dataset/mem_wal/write/writer.rs b/rust/lance/src/dataset/mem_wal/write/writer.rs index 63067b87da4..46fec50fb37 100644 --- a/rust/lance/src/dataset/mem_wal/write/writer.rs +++ b/rust/lance/src/dataset/mem_wal/write/writer.rs @@ -163,11 +163,11 @@ impl WriterStateOps for Arc { batch_id: usize, _row_offset: u64, _seq: u64, - estimated_size: usize, + _estimated_size: usize, ) -> DurabilityWatcher { - // Track batch in WAL buffer for size-based flush triggers - // The batch data is stored in LockFreeBatchStore and read during flush - let _wal_watcher = self.wal_buffer.track_batch(batch_id, estimated_size); + // Track batch in WAL buffer for durability watcher + // Size-based flush triggers now use memtable.estimated_bytes() directly + let _wal_watcher = self.wal_buffer.track_batch(batch_id); // Return a pre-resolved watcher that's immediately "durable" for the non-durable case. // For durable writes, the caller will trigger a flush and wait for it. @@ -218,9 +218,18 @@ impl WriterStateOps for Arc { } fn maybe_trigger_wal_flush(&self) { - let pending_bytes = self.wal_buffer.pending_bytes(); let threshold = self.config.max_wal_buffer_size; + // Get memtable stats - batch count and estimated bytes for size-based trigger + let (batch_count, total_bytes) = self + .state + .try_read() + .map(|s| (s.memtable.batch_count(), s.memtable.estimated_size())) + .unwrap_or((0, 0)); + + // Check if there are any unflushed batches + let has_pending = self.wal_buffer.has_pending_batches(batch_count); + // Check time-based trigger first let time_trigger = if let Some(interval) = self.config.max_flush_interval { let interval_millis = interval.as_millis() as u64; @@ -241,7 +250,7 @@ impl WriterStateOps for Arc { } else { let elapsed = now.saturating_sub(last_trigger); - if elapsed >= interval_millis && pending_bytes > 0 { + if elapsed >= interval_millis && has_pending { // Try to claim this time-based trigger if self .last_wal_flush_trigger_time @@ -267,20 +276,14 @@ impl WriterStateOps for Arc { // If time trigger fired, send a flush message if time_trigger.is_some() { - let end_batch_id = self - .state - .try_read() - .map(|s| s.memtable.batch_count()) - .unwrap_or(0); - eprintln!( - "[{}][WAL_TIME_TRIGGER] pending_bytes={}, interval elapsed, triggering flush to batch #{}", + "[{}][WAL_TIME_TRIGGER] total_bytes={}, interval elapsed, triggering flush to batch #{}", log_ts(), - pending_bytes, - end_batch_id + total_bytes, + batch_count ); let _ = self.wal_flush_tx.send(WalFlushMsg::TriggerWalFlush { - end_batch_id, + end_batch_id: batch_count, done: None, }); // Time trigger sent, don't also send size trigger in same call @@ -293,7 +296,7 @@ impl WriterStateOps for Arc { } // Calculate how many thresholds have been crossed (1 at 10MB, 2 at 20MB, etc.) - let thresholds_crossed = pending_bytes / threshold; + let thresholds_crossed = total_bytes / threshold; // Try to trigger a flush for each unclaimed threshold crossing // This allows multiple parallel flushes - one per 10MB boundary @@ -318,29 +321,21 @@ impl WriterStateOps for Arc { ) .is_ok() { - // Capture the current batch count at trigger time - // This bounds how much this flush will handle - let end_batch_id = self - .state - .try_read() - .map(|s| s.memtable.batch_count()) - .unwrap_or(0); - // Update last trigger time so time-based trigger doesn't fire immediately after self.last_wal_flush_trigger_time .store(now_millis(), std::sync::atomic::Ordering::Release); eprintln!( - "[{}][WAL_SIZE_TRIGGER] pending_bytes={}, threshold #{} crossed ({}MB), triggering flush to batch #{}", + "[{}][WAL_SIZE_TRIGGER] total_bytes={}, threshold #{} crossed ({}MB), triggering flush to batch #{}", log_ts(), - pending_bytes, + total_bytes, current_count + 1, (current_count + 1) * threshold / (1024 * 1024), - end_batch_id + batch_count ); // Trigger WAL flush with captured batch range let _ = self.wal_flush_tx.send(WalFlushMsg::TriggerWalFlush { - end_batch_id, + end_batch_id: batch_count, done: None, }); // Continue loop to check if more thresholds need triggering @@ -353,8 +348,13 @@ impl WriterStateOps for Arc { #[async_trait] impl BackpressureProvider for SharedWriterState { fn wal_buffer_bytes(&self) -> usize { - // Get actual pending bytes from watermark-based tracking - self.wal_buffer.pending_bytes() + // Return total memtable bytes as proxy for WAL buffer pressure + // This is a conservative estimate since some bytes may already be flushed + self.state + .try_read() + .ok() + .map(|s| s.memtable.estimated_size()) + .unwrap_or(0) } fn immutable_memtable_bytes(&self) -> usize { @@ -978,7 +978,6 @@ impl RegionWriter { /// Get WAL buffer statistics. pub fn wal_stats(&self) -> WalStats { WalStats { - pending_bytes: self.wal_buffer.pending_bytes(), last_flushed_id: self.wal_buffer.last_flushed_id(), next_wal_id: self.wal_buffer.next_wal_id(), } @@ -1017,7 +1016,6 @@ pub struct MemTableStats { /// WAL buffer statistics. #[derive(Debug, Clone)] pub struct WalStats { - pub pending_bytes: usize, pub last_flushed_id: usize, pub next_wal_id: u64, } @@ -1164,7 +1162,6 @@ impl WalFlushHandler { state.memtable.batch_store() }; - let pending_bytes = self.wal_buffer.pending_bytes(); let last_flushed = self.wal_buffer.last_flushed_id(); let current_count = batch_store.len(); let pending_count = current_count.saturating_sub(last_flushed); @@ -1174,12 +1171,11 @@ impl WalFlushHandler { } eprintln!( - "[{}] [WAL_FLUSH] Starting: {} pending batches (IDs {}..{}), {} bytes", + "[{}] [WAL_FLUSH] Starting: {} pending batches (IDs {}..{})", log_ts(), pending_count, last_flushed, - current_count, - pending_bytes + current_count ); // Flush all pending batches at once @@ -1397,11 +1393,11 @@ impl MessageHandler for MemTableFlushHandler { let state = self.state.read().await; let remaining = state.memtable.remaining_batch_capacity(); let batch_count = state.memtable.batch_count(); - let pending_wal_bytes = self.wal_buffer.pending_bytes(); + let last_flushed = self.wal_buffer.last_flushed_id(); drop(state); eprintln!( - "[{}][FLUSH_HANDLER] Received FlushMemTable: batches={}, remaining={}, pending_wal_bytes={}", - log_ts(), batch_count, remaining, pending_wal_bytes + "[{}][FLUSH_HANDLER] Received FlushMemTable: batches={}, remaining={}, pending_batches={}", + log_ts(), batch_count, remaining, batch_count.saturating_sub(last_flushed) ); let result = self.do_flush().await; if let Some(tx) = done { @@ -1455,10 +1451,12 @@ impl MemTableFlushHandler { let batch_store = { let state = self.state.read().await; let remaining = state.memtable.remaining_batch_capacity(); + let batch_count = state.memtable.batch_count(); + let last_flushed = self.wal_buffer.last_flushed_id(); eprintln!( - "[{}][FREEZE] WAL flush: pending_bytes={}, remaining_capacity={}", + "[{}][FREEZE] WAL flush: pending_batches={}, remaining_capacity={}", log_ts(), - self.wal_buffer.pending_bytes(), + batch_count.saturating_sub(last_flushed), remaining ); state.memtable.batch_store() @@ -1540,7 +1538,6 @@ impl MemTableFlushHandler { state.last_flushed_wal_id = last_wal_id; // Reset WAL watermarks for new memtable (batch IDs start from 0) - // This is critical - without it, pending_bytes stays stale after freeze self.wal_buffer.reset_for_new_memtable(); debug!( @@ -1623,17 +1620,14 @@ impl MemTableFlushHandler { async fn do_flush(&mut self) -> Result { // Check if memtable has data before flushing // This prevents spurious flushes from queued messages - let (batch_count, pending_wal_bytes) = { + let batch_count = { let state = self.state.read().await; - ( - state.memtable.batch_count(), - self.wal_buffer.pending_bytes(), - ) + state.memtable.batch_count() }; - if batch_count == 0 && pending_wal_bytes == 0 { + if batch_count == 0 { eprintln!( - "[{}][MEMTABLE_FLUSH] Skipping flush - no data (batches=0, pending_wal_bytes=0)", + "[{}][MEMTABLE_FLUSH] Skipping flush - no data (batches=0)", log_ts() ); // Return a dummy result - no actual flush needed @@ -1649,10 +1643,9 @@ impl MemTableFlushHandler { } eprintln!( - "[{}][MEMTABLE_FLUSH] Starting do_flush: {} batches, {} pending WAL bytes", + "[{}][MEMTABLE_FLUSH] Starting do_flush: {} batches", log_ts(), - batch_count, - pending_wal_bytes + batch_count ); let flush_start = std::time::Instant::now(); From eceb2bb8fdcbcc50ec1c324d94dacb400733c213 Mon Sep 17 00:00:00 2001 From: Heng Ge Date: Wed, 21 Jan 2026 23:38:29 -0800 Subject: [PATCH 07/20] refactor: replace IVF partition overflow with 90% soft capacity threshold - Remove overflow mechanism from LockFreeIvfPartitionStorage - Add soft_capacity field (90% of hard capacity) for flush triggering - is_at_capacity() now returns true at 90% to leave 10% buffer - Update test_region_writer_s3 to include IVF-PQ index creation - Simplify get_partition_entries() without overflow handling Co-Authored-By: Claude Opus 4.5 --- rust/lance/src/dataset/mem_wal/write.rs | 49 ++++- .../src/dataset/mem_wal/write/indexes.rs | 180 +++++++----------- 2 files changed, 110 insertions(+), 119 deletions(-) diff --git a/rust/lance/src/dataset/mem_wal/write.rs b/rust/lance/src/dataset/mem_wal/write.rs index d854306b1a3..521fbe44505 100644 --- a/rust/lance/src/dataset/mem_wal/write.rs +++ b/rust/lance/src/dataset/mem_wal/write.rs @@ -57,10 +57,15 @@ mod region_writer_tests { }; use arrow_schema::{DataType, Field, Schema as ArrowSchema}; use lance_arrow::FixedSizeListArrayExt; + use lance_index::vector::ivf::IvfBuildParams; + use lance_index::vector::pq::builder::PQBuildParams; + use lance_index::{DatasetIndexExt, IndexType}; + use lance_linalg::distance::MetricType; use uuid::Uuid; use crate::dataset::mem_wal::{DatasetMemWalExt, MemWalConfig}; use crate::dataset::{Dataset, WriteParams}; + use crate::index::vector::VectorIndexParams; use super::super::RegionWriterConfig; @@ -199,7 +204,7 @@ mod region_writer_tests { ); } - /// Test region writer against S3 (requires DATASET_PREFIX env var) + /// Test region writer against S3 with IVF-PQ index (requires DATASET_PREFIX env var) /// Run with: DATASET_PREFIX=s3://bucket/path cargo test -p lance region_writer_tests::test_region_writer_s3 -- --nocapture --ignored #[tokio::test] #[ignore] @@ -209,6 +214,8 @@ mod region_writer_tests { let vector_dim = 512; let batch_size = 20; let num_batches = 10000; + let num_partitions = 16; + let num_sub_vectors = 64; // 512 / 8 = 64 subvectors let schema = create_test_schema(vector_dim); let uri = format!( @@ -219,18 +226,50 @@ mod region_writer_tests { eprintln!("[TEST] Creating dataset at {}", uri); - // Create initial dataset - let initial_batch = create_test_batch(&schema, 0, 100, vector_dim); + // Create initial dataset with enough data for IVF-PQ training + let initial_batch = create_test_batch(&schema, 0, 1000, vector_dim); let batches = RecordBatchIterator::new([Ok(initial_batch)], schema.clone()); let mut dataset = Dataset::write(batches, &uri, Some(WriteParams::default())) .await .expect("Failed to create dataset"); - // Initialize MemWAL (no indexes) + // Create IVF-PQ index on dataset + eprintln!("[TEST] Creating IVF-PQ index on dataset..."); + let train_start = Instant::now(); + + let ivf_params = IvfBuildParams { + num_partitions: Some(num_partitions), + ..Default::default() + }; + let pq_params = PQBuildParams { + num_sub_vectors, + num_bits: 8, + ..Default::default() + }; + let vector_params = + VectorIndexParams::with_ivf_pq_params(MetricType::L2, ivf_params, pq_params); + + dataset + .create_index( + &["vector"], + IndexType::Vector, + Some("vector_idx".to_string()), + &vector_params, + true, + ) + .await + .expect("Failed to create IVF-PQ index"); + + eprintln!( + "[TEST] IVF-PQ index creation took {:?}", + train_start.elapsed() + ); + + // Initialize MemWAL with IVF-PQ index dataset .initialize_mem_wal(MemWalConfig { region_spec: None, - maintained_indexes: vec![], + maintained_indexes: vec!["vector_idx".to_string()], }) .await .expect("Failed to initialize MemWAL"); diff --git a/rust/lance/src/dataset/mem_wal/write/indexes.rs b/rust/lance/src/dataset/mem_wal/write/indexes.rs index 09fa86df4a3..1a9a0e1ec6b 100644 --- a/rust/lance/src/dataset/mem_wal/write/indexes.rs +++ b/rust/lance/src/dataset/mem_wal/write/indexes.rs @@ -400,8 +400,8 @@ const DEFAULT_PARTITION_CAPACITY: usize = 4096; /// Uses pre-allocated arrays and atomic length counter for lock-free concurrent access. /// Stores codes in column-major format: `codes[subvec_idx * capacity + vec_idx]` /// -/// When the pre-allocated capacity is reached, additional vectors go into an overflow -/// buffer. This handles the race between capacity detection and memtable freeze. +/// The partition reports "at capacity" when 90% full, giving a 10% buffer to handle +/// writes that arrive after capacity is detected but before memtable freeze completes. /// /// # Safety /// @@ -421,140 +421,111 @@ struct LockFreeIvfPartitionStorage { code_len: usize, /// Maximum capacity of pre-allocated storage. capacity: usize, - /// Overflow buffer for vectors that arrive after capacity is reached. - /// Uses RwLock since writes are serialized but reads can be concurrent. - overflow: std::sync::RwLock>, -} - -/// Entry in the overflow buffer when partition capacity is exceeded. -#[derive(Debug, Clone)] -struct OverflowEntry { - row_position: RowPosition, - /// PQ code stored in row-major format. - pq_code: Vec, + /// Soft capacity threshold (90% of capacity) - triggers memtable flush. + soft_capacity: usize, } impl LockFreeIvfPartitionStorage { /// Create new pre-allocated storage. + /// + /// The soft capacity is set to 90% of the total capacity, leaving a 10% buffer + /// for writes that arrive during the memtable freeze window. fn new(code_len: usize, capacity: usize) -> Self { + // 90% threshold - partition reports "at capacity" when 90% full + let soft_capacity = capacity * 9 / 10; Self { row_positions: vec![0u64; capacity].into_boxed_slice(), codes: vec![0u8; capacity * code_len].into_boxed_slice(), len: AtomicUsize::new(0), code_len, capacity, - overflow: std::sync::RwLock::new(Vec::new()), + soft_capacity, } } /// Insert a vector's PQ code. /// - /// If the pre-allocated storage has capacity, inserts in column-major format. - /// If at capacity, inserts into the overflow buffer instead. + /// Inserts into pre-allocated storage in column-major format. /// /// # Safety /// /// This method is NOT thread-safe for concurrent inserts. /// Only one thread should call insert at a time. /// However, it IS safe to read concurrently while inserting. + /// + /// # Panics + /// + /// Panics if the partition is at hard capacity. This should never happen + /// because memtable flush is triggered at 90% capacity (soft threshold). #[inline] fn insert(&self, row_position: RowPosition, pq_code: &[u8]) { debug_assert_eq!(pq_code.len(), self.code_len); let idx = self.len.load(Ordering::Relaxed); - if idx < self.capacity { - // Insert into pre-allocated storage (column-major format) - // Safety: we're the only writer (by contract), and we write before updating len - unsafe { - // Write row position - let row_pos_ptr = self.row_positions.as_ptr() as *mut u64; - std::ptr::write(row_pos_ptr.add(idx), row_position); - - // Write codes in column-major order - let codes_ptr = self.codes.as_ptr() as *mut u8; - for (subvec_idx, &code) in pq_code.iter().enumerate() { - std::ptr::write(codes_ptr.add(subvec_idx * self.capacity + idx), code); - } - } + assert!( + idx < self.capacity, + "IVF partition exceeded hard capacity ({}/{}). This indicates a bug in flush trigger logic.", + idx, + self.capacity + ); - // Release fence ensures writes are visible before length update - self.len.store(idx + 1, Ordering::Release); - } else { - // Capacity exceeded - use overflow buffer - let mut overflow = self.overflow.write().unwrap(); - overflow.push(OverflowEntry { - row_position, - pq_code: pq_code.to_vec(), - }); + // Insert into pre-allocated storage (column-major format) + // Safety: we're the only writer (by contract), and we write before updating len + unsafe { + // Write row position + let row_pos_ptr = self.row_positions.as_ptr() as *mut u64; + std::ptr::write(row_pos_ptr.add(idx), row_position); + + // Write codes in column-major order + let codes_ptr = self.codes.as_ptr() as *mut u8; + for (subvec_idx, &code) in pq_code.iter().enumerate() { + std::ptr::write(codes_ptr.add(subvec_idx * self.capacity + idx), code); + } } - } - /// Get the total number of vectors in this partition (pre-allocated + overflow). - #[inline] - fn len(&self) -> usize { - self.len.load(Ordering::Acquire) + self.overflow.read().unwrap().len() + // Release fence ensures writes are visible before length update + self.len.store(idx + 1, Ordering::Release); } - /// Get the number of vectors in pre-allocated storage only. + /// Get the number of vectors in this partition. #[inline] - fn preallocated_len(&self) -> usize { + fn len(&self) -> usize { self.len.load(Ordering::Acquire) } - /// Get the number of vectors in overflow. - #[inline] - fn overflow_len(&self) -> usize { - self.overflow.read().unwrap().len() - } - /// Check if partition is empty. #[inline] fn is_empty(&self) -> bool { self.len() == 0 } - /// Get pre-transposed codes as a contiguous array (including overflow). + /// Get pre-transposed codes as a contiguous array. /// /// The codes are stored in column-major format: [subvec0: n bytes][subvec1: n bytes]... - /// Overflow entries are transposed and appended. fn transposed_codes(&self) -> Vec { - let preallocated_len = self.len.load(Ordering::Acquire); - let overflow = self.overflow.read().unwrap(); - let total_len = preallocated_len + overflow.len(); + let len = self.len.load(Ordering::Acquire); - if total_len == 0 { + if len == 0 { return Vec::new(); } - let mut result = Vec::with_capacity(total_len * self.code_len); + let mut result = Vec::with_capacity(len * self.code_len); - // First, add pre-allocated codes (already column-major) - // Format: [subvec0: preallocated_len bytes][subvec1: preallocated_len bytes]... - // But we need: [subvec0: total_len bytes][subvec1: total_len bytes]... + // Copy codes from column-major storage + // Format: [subvec0: len bytes][subvec1: len bytes]... for subvec_idx in 0..self.code_len { - // Add pre-allocated codes for this subvector let start = subvec_idx * self.capacity; - result.extend_from_slice(&self.codes[start..start + preallocated_len]); - - // Add overflow codes for this subvector (transpose row-major to column-major) - for entry in overflow.iter() { - result.push(entry.pq_code[subvec_idx]); - } + result.extend_from_slice(&self.codes[start..start + len]); } result } - /// Get all row positions (pre-allocated + overflow). + /// Get all row positions. fn all_row_positions(&self) -> Vec { - let preallocated_len = self.len.load(Ordering::Acquire); - let overflow = self.overflow.read().unwrap(); - - let mut result = Vec::with_capacity(preallocated_len + overflow.len()); - result.extend_from_slice(&self.row_positions[..preallocated_len]); - result.extend(overflow.iter().map(|e| e.row_position)); - result + let len = self.len.load(Ordering::Acquire); + self.row_positions[..len].to_vec() } /// Get row positions from pre-allocated storage only (for backward compatibility). @@ -571,19 +542,19 @@ impl LockFreeIvfPartitionStorage { &self.codes[start..start + len] } - /// Check if this partition has reached its pre-allocated capacity. + /// Check if this partition has reached its soft capacity threshold (90%). /// - /// Note: This returns true when the pre-allocated storage is full, - /// even if overflow is being used. Used to trigger memtable flush. + /// Returns true when the partition is 90% full, triggering memtable flush. + /// The remaining 10% buffer handles writes during the freeze window. #[inline] fn is_at_capacity(&self) -> bool { - self.len.load(Ordering::Acquire) >= self.capacity + self.len.load(Ordering::Acquire) >= self.soft_capacity } - /// Check if this partition has any overflow entries. + /// Get the current fill percentage of this partition. #[inline] - fn has_overflow(&self) -> bool { - !self.overflow.read().unwrap().is_empty() + fn fill_percentage(&self) -> f64 { + (self.len.load(Ordering::Acquire) as f64 / self.capacity as f64) * 100.0 } } @@ -702,7 +673,7 @@ impl IvfPqMemIndex { } } - /// Check if any partition has reached its capacity. + /// Check if any partition has reached its soft capacity threshold (90%). /// /// Returns true if at least one partition is at capacity, /// which indicates the memtable should be flushed. @@ -712,19 +683,12 @@ impl IvfPqMemIndex { .any(|partition| partition.is_at_capacity()) } - /// Check if any partition has overflow entries. - /// - /// Returns true if at least one partition has vectors in its overflow buffer, - /// indicating writes occurred after capacity was reached but before freeze. - pub fn any_partition_has_overflow(&self) -> bool { + /// Get the maximum fill percentage across all partitions. + pub fn max_partition_fill_percentage(&self) -> f64 { self.partitions .iter() - .any(|partition| partition.has_overflow()) - } - - /// Get total overflow count across all partitions. - pub fn total_overflow_count(&self) -> usize { - self.partitions.iter().map(|p| p.overflow_len()).sum() + .map(|p| p.fill_percentage()) + .fold(0.0, f64::max) } /// Insert vectors from a batch into the index. @@ -962,7 +926,7 @@ impl IvfPqMemIndex { continue; } - // Get pre-transposed codes (includes overflow) and all row positions + // Get pre-transposed codes and row positions let transposed_codes = partition.transposed_codes(); let row_positions = partition.all_row_positions(); let codes_array = UInt8Array::from(transposed_codes); @@ -1007,7 +971,7 @@ impl IvfPqMemIndex { &self.column_name } - /// Get entries for a partition (including overflow). + /// Get entries for a partition. /// Returns PQ codes in row-major format for compatibility with external APIs. pub fn get_partition(&self, partition_id: usize) -> Vec { if partition_id >= self.num_partitions { @@ -1020,35 +984,23 @@ impl IvfPqMemIndex { } let code_len = self.code_len; - let preallocated_len = partition.preallocated_len(); - // Reconstruct row-major codes from column-major pre-allocated storage - let mut entries: Vec = partition + // Reconstruct row-major codes from column-major storage + partition .row_positions() .iter() .enumerate() .map(|(vec_idx, &row_position)| { let mut pq_code = Vec::with_capacity(code_len); for subvec_idx in 0..code_len { - pq_code.push(partition.subvec_codes(subvec_idx, preallocated_len)[vec_idx]); + pq_code.push(partition.subvec_codes(subvec_idx, total_vectors)[vec_idx]); } IvfPqEntry { row_position, pq_code, } }) - .collect(); - - // Add overflow entries (already in row-major format) - let overflow = partition.overflow.read().unwrap(); - for entry in overflow.iter() { - entries.push(IvfPqEntry { - row_position: entry.row_position, - pq_code: entry.pq_code.clone(), - }); - } - - entries + .collect() } /// Get the number of partitions. From 3b4305bd63e32d974d649b217b163c2077d6d924 Mon Sep 17 00:00:00 2001 From: Heng Ge Date: Wed, 21 Jan 2026 23:57:58 -0800 Subject: [PATCH 08/20] refactor: simplify IvfPqMemIndex to use SkipMap instead of pre-transposed storage The pre-transposed column-major storage was causing extremely slow index updates (~45 seconds per WAL flush for 157 batches). Replace with a simple SkipMap that stores (partition_id, row_position) -> pq_code directly. Key changes: - Remove LockFreeIvfPartitionStorage with complex pre-allocated column-major layout - Use SkipMap> for O(log n) inserts instead of O(m) per insert - Add transpose_codes() method to convert to column-major format at read time - Remove partition capacity limits (capacity managed by memtable size) Trade-off: Slightly slower reads (transpose at read time) for much faster writes. Co-Authored-By: Claude Opus 4.5 --- .../src/dataset/mem_wal/write/indexes.rs | 344 ++++++------------ 1 file changed, 110 insertions(+), 234 deletions(-) diff --git a/rust/lance/src/dataset/mem_wal/write/indexes.rs b/rust/lance/src/dataset/mem_wal/write/indexes.rs index 1a9a0e1ec6b..46398d22e86 100644 --- a/rust/lance/src/dataset/mem_wal/write/indexes.rs +++ b/rust/lance/src/dataset/mem_wal/write/indexes.rs @@ -392,169 +392,29 @@ pub struct IvfPqEntry { pub pq_code: Vec, } -/// Default capacity per partition (can be overridden via `IvfPqMemIndex::with_capacity`). -const DEFAULT_PARTITION_CAPACITY: usize = 4096; - -/// Lock-free per-partition storage with pre-transposed (column-major) PQ codes. -/// -/// Uses pre-allocated arrays and atomic length counter for lock-free concurrent access. -/// Stores codes in column-major format: `codes[subvec_idx * capacity + vec_idx]` -/// -/// The partition reports "at capacity" when 90% full, giving a 10% buffer to handle -/// writes that arrive after capacity is detected but before memtable freeze completes. -/// -/// # Safety +/// Key for IVF-PQ index entries in SkipMap. /// -/// - Writes must be serialized (one writer at a time) - guaranteed by our insert loop -/// - Reads can happen concurrently with writes -/// - Uses Release/Acquire ordering for proper visibility -#[derive(Debug)] -struct LockFreeIvfPartitionStorage { - /// Pre-allocated row positions. - row_positions: Box<[u64]>, - /// Pre-allocated codes in column-major layout. - /// Layout: codes[subvec_idx * capacity + vec_idx] - codes: Box<[u8]>, - /// Current number of vectors in pre-allocated storage (atomic for lock-free reads). - len: AtomicUsize, - /// Code length per vector. - code_len: usize, - /// Maximum capacity of pre-allocated storage. - capacity: usize, - /// Soft capacity threshold (90% of capacity) - triggers memtable flush. - soft_capacity: usize, +/// Ordered by (partition_id, row_position) for efficient partition iteration. +#[derive(Clone, Debug, PartialEq, Eq)] +struct IvfPqKey { + /// Partition ID (0..num_partitions). + partition_id: u32, + /// Row position in MemTable. + row_position: RowPosition, } -impl LockFreeIvfPartitionStorage { - /// Create new pre-allocated storage. - /// - /// The soft capacity is set to 90% of the total capacity, leaving a 10% buffer - /// for writes that arrive during the memtable freeze window. - fn new(code_len: usize, capacity: usize) -> Self { - // 90% threshold - partition reports "at capacity" when 90% full - let soft_capacity = capacity * 9 / 10; - Self { - row_positions: vec![0u64; capacity].into_boxed_slice(), - codes: vec![0u8; capacity * code_len].into_boxed_slice(), - len: AtomicUsize::new(0), - code_len, - capacity, - soft_capacity, - } - } - - /// Insert a vector's PQ code. - /// - /// Inserts into pre-allocated storage in column-major format. - /// - /// # Safety - /// - /// This method is NOT thread-safe for concurrent inserts. - /// Only one thread should call insert at a time. - /// However, it IS safe to read concurrently while inserting. - /// - /// # Panics - /// - /// Panics if the partition is at hard capacity. This should never happen - /// because memtable flush is triggered at 90% capacity (soft threshold). - #[inline] - fn insert(&self, row_position: RowPosition, pq_code: &[u8]) { - debug_assert_eq!(pq_code.len(), self.code_len); - - let idx = self.len.load(Ordering::Relaxed); - - assert!( - idx < self.capacity, - "IVF partition exceeded hard capacity ({}/{}). This indicates a bug in flush trigger logic.", - idx, - self.capacity - ); - - // Insert into pre-allocated storage (column-major format) - // Safety: we're the only writer (by contract), and we write before updating len - unsafe { - // Write row position - let row_pos_ptr = self.row_positions.as_ptr() as *mut u64; - std::ptr::write(row_pos_ptr.add(idx), row_position); - - // Write codes in column-major order - let codes_ptr = self.codes.as_ptr() as *mut u8; - for (subvec_idx, &code) in pq_code.iter().enumerate() { - std::ptr::write(codes_ptr.add(subvec_idx * self.capacity + idx), code); - } - } - - // Release fence ensures writes are visible before length update - self.len.store(idx + 1, Ordering::Release); - } - - /// Get the number of vectors in this partition. - #[inline] - fn len(&self) -> usize { - self.len.load(Ordering::Acquire) - } - - /// Check if partition is empty. - #[inline] - fn is_empty(&self) -> bool { - self.len() == 0 +impl PartialOrd for IvfPqKey { + fn partial_cmp(&self, other: &Self) -> Option { + Some(self.cmp(other)) } +} - /// Get pre-transposed codes as a contiguous array. - /// - /// The codes are stored in column-major format: [subvec0: n bytes][subvec1: n bytes]... - fn transposed_codes(&self) -> Vec { - let len = self.len.load(Ordering::Acquire); - - if len == 0 { - return Vec::new(); - } - - let mut result = Vec::with_capacity(len * self.code_len); - - // Copy codes from column-major storage - // Format: [subvec0: len bytes][subvec1: len bytes]... - for subvec_idx in 0..self.code_len { - let start = subvec_idx * self.capacity; - result.extend_from_slice(&self.codes[start..start + len]); +impl Ord for IvfPqKey { + fn cmp(&self, other: &Self) -> std::cmp::Ordering { + match self.partition_id.cmp(&other.partition_id) { + std::cmp::Ordering::Equal => self.row_position.cmp(&other.row_position), + ord => ord, } - - result - } - - /// Get all row positions. - fn all_row_positions(&self) -> Vec { - let len = self.len.load(Ordering::Acquire); - self.row_positions[..len].to_vec() - } - - /// Get row positions from pre-allocated storage only (for backward compatibility). - #[inline] - fn row_positions(&self) -> &[RowPosition] { - let len = self.len.load(Ordering::Acquire); - &self.row_positions[..len] - } - - /// Access codes for a specific sub-vector index from pre-allocated storage. - #[inline] - fn subvec_codes(&self, subvec_idx: usize, len: usize) -> &[u8] { - let start = subvec_idx * self.capacity; - &self.codes[start..start + len] - } - - /// Check if this partition has reached its soft capacity threshold (90%). - /// - /// Returns true when the partition is 90% full, triggering memtable flush. - /// The remaining 10% buffer handles writes during the freeze window. - #[inline] - fn is_at_capacity(&self) -> bool { - self.len.load(Ordering::Acquire) >= self.soft_capacity - } - - /// Get the current fill percentage of this partition. - #[inline] - fn fill_percentage(&self) -> f64 { - (self.len.load(Ordering::Acquire) as f64 / self.capacity as f64) * 100.0 } } @@ -563,16 +423,16 @@ impl LockFreeIvfPartitionStorage { /// Reuses IVF centroids and PQ codebook from the base table to ensure /// distance comparisons are consistent between the in-memory and base table indexes. /// -/// Uses lock-free pre-transposed (column-major) storage for PQ codes to avoid -/// expensive transpose operations at search time. +/// Uses a simple SkipMap for O(log n) inserts. PQ codes are stored in row-major format +/// and transposed at read time when needed for distance computation. #[derive(Debug)] pub struct IvfPqMemIndex { column_name: String, ivf_model: IvfModel, pq: ProductQuantizer, - /// Lock-free per-partition storage with pre-transposed PQ codes. - /// Index by partition_id for O(1) access. - partitions: Vec, + /// SkipMap storage: (partition_id, row_position) -> pq_code. + /// Ordered by partition_id first for efficient partition iteration. + entries: SkipMap>, /// Total number of vectors indexed. vector_count: AtomicUsize, /// Distance type for partition assignment. @@ -589,8 +449,6 @@ pub struct IvfPqMemIndex { impl IvfPqMemIndex { /// Create a new IVF-PQ index with centroids and codebook from base table. /// - /// Uses default partition capacity (4096 vectors per partition). - /// /// # Arguments /// /// * `column_name` - Vector column name @@ -603,24 +461,26 @@ impl IvfPqMemIndex { pq: ProductQuantizer, distance_type: DistanceType, ) -> Self { - Self::with_capacity( + let num_partitions = ivf_model.num_partitions(); + let code_len = pq.num_sub_vectors * pq.num_bits as usize / 8; + Self { column_name, ivf_model, pq, + entries: SkipMap::new(), + vector_count: AtomicUsize::new(0), distance_type, - DEFAULT_PARTITION_CAPACITY, - ) + num_partitions, + code_len, + max_indexed_seq: AtomicU64::new(0), + } } /// Create a new IVF-PQ index with specified partition capacity. /// - /// # Arguments - /// - /// * `column_name` - Vector column name - /// * `ivf_model` - IVF model with centroids from base table - /// * `pq` - Product quantizer with codebook from base table - /// * `distance_type` - Distance type for search - /// * `partition_capacity` - Maximum vectors per partition + /// Note: partition_capacity is ignored in the SkipMap implementation, + /// but kept for API compatibility. + #[allow(unused_variables)] pub fn with_capacity( column_name: String, ivf_model: IvfModel, @@ -628,22 +488,7 @@ impl IvfPqMemIndex { distance_type: DistanceType, partition_capacity: usize, ) -> Self { - let num_partitions = ivf_model.num_partitions(); - let code_len = pq.num_sub_vectors * pq.num_bits as usize / 8; - let partitions = (0..num_partitions) - .map(|_| LockFreeIvfPartitionStorage::new(code_len, partition_capacity)) - .collect(); - Self { - column_name, - ivf_model, - pq, - partitions, - vector_count: AtomicUsize::new(0), - distance_type, - num_partitions, - code_len, - max_indexed_seq: AtomicU64::new(0), - } + Self::new(column_name, ivf_model, pq, distance_type) } /// Get the maximum sequence number that has been indexed. @@ -673,22 +518,19 @@ impl IvfPqMemIndex { } } - /// Check if any partition has reached its soft capacity threshold (90%). + /// Check if any partition has reached capacity. /// - /// Returns true if at least one partition is at capacity, - /// which indicates the memtable should be flushed. + /// With SkipMap storage, there's no fixed capacity limit. + /// Always returns false - capacity management is handled by memtable size. pub fn any_partition_at_capacity(&self) -> bool { - self.partitions - .iter() - .any(|partition| partition.is_at_capacity()) + false } /// Get the maximum fill percentage across all partitions. + /// + /// With SkipMap storage, returns 0.0 since there's no fixed capacity. pub fn max_partition_fill_percentage(&self) -> f64 { - self.partitions - .iter() - .map(|p| p.fill_percentage()) - .fold(0.0, f64::max) + 0.0 } /// Insert vectors from a batch into the index. @@ -763,9 +605,12 @@ impl IvfPqMemIndex { let row_position = row_offset + row_idx as u64; if (partition_id as usize) < self.num_partitions { - // Insert into lock-free pre-transposed partition storage - // This is O(m) where m = code_len, but avoids O(n*m) transpose at search time - self.partitions[partition_id as usize].insert(row_position, pq_code); + // Insert into SkipMap - O(log n) per insert + let key = IvfPqKey { + partition_id, + row_position, + }; + self.entries.insert(key, pq_code.to_vec()); inserted_count += 1; } } @@ -867,7 +712,12 @@ impl IvfPqMemIndex { let row_position = row_offset + local_idx as u64; if (partition_id as usize) < self.num_partitions { - self.partitions[partition_id as usize].insert(row_position, pq_code); + // Insert into SkipMap - O(log n) per insert + let key = IvfPqKey { + partition_id, + row_position, + }; + self.entries.insert(key, pq_code.to_vec()); inserted_count += 1; } @@ -906,7 +756,6 @@ impl IvfPqMemIndex { } // Find nearest partitions to probe - // Note: find_partitions expects the inner primitive array, not FixedSizeListArray let query_values = query.value(0); let (partition_ids, _) = self.ivf_model @@ -920,15 +769,14 @@ impl IvfPqMemIndex { continue; } - // Read from lock-free pre-transposed partition storage - let partition = &self.partitions[partition_id as usize]; - if partition.is_empty() { + // Get entries for this partition + let entries = self.get_partition(partition_id as usize); + if entries.is_empty() { continue; } - // Get pre-transposed codes and row positions - let transposed_codes = partition.transposed_codes(); - let row_positions = partition.all_row_positions(); + // Transpose PQ codes to column-major format for distance computation + let transposed_codes = self.transpose_codes(&entries); let codes_array = UInt8Array::from(transposed_codes); // Compute distances using PQ distance table @@ -937,7 +785,7 @@ impl IvfPqMemIndex { // Collect results with row positions for (idx, &dist) in distances.values().iter().enumerate() { - results.push((dist, row_positions[idx])); + results.push((dist, entries[idx].row_position)); } } @@ -948,12 +796,46 @@ impl IvfPqMemIndex { Ok(results) } + /// Transpose PQ codes from row-major to column-major format. + /// + /// Input: entries with row-major codes [code0, code1, ...] per vector + /// Output: column-major [subvec0_all_vecs, subvec1_all_vecs, ...] + fn transpose_codes(&self, entries: &[IvfPqEntry]) -> Vec { + if entries.is_empty() { + return Vec::new(); + } + + let num_vectors = entries.len(); + let code_len = self.code_len; + let mut result = Vec::with_capacity(num_vectors * code_len); + + // Build column-major: for each subvector, collect that byte from all vectors + for subvec_idx in 0..code_len { + for entry in entries { + result.push(entry.pq_code[subvec_idx]); + } + } + + result + } + /// Get the number of vectors in a partition. pub fn partition_size(&self, partition_id: usize) -> usize { if partition_id >= self.num_partitions { return 0; } - self.partitions[partition_id].len() + + // Count entries in this partition by range iteration + let start_key = IvfPqKey { + partition_id: partition_id as u32, + row_position: 0, + }; + let end_key = IvfPqKey { + partition_id: partition_id as u32 + 1, + row_position: 0, + }; + + self.entries.range(start_key..end_key).count() } /// Get total vector count. @@ -972,33 +854,27 @@ impl IvfPqMemIndex { } /// Get entries for a partition. - /// Returns PQ codes in row-major format for compatibility with external APIs. + /// Returns PQ codes in row-major format. pub fn get_partition(&self, partition_id: usize) -> Vec { if partition_id >= self.num_partitions { return Vec::new(); } - let partition = &self.partitions[partition_id]; - let total_vectors = partition.len(); - if total_vectors == 0 { - return Vec::new(); - } - let code_len = self.code_len; + // Range query on SkipMap to get all entries for this partition + let start_key = IvfPqKey { + partition_id: partition_id as u32, + row_position: 0, + }; + let end_key = IvfPqKey { + partition_id: partition_id as u32 + 1, + row_position: 0, + }; - // Reconstruct row-major codes from column-major storage - partition - .row_positions() - .iter() - .enumerate() - .map(|(vec_idx, &row_position)| { - let mut pq_code = Vec::with_capacity(code_len); - for subvec_idx in 0..code_len { - pq_code.push(partition.subvec_codes(subvec_idx, total_vectors)[vec_idx]); - } - IvfPqEntry { - row_position, - pq_code, - } + self.entries + .range(start_key..end_key) + .map(|entry| IvfPqEntry { + row_position: entry.key().row_position, + pq_code: entry.value().clone(), }) .collect() } From 1277042c0956319f3eeb4b2418a882d41c600bda Mon Sep 17 00:00:00 2001 From: Heng Ge Date: Thu, 22 Jan 2026 00:38:23 -0800 Subject: [PATCH 09/20] feat(mem_wal): add HNSW as configurable in-memory vector index option Add HnswMemIndex using hnsw_rs crate as an alternative to IvfPqMemIndex for faster index updates. HNSW builds incrementally without pre-training, making it better suited for streaming writes. - Add MemVectorIndexType enum with IvfPq (default) and Hnsw variants - Add vector_index_type field to RegionWriterConfig with builder method - Implement HnswMemIndex with support for L2, Cosine, and Dot distances - Load distance type from base IVF-PQ index for HNSW compatibility Co-Authored-By: Jack Ye Co-Authored-By: Claude --- Cargo.lock | 164 +- Cargo.toml | 1 + result.log | 17860 +++++++--------- rust/lance/Cargo.toml | 1 + rust/lance/src/dataset/mem_wal.rs | 2 +- rust/lance/src/dataset/mem_wal/api.rs | 90 +- rust/lance/src/dataset/mem_wal/config.rs | 28 + rust/lance/src/dataset/mem_wal/write.rs | 134 +- rust/lance/src/dataset/mem_wal/write/flush.rs | 7 +- .../src/dataset/mem_wal/write/indexes.rs | 748 +- 10 files changed, 8571 insertions(+), 10464 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 0f95bd0eef5..2a81083ef7d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -114,6 +114,23 @@ version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299" +[[package]] +name = "anndists" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4bbb2296f2525e53a52680f5c2df6de9a83b8a94cc22a8cc629301a27b5e0b7" +dependencies = [ + "anyhow", + "cfg-if", + "cpu-time", + "env_logger", + "lazy_static", + "log", + "num-traits", + "num_cpus", + "rayon", +] + [[package]] name = "anstream" version = "0.6.21" @@ -1288,6 +1305,15 @@ dependencies = [ "num-traits", ] +[[package]] +name = "bincode" +version = "1.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" +dependencies = [ + "serde", +] + [[package]] name = "bincode" version = "2.0.1" @@ -1663,6 +1689,16 @@ version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b05b61dc5112cbb17e4b6cd61790d9845d13888356391624cbe7e41efeac1e75" +[[package]] +name = "combine" +version = "4.6.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd" +dependencies = [ + "bytes", + "memchr", +] + [[package]] name = "comfy-table" version = "7.2.1" @@ -1794,6 +1830,16 @@ dependencies = [ "cfg-if", ] +[[package]] +name = "cpu-time" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9e393a7668fe1fad3075085b86c781883000b4ede868f43627b34a87c8b7ded" +dependencies = [ + "libc", + "winapi", +] + [[package]] name = "cpufeatures" version = "0.2.17" @@ -3182,6 +3228,18 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c34f04666d835ff5d62e058c3995147c06f42fe86ff053337632bca83e42702d" +[[package]] +name = "enum-as-inner" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1e6a265c649f3f5979b601d26f1d05ada116434c87741c9493cb56218f76cbc" +dependencies = [ + "heck", + "proc-macro2", + "quote", + "syn 2.0.114", +] + [[package]] name = "env_filter" version = "0.1.4" @@ -4026,6 +4084,31 @@ dependencies = [ "digest", ] +[[package]] +name = "hnsw_rs" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b53dc5b9b07424143d016ba843c9b510f424e239118697f5d5d582f2d437df41" +dependencies = [ + "anndists", + "anyhow", + "bincode 1.3.3", + "cfg-if", + "cpu-time", + "env_logger", + "hashbrown 0.15.5", + "indexmap", + "lazy_static", + "log", + "mmap-rs", + "num-traits", + "num_cpus", + "parking_lot", + "rand 0.9.2", + "rayon", + "serde", +] + [[package]] name = "home" version = "0.5.12" @@ -4810,6 +4893,7 @@ dependencies = [ "geoarrow-array", "geoarrow-schema", "half", + "hnsw_rs", "humantime", "itertools 0.13.0", "lance-arrow", @@ -5554,7 +5638,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "50aba4ef41052280722f2120f65606b9218e8718032a3c752b953c4d8091f02e" dependencies = [ "anyhow", - "bincode", + "bincode 2.0.1", "byteorder", "csv", "kanaria", @@ -5583,7 +5667,7 @@ version = "0.44.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5d77e7a0830fd60f23828ad914439997288c1d2cdd9e269be67f967c27b56350" dependencies = [ - "bincode", + "bincode 2.0.1", "byteorder", "lindera-dictionary", "once_cell", @@ -5597,7 +5681,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "489cc70922782af3fd397c0e130846caefe1c15b27c2211aac8f88a9f4590aaf" dependencies = [ "anyhow", - "bincode", + "bincode 2.0.1", "byteorder", "csv", "derive_builder 0.20.2", @@ -5625,7 +5709,7 @@ version = "0.44.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "78870521431dfaf0f94ddd3484fa08367e9d354fc8c708572f2f00007225ddfa" dependencies = [ - "bincode", + "bincode 2.0.1", "byteorder", "lindera-dictionary", "once_cell", @@ -5638,7 +5722,7 @@ version = "0.44.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "abcb3dc3056e5c683e12c2c5e8d40076f7ecfd7bd46f5fc0e4ae9e58152b5d85" dependencies = [ - "bincode", + "bincode 2.0.1", "byteorder", "lindera-dictionary", "once_cell", @@ -5651,7 +5735,7 @@ version = "0.44.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e99316158bab14f0256d912055521ca784f76c63e7460db8a74775c5dc1f8bc2" dependencies = [ - "bincode", + "bincode 2.0.1", "byteorder", "lindera-dictionary", "once_cell", @@ -5675,7 +5759,7 @@ version = "0.44.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "52672945166c14276bbba25e4ec79d7e126db1b503c0a6aa07ffc0141ae15cfa" dependencies = [ - "bincode", + "bincode 2.0.1", "byteorder", "lindera-dictionary", "once_cell", @@ -5788,6 +5872,15 @@ dependencies = [ "pkg-config", ] +[[package]] +name = "mach2" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d640282b302c0bb0a2a8e0233ead9035e3bed871f0b7e81fe4a1ec829765db44" +dependencies = [ + "libc", +] + [[package]] name = "macro_rules_attribute" version = "0.2.2" @@ -5872,6 +5965,15 @@ dependencies = [ "libc", ] +[[package]] +name = "memoffset" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4" +dependencies = [ + "autocfg", +] + [[package]] name = "mime" version = "0.3.17" @@ -5915,6 +6017,23 @@ dependencies = [ "windows-sys 0.61.2", ] +[[package]] +name = "mmap-rs" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86968d85441db75203c34deefd0c88032f275aaa85cee19a1dcfff6ae9df56da" +dependencies = [ + "bitflags 1.3.2", + "combine", + "libc", + "mach2", + "nix", + "sysctl", + "thiserror 1.0.69", + "widestring", + "windows", +] + [[package]] name = "mock_instant" version = "0.6.0" @@ -6051,6 +6170,8 @@ dependencies = [ "bitflags 1.3.2", "cfg-if", "libc", + "memoffset", + "pin-utils", ] [[package]] @@ -8742,6 +8863,20 @@ dependencies = [ "syn 2.0.114", ] +[[package]] +name = "sysctl" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec7dddc5f0fee506baf8b9fdb989e242f17e4b11c61dfbb0635b705217199eea" +dependencies = [ + "bitflags 2.10.0", + "byteorder", + "enum-as-inner", + "libc", + "thiserror 1.0.69", + "walkdir", +] + [[package]] name = "system-configuration" version = "0.6.1" @@ -9895,6 +10030,12 @@ dependencies = [ "rustls-pki-types", ] +[[package]] +name = "widestring" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72069c3113ab32ab29e5584db3c6ec55d416895e60715417b5b883a357c3e471" + [[package]] name = "winapi" version = "0.3.9" @@ -9926,6 +10067,15 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" +[[package]] +name = "windows" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f" +dependencies = [ + "windows-targets 0.48.5", +] + [[package]] name = "windows-core" version = "0.62.2" diff --git a/Cargo.toml b/Cargo.toml index 6e5ea4ee59a..954fdf8f840 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -91,6 +91,7 @@ half = { "version" = "2.1", default-features = false, features = [ "num-traits", "std", ] } +hnsw_rs = "0.3" lance-bitpacking = { version = "=2.1.0-beta.0", path = "./rust/compression/bitpacking" } bitvec = "1" bytes = "1.4" diff --git a/result.log b/result.log index 88dbf84a70e..4df6b442121 100644 --- a/result.log +++ b/result.log @@ -1,10429 +1,7447 @@ [ec2-user@ip-172-31-76-18 lance]$ RUST_LOG=debug DATASET_PREFIX=s3://gh-dev-us-east-1/t39 cargo test -p lance region_writer_tests::test_region_writer_s3 -- --nocapture --ignored warning: lance-linalg@2.1.0-beta.0: fp16kernels feature is not enabled, skipping build of fp16 kernels Compiling lance v2.1.0-beta.0 (/data/lance/rust/lance) - Finished `test` profile [unoptimized + debuginfo] target(s) in 56.50s + Finished `test` profile [unoptimized + debuginfo] target(s) in 1m 56s Running unittests src/lib.rs (target/debug/deps/lance-0b12383e8102b815) running 1 test -[TEST] Creating dataset at s3://gh-dev-us-east-1/t39/test_s3_624b79fe-0b74-4324-be53-b288a085af44 +[TEST] Creating dataset at s3://gh-dev-us-east-1/t39/test_s3_a741fe1c-cd8d-4fe7-9fea-35a0a97fcc23 +[TEST] Creating IVF-PQ index on dataset... +[TEST] IVF-PQ index creation took 25.32551982s [TEST] Config: flush_interval=Some(100ms), wal_buffer_size=10485760 -[06:50:07.150][WRITER] Creating wal_flusher with flush_interval=Some(100ms) -[06:50:07.151][EXECUTOR] Adding handler task 'wal_flusher' -[06:50:07.151][WRITER] Adding memtable_flusher handler -[06:50:07.151][EXECUTOR] Adding handler task 'memtable_flusher' -[06:50:07.151][WRITER] memtable_flusher handler added -[06:50:07.151][EXECUTOR] Adding handler task 'writer' +[07:43:45.917][WRITER] Creating wal_flusher with flush_interval=Some(100ms) +[07:43:45.917][EXECUTOR] Adding handler task 'wal_flusher' +[07:43:45.917][WRITER] Adding memtable_flusher handler +[07:43:45.917][EXECUTOR] Adding handler task 'memtable_flusher' +[07:43:45.917][WRITER] memtable_flusher handler added +[07:43:45.917][EXECUTOR] Adding handler task 'writer' [TEST] Writing 10000 batches x 20 rows = 200000 total rows -[06:50:13.518][PUT] put #0 -[06:50:13.518][EXECUTOR] Task 'wal_flusher' spawned and starting -[06:50:13.518][DISPATCHER] Task 'wal_flusher' started, has 0 tickers -[06:50:13.518][EXECUTOR] Task 'memtable_flusher' spawned and starting -[06:50:13.518][DISPATCHER] Task 'memtable_flusher' started, has 0 tickers -[06:50:13.518][EXECUTOR] Task 'writer' spawned and starting -[06:50:13.518][DISPATCHER] Task 'writer' started, has 0 tickers -[06:50:13.518][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.519][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.519][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.519][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.519][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.519][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.519][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.519][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.519][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.520][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.520][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.520][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.520][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.520][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.520][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.520][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.520][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.521][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.521][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.521][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.521][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.521][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.521][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.521][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.521][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.522][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.522][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.522][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.522][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.522][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.522][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.522][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.523][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.523][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.523][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.523][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.523][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.523][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.523][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.523][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.524][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.524][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.524][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.524][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.524][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.524][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.524][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.524][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.525][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.525][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.525][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.525][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.525][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.525][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.525][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.525][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.526][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.526][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.526][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.526][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.526][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.526][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.526][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.526][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.527][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.527][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.527][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.527][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.527][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.527][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.527][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.527][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.528][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.528][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.528][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.528][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.528][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.528][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.528][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.528][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.529][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.529][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.529][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.529][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.529][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.529][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.529][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.529][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.530][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.530][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.530][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.530][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.530][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.530][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.530][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.530][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.531][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.531][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.531][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.531][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 100 batches in 13.415698ms -[06:50:13.531][PUT] put #100 -[06:50:13.531][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.531][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.531][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.531][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.532][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.532][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.532][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.532][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.532][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.532][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.532][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.532][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.533][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.533][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.533][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.533][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.533][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.533][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.533][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.533][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.534][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.534][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.534][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.534][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.534][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.534][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.534][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.534][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.535][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.535][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.535][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.535][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.535][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.535][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.535][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.535][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.536][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.536][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.536][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.536][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.536][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.536][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.536][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.536][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.537][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.537][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.537][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.537][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.537][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.537][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.537][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.537][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.538][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.538][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.538][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.538][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.538][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.538][WAL_SIZE_TRIGGER] pending_bytes=10486344, threshold #1 crossed (10MB), triggering flush to batch #157 -[06:50:13.538][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 157, done: None } -[06:50:13.538][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #157, starting flush -[06:50:13.539] [WAL_FLUSH] Flushing range 0..157 (157 batches, 3140 rows) to WAL #1 -[06:50:13.551][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.551][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.551][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.551][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.552][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.552][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.552][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.552][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.557][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.557][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.557][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.557][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.557][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.557][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.557][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.557][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.558][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.558][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.558][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.558][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.558][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.559][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.559][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.559][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.559][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.559][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.560][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.560][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 200 batches in 42.170715ms -[06:50:13.560][PUT] put #200 -[06:50:13.560][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.560][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.560][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.561][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.561][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.561][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.561][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.561][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.562][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.562][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.562][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.562][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.562][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.562][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.562][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 300 batches in 58.790528ms -[06:50:13.576][PUT] put #300 -[06:50:13.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.578][WAL_SIZE_TRIGGER] pending_bytes=20972688, threshold #2 crossed (20MB), triggering flush to batch #314 -[06:50:13.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 400 batches in 71.411304ms -[06:50:13.589][PUT] put #400 -[06:50:13.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.595][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.595][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.595][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.595][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.595][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.595][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.595][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.595][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.598][WAL_SIZE_TRIGGER] pending_bytes=31459032, threshold #3 crossed (30MB), triggering flush to batch #471 -[06:50:13.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.599][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.599][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.599][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.599][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.599][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.599][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.599][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.599][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.599][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.600][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.600][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.600][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.600][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.600][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.600][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.600][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.600][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 500 batches in 83.982185ms -[06:50:13.602][PUT] put #500 -[06:50:13.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.604][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.604][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.604][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.604][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.604][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.604][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.604][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.604][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.608][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.608][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.608][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.608][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.608][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.608][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.608][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.608][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.609][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.609][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.609][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.609][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.609][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.609][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.609][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.609][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.610][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.610][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.610][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.610][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.610][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.610][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.610][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.610][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.611][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.611][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.611][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.611][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.611][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.611][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.611][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.611][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.612][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.612][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.612][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.612][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.612][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.612][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.612][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.612][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.613][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.613][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.613][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.613][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.613][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.613][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.613][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.613][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.614][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.614][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.614][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.614][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.614][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 600 batches in 96.532228ms -[06:50:13.614][PUT] put #600 -[06:50:13.614][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.614][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.614][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.615][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.615][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.615][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.615][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.615][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.615][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.615][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.615][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.616][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.616][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.616][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.616][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.616][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.616][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.616][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.616][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.617][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.617][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.617][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.617][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.617][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.617][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.617][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.617][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.618][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.618][WAL_SIZE_TRIGGER] pending_bytes=41945376, threshold #4 crossed (40MB), triggering flush to batch #628 -[06:50:13.618][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.618][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.618][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.618][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.618][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.618][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.618][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.619][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.619][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.619][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.619][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.619][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.619][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.619][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.619][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.620][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.620][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.620][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.620][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.620][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.620][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.620][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.620][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.624][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.624][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.624][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.624][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.624][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.624][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.624][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.624][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 700 batches in 109.056361ms -[06:50:13.627][PUT] put #700 -[06:50:13.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.637][WAL_SIZE_TRIGGER] pending_bytes=52431720, threshold #5 crossed (50MB), triggering flush to batch #785 -[06:50:13.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 800 batches in 121.58288ms -[06:50:13.639][PUT] put #800 -[06:50:13.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.645][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.645][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.645][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.645][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.645][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.645][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.645][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.645][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 900 batches in 134.149603ms -[06:50:13.652][PUT] put #900 -[06:50:13.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.657][WAL_SIZE_TRIGGER] pending_bytes=62918064, threshold #6 crossed (60MB), triggering flush to batch #942 -[06:50:13.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.659][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.659][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.659][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.659][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.659][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.659][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.659][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.659][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.660][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.660][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.660][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.660][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.660][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.660][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.660][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.660][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.661][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.661][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.661][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.661][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.661][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.661][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.661][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.661][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.662][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.662][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.662][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.662][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.662][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.662][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.662][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.662][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.663][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.663][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.663][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.663][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.663][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.663][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.663][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.663][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.664][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.664][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.664][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.664][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.664][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.664][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.664][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 1000 batches in 146.837604ms -[06:50:13.664][PUT] put #1000 -[06:50:13.665][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.665][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.665][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.665][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.665][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.665][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.665][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.665][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.666][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.666][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.666][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.666][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.666][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.666][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.666][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.666][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.667][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.667][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.667][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.667][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.667][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.667][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.667][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.667][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.668][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.668][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.668][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.668][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.668][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.668][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.668][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.668][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.669][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.669][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.669][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.669][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.669][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.669][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.669][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.669][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.670][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.670][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.670][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.670][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.670][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.670][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.670][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.670][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.671][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.671][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.671][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.671][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.671][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.671][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.671][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.671][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.672][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.672][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.672][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.672][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.672][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.672][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.672][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.672][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.673][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.673][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.673][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.673][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.673][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.673][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.673][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.673][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.674][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.674][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.674][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.674][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.674][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.674][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.674][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.674][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.675][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.675][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.675][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.675][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.675][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.675][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.675][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.675][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.676][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.676][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.676][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.676][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.676][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.676][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.676][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.676][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.677][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.677][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.677][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.677][WAL_SIZE_TRIGGER] pending_bytes=73404408, threshold #7 crossed (70MB), triggering flush to batch #1099 -[06:50:13.677][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 1100 batches in 159.465855ms -[06:50:13.677][PUT] put #1100 -[06:50:13.677][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.677][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.677][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.677][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.678][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.678][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.678][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.678][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.678][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.678][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.678][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.679][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.679][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.679][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.679][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.679][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.679][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.679][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.679][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.679][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.680][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.680][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.680][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.680][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.680][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.680][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.680][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.680][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.681][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.681][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.681][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.681][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.681][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.681][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.681][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.681][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.682][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.682][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.682][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.682][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.682][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.682][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.682][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.682][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.683][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.683][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.683][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.683][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.683][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.683][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.683][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.683][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.684][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.684][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.684][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.684][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.684][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.684][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.684][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.684][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.685][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.685][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.685][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.685][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.685][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.685][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.685][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.685][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.686][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.686][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.686][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.686][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.686][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.686][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.686][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.686][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.687][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.687][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.687][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.687][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.687][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.687][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.687][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.687][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.688][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.688][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.688][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.688][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.688][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.688][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.688][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.689][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.689][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.689][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.689][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.689][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.689][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.689][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.689][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.690][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 1200 batches in 172.022841ms -[06:50:13.690][PUT] put #1200 -[06:50:13.690][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.690][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.690][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.690][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.690][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.690][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.690][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.691][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.691][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.691][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.691][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.691][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.691][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.691][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.691][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.692][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.692][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.692][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.692][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.692][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.692][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.692][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.692][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.693][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.693][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.693][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.693][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.693][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.693][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.693][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.693][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.694][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.694][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.694][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.694][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.694][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.694][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.694][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.694][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.695][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.695][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.695][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.695][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.695][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.695][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.695][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.695][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.696][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.696][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.696][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.696][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.696][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.696][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.696][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.696][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.697][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.697][WAL_SIZE_TRIGGER] pending_bytes=83890752, threshold #8 crossed (80MB), triggering flush to batch #1256 -[06:50:13.697][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.697][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.697][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.697][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.697][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.697][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.697][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.698][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.698][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.698][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.698][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.698][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.698][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.698][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.698][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.699][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.699][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.699][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.699][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.699][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.699][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.699][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.699][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.700][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.700][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.700][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.700][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.700][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.700][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.700][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.700][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.701][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.701][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.701][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.701][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.701][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.701][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.701][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.701][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.702][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.702][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.702][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.702][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.702][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 1300 batches in 184.563337ms -[06:50:13.702][PUT] put #1300 -[06:50:13.702][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.702][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.702][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.703][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.703][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.703][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.703][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.703][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.703][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.703][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.703][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.704][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.704][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.704][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.704][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.704][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.704][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.704][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.704][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.705][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.705][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.705][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.705][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.705][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.705][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.705][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.705][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.706][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.706][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.706][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.706][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.706][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.706][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.706][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.706][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.707][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.707][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.707][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.707][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.707][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.707][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.707][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.708][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.708][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.708][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.708][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.708][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.708][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.708][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.708][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.709][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.709][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.709][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.709][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.709][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.709][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.709][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.709][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.710][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.710][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.710][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.710][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.710][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.710][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.710][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.710][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.711][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.711][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.711][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.711][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.711][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.711][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.711][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.711][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.712][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.712][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.712][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.712][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.712][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.712][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.712][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.712][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.713][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.713][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.713][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.713][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.713][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.713][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.713][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.713][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.714][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.714][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.714][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.714][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.714][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.714][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.714][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.714][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.715][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.715][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 1400 batches in 197.170483ms -[06:50:13.715][PUT] put #1400 -[06:50:13.715][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.715][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.715][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.715][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.715][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.715][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.716][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.716][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.716][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.716][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.716][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.716][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.716][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.716][WAL_SIZE_TRIGGER] pending_bytes=94377096, threshold #9 crossed (90MB), triggering flush to batch #1413 -[06:50:13.717][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.717][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.717][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.717][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.717][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.717][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.717][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.717][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.718][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.718][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.718][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.718][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.718][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.718][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.718][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.718][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.719][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.719][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.719][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.719][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.719][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.719][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.719][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.719][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.720][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.720][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.720][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.720][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.720][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.720][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.720][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.720][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.721][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.721][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.721][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.721][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.721][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.721][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.721][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.721][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.721][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.722][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.722][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.722][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.722][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.722][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.722][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.722][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.722][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.723][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.723][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.723][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.723][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.723][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.723][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.723][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.723][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.724][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.724][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.724][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.724][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.724][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.724][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.724][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.724][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.725][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.725][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.725][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.725][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.725][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.725][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.725][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.725][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.726][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.726][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.726][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.726][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.726][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.726][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.726][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.727][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.727][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.727][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.727][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.727][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.727][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.727][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 1500 batches in 209.775051ms -[06:50:13.727][PUT] put #1500 -[06:50:13.727][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.728][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.728][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.728][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.728][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.728][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.728][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.728][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.728][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.729][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.729][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.729][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.729][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.729][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.729][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.729][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.729][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.730][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.730][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.730][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.730][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.730][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.730][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.730][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.730][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.731][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.731][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.731][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.731][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.731][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.731][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.731][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.731][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.732][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.732][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.732][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.732][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.732][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.732][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.732][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.732][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.733][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.733][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.733][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.733][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.733][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.733][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.733][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.733][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.734][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.734][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.734][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.734][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.734][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.734][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.734][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.734][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.735][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.735][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.735][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.735][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.735][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.735][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.735][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.735][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.736][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.736][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.736][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.736][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.736][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.736][WAL_SIZE_TRIGGER] pending_bytes=104863440, threshold #10 crossed (100MB), triggering flush to batch #1570 -[06:50:13.736][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.736][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.736][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.737][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.737][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.737][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.737][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.737][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.737][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.737][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.737][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.738][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.738][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.738][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.738][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.738][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.738][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.738][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.738][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.739][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.739][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.739][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.739][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.739][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.739][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.739][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.739][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.740][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.740][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.740][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 1600 batches in 222.361104ms -[06:50:13.740][PUT] put #1600 -[06:50:13.740][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.740][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.740][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.740][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.741][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.741][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.741][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.741][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.741][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.741][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.741][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.741][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.742][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.742][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.742][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.742][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.742][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.742][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.742][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.742][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.743][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.743][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.743][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.743][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.743][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.743][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.743][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.743][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.744][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.744][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.744][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.744][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.744][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.744][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.744][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.744][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.745][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.745][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.745][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.745][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.745][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.745][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.745][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.745][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.746][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.746][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.746][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.746][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.746][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.746][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.746][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.746][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.747][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.747][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.747][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.747][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.747][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.747][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.747][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.747][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.748][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.748][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.748][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.748][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.748][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.748][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.748][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.748][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.749][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.749][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.749][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.749][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.749][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.749][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.749][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.749][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.750][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.750][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.750][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.750][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.750][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.750][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.750][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.750][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.751][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.751][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.751][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.751][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.751][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.751][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.751][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.751][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.752][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.752][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.752][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.752][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.752][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.752][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.752][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.752][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 1700 batches in 234.936061ms -[06:50:13.753][PUT] put #1700 -[06:50:13.753][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.753][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.753][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.753][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.753][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.753][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.753][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.753][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.754][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.754][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.754][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.754][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.754][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.754][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.754][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.754][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.755][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.755][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.755][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.755][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.755][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.755][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.755][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.755][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.756][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.756][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.756][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.756][WAL_SIZE_TRIGGER] pending_bytes=115349784, threshold #11 crossed (110MB), triggering flush to batch #1727 -[06:50:13.756][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.756][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.756][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.756][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.757][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.757][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.757][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.757][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.757][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.757][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.757][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.757][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.758][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.758][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.758][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.758][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.758][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.758][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.758][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.758][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.759][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.759][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.759][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.759][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.759][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.759][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.759][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.759][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.760][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.760][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.760][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.760][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.760][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.760][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.760][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.760][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.761][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.761][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.761][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.761][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.761][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.761][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.761][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.761][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.762][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.762][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.762][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.762][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.762][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.762][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.762][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.762][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.763][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.763][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.763][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.763][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.763][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.763][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.763][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.763][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.764][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.764][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.764][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.764][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.764][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.764][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.764][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.764][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.765][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.765][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.765][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.765][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.765][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 1800 batches in 247.575311ms -[06:50:13.765][PUT] put #1800 -[06:50:13.765][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.765][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.765][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.766][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.766][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.766][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.766][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.766][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.766][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.766][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.767][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.767][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.767][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.767][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.767][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.767][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.767][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.767][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.768][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.768][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.768][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.768][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.768][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.768][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.768][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.768][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.769][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.769][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.769][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.769][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.769][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.769][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.769][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.769][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.770][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.770][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.770][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.770][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.770][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.770][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.770][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.770][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.771][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.771][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.771][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.771][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.771][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.771][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.771][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.771][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.772][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.773] [WAL_FLUSH] WAL #1 complete: S3=226ms, index=0ms, 157 batches -[06:50:13.773][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 314, done: None } -[06:50:13.773][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #314, starting flush -[06:50:13.773] [WAL_FLUSH] Flushing range 157..314 (157 batches, 3140 rows) to WAL #2 -[06:50:13.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 1900 batches in 277.524087ms -[06:50:13.795][PUT] put #1900 -[06:50:13.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.797][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.797][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.797][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.797][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 2000 batches in 291.531722ms -[06:50:13.809][PUT] put #2000 -[06:50:13.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.814][WAL_SIZE_TRIGGER] pending_bytes=125842408, threshold #12 crossed (120MB), triggering flush to batch #2041 -[06:50:13.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 2100 batches in 304.150407ms -[06:50:13.822][PUT] put #2100 -[06:50:13.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.823][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.834][WAL_SIZE_TRIGGER] pending_bytes=136328752, threshold #13 crossed (130MB), triggering flush to batch #2198 -[06:50:13.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 2200 batches in 316.870933ms -[06:50:13.835][PUT] put #2200 -[06:50:13.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 2300 batches in 329.425239ms -[06:50:13.847][PUT] put #2300 -[06:50:13.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.854][WAL_SIZE_TRIGGER] pending_bytes=146815096, threshold #14 crossed (140MB), triggering flush to batch #2355 -[06:50:13.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 2400 batches in 342.045055ms -[06:50:13.860][PUT] put #2400 -[06:50:13.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.861][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.862][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.863][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.863][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.863][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.863][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.863][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.863][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.863][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.863][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.864][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.864][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.864][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.864][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.864][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.864][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.864][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.864][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.865][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.865][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.865][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.865][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.865][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.865][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.865][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.865][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.866][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.866][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.866][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.866][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.866][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.866][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.866][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.866][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.867][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.867][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.867][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.867][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.867][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.867][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.867][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.868][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.868][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.868][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.868][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.868][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.868][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.868][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.868][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.869][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.869][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.869][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.869][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.869][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.869][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.869][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.869][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.870][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.870][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.870][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.870][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.870][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.870][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.870][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.870][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.871][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.871][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.871][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.871][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.871][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.871][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.871][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.871][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.872][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.872][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.872][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.872][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.872][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.872][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 2500 batches in 354.649438ms -[06:50:13.872][PUT] put #2500 -[06:50:13.872][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.872][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.873][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.873][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.873][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.873][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.873][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.873][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.873][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.873][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.874][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.874][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.874][WAL_SIZE_TRIGGER] pending_bytes=157301440, threshold #15 crossed (150MB), triggering flush to batch #2512 -[06:50:13.874][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.874][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.874][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.874][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.874][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.875][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.875][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.875][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.875][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.875][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.875][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.875][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.875][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.876][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.876][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.876][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.876][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.876][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.876][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.876][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.876][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.877][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.877][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.877][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.877][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.877][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.877][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.877][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.877][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.878][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.878][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.878][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.878][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.878][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.878][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.878][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.878][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.879][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.879][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.879][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.879][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.879][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.879][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.879][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.879][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.880][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.880][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.880][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.880][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.880][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.880][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.880][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.880][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.881][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.881][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.881][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.881][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.881][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.881][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.881][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.881][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.882][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.882][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.882][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.882][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.882][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.882][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.882][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.882][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.883][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.883][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.883][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.883][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.883][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.883][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.883][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.883][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.884][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.884][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.884][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.884][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.884][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.884][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.884][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.884][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.885][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.885][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.885][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 2600 batches in 367.300923ms -[06:50:13.885][PUT] put #2600 -[06:50:13.885][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.885][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.885][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.885][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.885][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.886][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.886][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.886][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.886][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.886][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.886][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.886][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.886][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.887][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.887][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.887][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.887][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.887][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.887][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.887][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.887][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.888][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.888][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.888][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.888][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.888][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.888][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.888][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.888][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.889][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.889][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.889][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.889][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.889][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.889][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.889][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.889][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.890][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.890][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.890][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.890][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.890][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.890][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.890][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.890][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.891][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.891][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.891][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.891][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.891][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.891][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.891][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.891][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.892][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.892][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.892][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.892][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.892][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.892][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.892][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.892][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.893][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.893][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.893][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.893][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.893][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.893][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.893][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.893][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.894][WAL_SIZE_TRIGGER] pending_bytes=167787784, threshold #16 crossed (160MB), triggering flush to batch #2669 -[06:50:13.894][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.894][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.894][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.894][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.894][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.894][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.894][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.895][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.895][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.895][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.895][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.895][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.895][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.895][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.895][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.896][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.896][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.896][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.896][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.896][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.896][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.896][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.896][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.897][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.897][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.897][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.897][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.897][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.897][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.897][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.897][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 2700 batches in 379.92433ms -[06:50:13.898][PUT] put #2700 -[06:50:13.898][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.898][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.898][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.898][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.898][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.898][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.898][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.898][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.899][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.899][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.899][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.899][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.899][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.899][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.899][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.899][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.900][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.900][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.900][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.900][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.900][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.900][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.900][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.900][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.901][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.901][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.901][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.901][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.901][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.901][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.901][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.901][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.902][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.902][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.902][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.902][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.902][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.902][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.902][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.902][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.903][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.903][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.903][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.903][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.903][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.903][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.903][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.903][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.904][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.904][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.904][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.904][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.904][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.904][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.904][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.904][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.905][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.905][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.905][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.905][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.905][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.905][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.905][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.905][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.906][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.906][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.906][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.906][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.906][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.906][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.906][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.906][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.907][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.907][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.907][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.907][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.907][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.907][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.907][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.907][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.908][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.908][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.908][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.908][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.908][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.908][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.908][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.908][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.909][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.909][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.909][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.909][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.909][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.909][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.909][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.909][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.910][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.910][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.910][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.910][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 2800 batches in 392.473609ms -[06:50:13.910][PUT] put #2800 -[06:50:13.910][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.910][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.910][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.911][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.911][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.911][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.911][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.911][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.911][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.911][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.911][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.912][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.912][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.912][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.912][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.912][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.912][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.912][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.912][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.913][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.913][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.913][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.913][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.913][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.913][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.913][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.913][WAL_SIZE_TRIGGER] pending_bytes=178274128, threshold #17 crossed (170MB), triggering flush to batch #2826 -[06:50:13.913][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.914][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.914][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.914][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.914][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.914][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.914][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.914][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.914][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.915][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.915][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.915][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.915][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.915][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.915][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.915][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.915][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.916][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.916][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.916][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.916][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.916][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.916][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.916][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.916][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.917][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.917][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.917][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.917][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.917][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.917][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.917][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.917][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.918][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.918][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.918][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.918][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.918][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.918][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.918][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.918][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.919][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.919][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.919][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.919][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.919][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.919][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.919][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.919][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.920][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.920][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.920][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.920][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.920][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.920][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.920][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.920][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.921][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.921][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.921][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.921][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.921][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.921][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.921][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.921][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.922][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.922][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.922][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.922][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.922][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.922][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.922][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.922][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.923][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 2900 batches in 405.129383ms -[06:50:13.923][PUT] put #2900 -[06:50:13.923][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.923][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.923][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.923][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.923][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.923][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.924][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.924][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.924][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.924][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.924][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.924][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.924][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.924][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.925][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.925][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.925][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.925][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.925][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.925][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.925][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.925][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.926][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.927] [WAL_FLUSH] WAL #2 complete: S3=145ms, index=0ms, 157 batches -[06:50:13.927][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 471, done: None } -[06:50:13.927][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #471, starting flush -[06:50:13.927] [WAL_FLUSH] Flushing range 314..471 (157 batches, 3140 rows) to WAL #3 -[06:50:13.941][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.941][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.941][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.941][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.942][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.943][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.943][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.943][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.943][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.943][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.943][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.943][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.943][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.944][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.944][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.945][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.945][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.945][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.945][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.945][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.946][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.946][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.946][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.946][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.946][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.947][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.947][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.947][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.947][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.947][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.947][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.947][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.947][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.948][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.948][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.948][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.948][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.948][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.948][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.948][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.948][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.949][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.949][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.949][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.949][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.949][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.949][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.949][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.949][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.950][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.950][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.950][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.950][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.950][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.950][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.950][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.950][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.951][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.951][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.951][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.951][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.951][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.951][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.951][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.951][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.952][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.952][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.952][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.952][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.952][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.952][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.952][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.952][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.953][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.953][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.953][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.953][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 3000 batches in 435.424106ms -[06:50:13.953][PUT] put #3000 -[06:50:13.953][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.953][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.953][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.953][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.954][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.954][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.954][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.954][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.954][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.954][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.954][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.954][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.955][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.955][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.955][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.955][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.955][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.955][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.955][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.955][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.956][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.956][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.956][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.956][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.956][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.956][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.956][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.956][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.957][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.957][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.957][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.957][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.957][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.957][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.957][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.957][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.958][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.958][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.958][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.958][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.958][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.958][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.958][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.958][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.959][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.959][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.959][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.959][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.959][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.959][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.959][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.959][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.960][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.960][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.960][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.960][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.960][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.960][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.960][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.960][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.961][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.961][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.961][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.961][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.961][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.961][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.961][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.961][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.962][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.962][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.962][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.962][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.962][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.962][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.962][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.962][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.963][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.963][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.963][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.963][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.963][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.963][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.963][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.963][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.964][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.964][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.964][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.964][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.964][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.964][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.964][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.964][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.965][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.965][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.965][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.965][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.965][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.965][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.965][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.965][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 3100 batches in 447.954381ms -[06:50:13.966][PUT] put #3100 -[06:50:13.966][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.966][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.966][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.966][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.966][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.966][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.966][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.966][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.967][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.967][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.967][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.967][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.967][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.967][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.967][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.968][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.968][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.968][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.968][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.968][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.968][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.968][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.968][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.969][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.969][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.969][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.969][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.969][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.969][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.969][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.969][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.970][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.970][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.970][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.970][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.970][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.970][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.970][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.970][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.971][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.971][WAL_SIZE_TRIGGER] pending_bytes=188766752, threshold #18 crossed (180MB), triggering flush to batch #3140 -[06:50:13.971][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.971][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.971][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.971][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.971][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.971][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.971][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.972][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.972][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.972][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.972][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.972][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.972][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.972][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.972][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.973][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.973][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.973][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.973][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.973][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.973][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.973][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.973][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.974][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.974][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.974][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.974][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.974][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.974][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.974][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.974][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.975][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.975][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.975][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.975][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.975][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.975][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.975][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.975][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.976][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.976][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.976][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.976][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.976][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.976][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.976][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.976][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.977][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.977][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.977][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.977][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.977][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.977][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.977][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.977][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.978][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.978][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.978][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.978][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.978][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 3200 batches in 460.535155ms -[06:50:13.978][PUT] put #3200 -[06:50:13.978][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.978][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.978][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.979][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.979][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.979][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.979][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.979][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.979][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.979][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.979][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.980][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.980][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.980][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.980][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.980][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.980][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.980][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.980][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.981][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.981][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.981][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.981][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.981][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.981][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.981][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.981][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.982][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.982][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.982][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.982][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.982][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.982][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.982][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.982][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.983][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.983][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.983][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.983][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.983][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.983][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.983][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.983][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.984][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.984][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.984][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.984][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.984][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.984][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.984][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.984][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.985][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.985][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.985][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.985][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.985][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.985][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.985][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.985][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.986][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.986][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.986][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.986][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.986][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.986][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.986][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.986][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.987][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.987][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.987][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.987][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.987][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.987][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.987][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.987][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.988][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.988][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.988][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.988][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.988][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.988][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.988][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.988][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.989][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.989][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.989][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.989][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.989][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.989][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.989][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.989][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.990][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.990][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.990][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.990][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.990][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.990][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.990][WAL_SIZE_TRIGGER] pending_bytes=199253096, threshold #19 crossed (190MB), triggering flush to batch #3297 -[06:50:13.990][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.990][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.991][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 3300 batches in 473.123997ms -[06:50:13.991][PUT] put #3300 -[06:50:13.991][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.991][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.991][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.991][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.991][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.991][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.992][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.992][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.992][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.992][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.992][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.992][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.992][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.992][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.993][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.993][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.993][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.993][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.993][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.993][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.993][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.993][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.994][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.994][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.994][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.994][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.994][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.994][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.994][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.994][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.995][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.995][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.995][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.995][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.995][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.995][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.995][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.995][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.996][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.996][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.996][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.996][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.996][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.996][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.996][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.996][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.997][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.997][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.997][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.997][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.997][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.997][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.997][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.997][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.998][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.998][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.998][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.998][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.998][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.998][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.998][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.998][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.999][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.999][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.999][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.999][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.999][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.999][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.999][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:13.999][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.000][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.000][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.000][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.000][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.000][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.000][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.000][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.000][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.001][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.001][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.001][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.001][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.001][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.001][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.001][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.001][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.002][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.002][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.002][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.002][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.002][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.002][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.002][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.002][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.003][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.003][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.003][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.003][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.003][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.003][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 3400 batches in 485.747521ms -[06:50:14.003][PUT] put #3400 -[06:50:14.003][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.004][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.004][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.004][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.004][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.004][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.004][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.004][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.004][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.005][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.005][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.005][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.005][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.005][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.005][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.005][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.005][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.006][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.006][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.006][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.006][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.006][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.006][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.006][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.006][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.007][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.007][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.007][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.007][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.007][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.007][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.007][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.007][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.008][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.008][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.008][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.008][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.008][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.008][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.008][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.008][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.009][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.009][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.009][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.009][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.009][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.009][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.009][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.009][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.010][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.010][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.010][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.010][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.010][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.010][WAL_SIZE_TRIGGER] pending_bytes=209739440, threshold #20 crossed (200MB), triggering flush to batch #3454 -[06:50:14.010][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.010][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.010][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.011][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.011][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.011][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.011][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.011][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.011][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.011][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.012][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.012][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.012][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.012][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.012][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.012][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.012][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.012][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.013][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.013][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.013][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.013][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.013][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.013][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.013][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.013][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.014][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.014][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.014][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.014][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.014][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.014][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.014][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.014][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.015][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.015][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.015][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.015][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.015][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.015][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.015][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.015][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.016][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.016][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.016][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.016][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 3500 batches in 498.417364ms -[06:50:14.016][PUT] put #3500 -[06:50:14.016][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.016][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.016][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.016][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.017][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.017][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.017][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.017][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.017][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.017][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.017][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.017][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.018][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.018][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.018][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.018][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.018][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.018][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.018][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.018][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.019][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.019][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.019][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.019][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.019][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.019][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.019][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.019][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.020][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.020][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.020][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.020][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.020][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.020][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.020][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.020][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.021][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.021][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.021][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.021][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.021][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.021][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.021][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.022][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.022][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.022][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.022][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.022][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.022][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.022][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.022][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.023][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.023][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.023][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.023][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.023][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.023][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.023][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.023][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.024][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.024][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.024][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.024][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.024][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.024][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.024][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.024][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.025][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.025][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.025][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.025][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.025][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.025][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.025][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.025][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.026][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.026][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.026][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.026][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.026][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.026][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.026][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.026][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.027][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.027][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.027][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.027][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.027][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.027][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.027][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.027][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.028][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.028][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.028][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.028][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.028][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.028][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.028][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.028][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.029][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 3600 batches in 511.050181ms -[06:50:14.029][PUT] put #3600 -[06:50:14.029][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.029][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.029][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.029][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.029][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.029][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.029][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.030][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.030][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.030][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.030][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.030][WAL_SIZE_TRIGGER] pending_bytes=220225784, threshold #21 crossed (210MB), triggering flush to batch #3611 -[06:50:14.030][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.030][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.030][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.031][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.031][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.031][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.031][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.031][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.031][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.031][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.031][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.032][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.032][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.032][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.032][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.032][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.032][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.032][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.032][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.033][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.033][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.033][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.033][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.033][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.033][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.033][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.033][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.034][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.034][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.034][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.034][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.034][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.034][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.034][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.034][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.035][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.035][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.035][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.035][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.035][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.035][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.035][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.035][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.036][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.036][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.036][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.036][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.036][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.036][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.036][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.036][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.037][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.037][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.037][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.037][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.037][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.037][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.037][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.037][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.038][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.038][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.038][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.038][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.038][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.038][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.038][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.038][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.039][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.039][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.039][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.039][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.039][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.039][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.039][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.039][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.040][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.040][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.040][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.040][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.040][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.040][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.040][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.040][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.041][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.041][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.041][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.041][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.041][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.041][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 3700 batches in 523.681856ms -[06:50:14.041][PUT] put #3700 -[06:50:14.041][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.041][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.042][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.042][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.042][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.042][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.042][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.042][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.042][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.042][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.043][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.043][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.043][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.043][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.043][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.043][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.043][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.043][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.044][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.044][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.044][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.044][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.044][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.044][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.044][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.044][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.045][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.045][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.045][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.045][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.045][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.045][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.045][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.045][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.046][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.046][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.046][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.046][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.046][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.046][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.046][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.046][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.047][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.047][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.047][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.047][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.047][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.047][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.047][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.047][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.048][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.048][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.048][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.048][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.048][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.048][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.048][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.049][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.049][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.049][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.049][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.049][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.049][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.049][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.049][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.050][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.050][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.050][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.050][WAL_SIZE_TRIGGER] pending_bytes=230712128, threshold #22 crossed (220MB), triggering flush to batch #3768 -[06:50:14.050][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.050][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.050][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.050][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.050][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.051][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.051][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.051][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.051][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.051][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.051][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.051][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.051][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.052][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.052][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.052][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.052][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.052][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.052][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.052][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.052][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.053][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.053][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.053][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.053][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.053][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.053][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.053][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.053][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.054][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.054][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.054][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 3800 batches in 536.321265ms -[06:50:14.054][PUT] put #3800 -[06:50:14.054][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.054][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.054][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.054][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.054][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.055][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.055][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.055][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.055][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.055][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.055][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.055][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.056][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.056][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.056][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.056][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.056][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.056][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.056][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.056][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.057][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.057][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.057][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.057][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.057][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.057][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.057][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.057][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.058][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.058][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.058][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.058][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.058][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.058][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.058][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.058][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.059][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.059][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.059][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.059][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.059][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.059][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.059][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.059][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.060][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.060][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.060][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.060][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.060][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.060][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.060][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.060][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.061][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.061][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.061][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.061][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.061][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.061][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.061][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.061][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.062][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.062][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.062][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.062][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.062][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.062][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.062][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.062][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.063][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.063][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.063][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.063] [WAL_FLUSH] WAL #3 complete: S3=129ms, index=0ms, 157 batches -[06:50:14.064][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 628, done: None } -[06:50:14.064][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #628, starting flush -[06:50:14.064] [WAL_FLUSH] Flushing range 471..628 (157 batches, 3140 rows) to WAL #4 -[06:50:14.077][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.077][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.077][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.077][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.078][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.078][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.078][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.079][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.079][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.079][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.079][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.080][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.080][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.080][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.080][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.080][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.080][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.080][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.081][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.081][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.081][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.081][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.081][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.081][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.081][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.082][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.082][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.082][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.082][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 3900 batches in 564.47102ms -[06:50:14.082][PUT] put #3900 -[06:50:14.082][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.082][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.082][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.083][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.083][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.083][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.083][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.083][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.083][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.083][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.083][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.084][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.084][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.084][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.084][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.084][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.084][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.084][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.084][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.085][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.085][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.085][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.085][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.085][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.085][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.085][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.085][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.086][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.086][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.086][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.086][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.086][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.086][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.086][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.086][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.087][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.087][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.087][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.087][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.087][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.087][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.087][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.087][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.088][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.088][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.088][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.088][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.088][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.088][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.088][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.088][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.089][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.089][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.089][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.089][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.089][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.089][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.089][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.089][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.090][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.090][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.090][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.090][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.090][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.090][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.090][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.090][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.091][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.091][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.091][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.091][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.091][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.091][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.091][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.092][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.092][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.092][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.092][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.092][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.092][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.092][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.092][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.093][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.093][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.093][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.093][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.093][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.093][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.093][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.093][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.094][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.094][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.094][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.094][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.094][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.094][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.094][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.094][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.095][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.095][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 4000 batches in 577.171503ms -[06:50:14.095][PUT] put #4000 -[06:50:14.095][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.095][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.095][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.095][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.095][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.095][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.096][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.096][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.096][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.096][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.096][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.096][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.096][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.096][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.097][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.097][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.097][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.097][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.097][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.097][DISPATCHER] Task 'memtable_flusher' received message: FlushMemTable { done: None } -[06:50:14.097][FLUSH_HANDLER] Received FlushMemTable: batches=4019, remaining=3981, pending_wal_bytes=236996856 -[06:50:14.097][MEMTABLE_FLUSH] Starting do_flush: 4019 batches, 236996856 pending WAL bytes -[06:50:14.097][FREEZE] Starting freeze_memtable -[06:50:14.097][FREEZE] WAL flush: pending_bytes=236996856, remaining_capacity=3981 -[06:50:14.344][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.344][WAL_TIME_TRIGGER] pending_bytes=237063648, interval elapsed, triggering flush to batch #4020 -[06:50:14.344] [WAL_FLUSH] WAL #4 complete: S3=275ms, index=0ms, 157 batches -[06:50:14.345][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 785, done: None } -[06:50:14.345][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #785, starting flush -[06:50:14.345] [WAL_FLUSH] Flushing range 628..785 (157 batches, 3140 rows) to WAL #6 -[06:50:14.359][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.360][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.361][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.364][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.365][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.367][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.368][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.368][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.368][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.368][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.368][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.368][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.368][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.369][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.369][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.369][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.369][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.370][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.370][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.370][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.370][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.370][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.371][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.371][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.371][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.371][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.372][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.372][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.372][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.373][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.374][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.374][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.375][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.375][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.375][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.375][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.375][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.375][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.375][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.375][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.376][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.376][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.376][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.377][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.377][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.377][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.377][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.377][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.377][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.377][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.378][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.378][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.378][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.378][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.379][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.379][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.379][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.379][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.379][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.379][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.380][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.380][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.380][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.380][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.380][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.383][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.384][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.384][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.384][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.384][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.384][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.384][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.385][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.387][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.387][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.387][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.387][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.387][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.387][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.388][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 4100 batches in 870.022008ms -[06:50:14.388][PUT] put #4100 -[06:50:14.388][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.388][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.388][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.388][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.388][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.388][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.388][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.389][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.390][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.390][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.390][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.391][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.391][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.391][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.391][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.391][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.391][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.391][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.391][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.392][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.392][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.392][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.392][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.392][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.392][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.392][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.392][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.392][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.393][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.393][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.393][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.393][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.393][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.393][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.393][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.393][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.394][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.394][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.394][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.394][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.394][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.394][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.394][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.394][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.395][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.395][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.395][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.395][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.395][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.395][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.395][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.395][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.396][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.396][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.396][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.396][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.396][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.396][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.396][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.396][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.397][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.397][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.397][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.397][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.397][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.397][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.397][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.397][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.398][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.398][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.398][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.398][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.398][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.398][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.398][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.398][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.399][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.399][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.399][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.399][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.399][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.399][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.399][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.399][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.400][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.400][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.400][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.400][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.400][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.400][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.400][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.400][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.401][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.401][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.401][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.401][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.401][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.401][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.401][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.401][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 4200 batches in 883.934647ms -[06:50:14.402][PUT] put #4200 -[06:50:14.402][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.402][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.402][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.402][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.402][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.402][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.402][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.402][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.403][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.403][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.403][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.403][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.403][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.403][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.403][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.403][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.404][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.404][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.404][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.404][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.404][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.404][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.404][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.404][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.405][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.405][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.405][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.405][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.405][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.405][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.405][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.405][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.406][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.406][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.406][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.406][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.406][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.406][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.406][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.406][WAL_SIZE_TRIGGER] pending_bytes=241211032, threshold #23 crossed (230MB), triggering flush to batch #4239 -[06:50:14.407][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.407][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.407][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.407][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.407][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.407][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.407][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.407][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.408][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.408][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.408][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.408][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.408][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.408][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.408][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.408][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.409][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.409][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.409][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.409][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.409][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.409][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.409][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.409][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.410][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.410][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.410][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.410][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.410][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.410][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.410][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.410][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.411][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.411][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.411][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.411][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.411][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.411][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.411][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.411][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.412][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.412][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.412][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.412][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.412][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.412][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.412][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.412][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.413][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.413][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.413][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.413][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.413][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.413][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.413][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.413][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.414][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.414][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.414][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.414][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.414][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 4300 batches in 896.530662ms -[06:50:14.414][PUT] put #4300 -[06:50:14.414][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.414][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.414][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.415][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.415][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.415][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.415][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.415][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.415][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.415][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.415][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.416][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.416][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.416][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.416][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.416][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.416][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.416][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.416][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.417][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.417][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.417][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.417][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.417][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.417][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.417][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.417][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.418][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.418][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.418][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.418][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.418][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.418][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.418][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.418][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.419][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.419][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.419][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.419][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.419][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.419][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.419][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.419][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.420][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.420][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.420][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.420][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.420][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.420][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.420][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.420][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.421][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.421][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.421][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.421][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.421][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.421][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.421][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.421][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.422][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.422][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.422][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.422][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.422][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.422][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.422][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.422][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.422][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.423][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.423][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.423][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.423][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.423][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.423][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.423][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.423][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.424][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.424][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.424][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.424][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.424][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.424][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.424][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.424][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.425][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.425][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.425][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.425][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.425][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.425][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.425][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.425][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.426][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.426][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.426][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.426][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.426][WAL_SIZE_TRIGGER] pending_bytes=251697376, threshold #24 crossed (240MB), triggering flush to batch #4396 -[06:50:14.426][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.426][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.426][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.427][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 4400 batches in 909.028424ms -[06:50:14.427][PUT] put #4400 -[06:50:14.427][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.427][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.427][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.427][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.427][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.427][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.427][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.428][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.428][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.428][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.428][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.428][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.428][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.428][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.428][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.429][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.429][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.429][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.429][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.429][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.429][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.429][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.429][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.430][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.430][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.430][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.430][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.430][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.430][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.430][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.430][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.431][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.431][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.431][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.431][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.431][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.431][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.431][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.431][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.432][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.432][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.432][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.432][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.432][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.432][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.432][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.432][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.433][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.433][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.434][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.434][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.434][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.434][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.434][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.434][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.435][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.435][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.435][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.435][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.435][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.435][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.435][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.435][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.436][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.436][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.436][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.436][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.436][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.436][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.436][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.436][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.437][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.437][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.437][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.437][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.437][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.437][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.437][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.437][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.438][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.438][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.438][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.438][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.438][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.438][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.438][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.438][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.439][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.439][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.439][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.439][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.439][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.439][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.439][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.439][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.440][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.440][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.440][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.440][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.440][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 4500 batches in 922.510022ms -[06:50:14.440][PUT] put #4500 -[06:50:14.440][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.440][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.440][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.441][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.441][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.441][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.441][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.441][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.441][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.441][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.441][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.442][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.442][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.442][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.442][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.442][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.442][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.442][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.442][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.443][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.443][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.443][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.443][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.443][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.443][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.443][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.443][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.444][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.444][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.444][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.444][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.444][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.444][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.444][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.444][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.444][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.445][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.445][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.445][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.445][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.445][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.445][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.445][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.445][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.446][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.446][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.446][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.446][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.446][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.446][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.446][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.446][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.447][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.447][WAL_SIZE_TRIGGER] pending_bytes=262183720, threshold #25 crossed (250MB), triggering flush to batch #4553 -[06:50:14.447][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.447][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.447][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.447][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.447][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.447][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.448][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.448][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.448][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.448][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.448][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.448][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.448][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.448][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.449][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.449][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.449][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.449][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.449][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.449][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.449][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.451][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.451][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.451][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.451][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.451][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.452][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.452][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.452][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.452][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.452][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.452][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.452][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.452][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.452][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.453][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.453][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.453][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.454][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.454][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.455][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.455][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.455][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.455][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.455][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.455][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.455][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 4600 batches in 937.769478ms -[06:50:14.455][PUT] put #4600 -[06:50:14.455][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.456][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.456][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.456][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.456][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.456][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.456][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.456][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.458][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.458][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.458][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.458][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.458][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.458][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.459][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.459][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.459][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.459][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.459][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.459][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.459][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.460][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.460][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.460][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.460][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.460][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.460][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.460][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.460][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.460][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.461][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.461][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.461][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.461][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.461][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.461][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.461][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.461][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.462][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.462][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.462][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.462][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.462][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.462][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.462][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.462][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.463][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.463][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.463][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.463][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.463][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.463][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.463][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.463][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.464][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.464][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.464][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.464][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.464][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.464][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.464][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.464][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.465][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.465][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.465][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.465][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.465][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.465][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.465][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.465][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.466][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.466][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.466][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.466][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.466][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.466][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.466][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.466][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.467][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.467][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.467][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.467][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.467][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.467][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.467][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.467][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.468][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.468][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.468][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.468][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.468][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.468][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.468][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.468][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.469][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.469][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.469][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.469][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.469][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.469][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 4700 batches in 951.666984ms -[06:50:14.469][PUT] put #4700 -[06:50:14.469][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.469][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.470][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.470][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.470][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.470][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.470][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.470][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.470][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.470][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.471][WAL_SIZE_TRIGGER] pending_bytes=272670064, threshold #26 crossed (260MB), triggering flush to batch #4710 -[06:50:14.471][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.471][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.471][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.471][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.471][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.471][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.471][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.472][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.472][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.472][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.472][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.472][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.472][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.472][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.472][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.472][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.473][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.473][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.473][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.473][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.473][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.473][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.473][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.473][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.474][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.474][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.474][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.474][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.474][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.474][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.474][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.474][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.475][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.475][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.475][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.475][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.475][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.475][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.475][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.475][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.476][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.476][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.476][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.476][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.476][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.476][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.476][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.476][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.477][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.477][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.477][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.477][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.477][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.477][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.477][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.477][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.478][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.478][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.478][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.478][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.478][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.478][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.478][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.478][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.479][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.479][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.479][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.479][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.479][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.479][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.479][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.479][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.479][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.480][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.480][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.480][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.480][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.480][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.480][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.480][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.480][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.481][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.481][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.481][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.481][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.481][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.481][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.481][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.481][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.482][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 4800 batches in 964.088567ms -[06:50:14.482][PUT] put #4800 -[06:50:14.482][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.482][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.482][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.482][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.482][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.482][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.483][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.483][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.483][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.483][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.483][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.483][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.483][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.483][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.483][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.484][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.484][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.484][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.484][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.484][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.484][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.484][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.484][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.485][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.485][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.485][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.485][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.485][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.485][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.485][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.485][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.486][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.486][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.486][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.486][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.486][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.486][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.486][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.486][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.487][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.487][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.487][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.487][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.487][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.487][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.487][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.487][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.487][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.488][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.488][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.488][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.488][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.488][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.488][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.488][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.488][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.489][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.489][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.489][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.489] [WAL_FLUSH] WAL #6 complete: S3=139ms, index=0ms, 157 batches -[06:50:14.490][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 942, done: None } -[06:50:14.490][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #942, starting flush -[06:50:14.490] [WAL_FLUSH] Flushing range 785..942 (157 batches, 3140 rows) to WAL #7 -[06:50:14.502][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.503][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.503][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.503][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.503][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.504][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.504][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.504][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.505][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.505][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.505][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.505][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.505][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.505][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.505][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.505][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.506][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.506][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.506][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.506][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.506][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.506][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.506][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.506][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.507][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.508][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.508][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.508][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.508][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.508][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.509][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.509][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.509][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.509][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.510][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.510][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.510][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.510][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.510][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.510][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.510][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 4900 batches in 992.956866ms -[06:50:14.511][PUT] put #4900 -[06:50:14.511][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.511][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.511][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.511][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.511][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.511][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.512][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.513][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.513][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.513][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.513][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.513][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.513][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.513][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.513][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.514][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.514][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.514][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.514][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.514][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.514][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.514][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.515][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.515][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.515][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.515][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.515][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.515][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.515][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.515][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.516][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.516][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.516][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.516][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.516][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.516][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.516][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.517][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.517][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.517][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.517][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.517][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.517][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.517][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.517][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.518][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.518][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.518][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.518][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.518][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.518][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.518][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.518][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.519][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.519][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.519][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.519][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.519][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.519][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.519][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.519][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.520][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.520][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.520][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.520][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.520][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.520][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.520][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.520][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.521][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.521][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.521][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.521][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.521][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.521][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.521][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.521][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.522][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.522][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.522][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.522][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.522][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.522][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.522][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.522][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.522][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.523][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.523][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.523][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.523][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.523][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.523][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.523][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.523][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.524][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.524][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.524][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.524][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.524][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.524][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 5000 batches in 1.006728702s -[06:50:14.524][PUT] put #5000 -[06:50:14.524][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.525][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.525][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.525][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.525][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.525][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.525][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.525][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.525][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.526][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.526][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.526][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.526][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.526][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.526][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.526][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.526][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.527][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.527][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.527][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.527][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.527][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.527][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.527][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.527][WAL_SIZE_TRIGGER] pending_bytes=283174976, threshold #27 crossed (270MB), triggering flush to batch #5024 -[06:50:14.527][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.528][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.528][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.528][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.528][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.528][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.530][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.530][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.530][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.530][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.530][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.530][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.530][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.531][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.531][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.531][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.531][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.531][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.531][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.531][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.531][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.532][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.532][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.532][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.532][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.532][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.532][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.532][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.534][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.534][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.534][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.534][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.534][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.534][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.535][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.535][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.535][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.535][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.535][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.535][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.535][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.535][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.536][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.536][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.536][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.536][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.537][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.538][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.538][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.538][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.538][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.538][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.538][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.538][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.538][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.539][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.539][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.539][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.539][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.539][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.539][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.539][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.539][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.539][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.540][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.540][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.540][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.540][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.540][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.540][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.540][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.540][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.541][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.541][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.541][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.541][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 5100 batches in 1.023479231s -[06:50:14.541][PUT] put #5100 -[06:50:14.541][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.541][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.541][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.542][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.542][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.542][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.542][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.542][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.542][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.542][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.542][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.543][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.543][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.543][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.543][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.543][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.543][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.543][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.543][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.543][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.544][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.544][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.544][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.544][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.544][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.544][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.544][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.544][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.545][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.545][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.545][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.545][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.545][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.545][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.545][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.545][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.546][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.546][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.546][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.546][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.546][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.546][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.546][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.546][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.547][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.547][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.547][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.547][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.547][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.547][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.547][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.547][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.548][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.548][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.548][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.548][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.548][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.548][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.548][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.548][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.549][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.549][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.549][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.549][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.549][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.549][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.549][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.549][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.550][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.550][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.550][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.550][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.550][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.550][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.550][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.550][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.551][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.551][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.551][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.551][WAL_SIZE_TRIGGER] pending_bytes=293607096, threshold #28 crossed (280MB), triggering flush to batch #5179 -[06:50:14.551][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.551][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.551][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.551][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.551][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.552][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.552][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.552][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.552][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.552][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.552][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.552][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.552][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 5200 batches in 1.035908508s -[06:50:14.554][PUT] put #5200 -[06:50:14.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.557][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.557][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.557][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.557][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.557][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.557][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.557][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.557][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.558][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.558][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.558][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.558][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.558][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.558][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.558][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.558][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.559][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.559][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.559][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.559][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.559][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.559][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.559][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.559][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.560][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.560][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.560][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.560][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.560][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.560][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.560][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.560][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.560][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.561][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.561][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.561][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.561][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.561][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.561][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.561][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.561][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.562][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.562][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.562][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.562][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.562][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.562][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.562][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.562][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 5300 batches in 1.048321646s -[06:50:14.566][PUT] put #5300 -[06:50:14.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.570][WAL_SIZE_TRIGGER] pending_bytes=304106520, threshold #29 crossed (290MB), triggering flush to batch #5335 -[06:50:14.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 5400 batches in 1.060853001s -[06:50:14.578][PUT] put #5400 -[06:50:14.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.590][WAL_SIZE_TRIGGER] pending_bytes=314605944, threshold #30 crossed (300MB), triggering flush to batch #5491 -[06:50:14.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 5500 batches in 1.0733889s -[06:50:14.591][PUT] put #5500 -[06:50:14.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.599][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.599][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.608][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.608][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.608][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.608][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.608][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.608] [WAL_FLUSH] WAL #7 complete: S3=113ms, index=0ms, 157 batches -[06:50:14.610][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 1099, done: None } -[06:50:14.610][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #1099, starting flush -[06:50:14.610] [WAL_FLUSH] Flushing range 942..1099 (157 batches, 3140 rows) to WAL #8 -[06:50:14.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 5600 batches in 1.105456908s -[06:50:14.623][PUT] put #5600 -[06:50:14.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 5700 batches in 1.12071355s -[06:50:14.638][PUT] put #5700 -[06:50:14.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.645][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.645][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.645][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.645][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.645][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.645][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.645][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.645][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 5800 batches in 1.133283194s -[06:50:14.651][PUT] put #5800 -[06:50:14.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.651][WAL_SIZE_TRIGGER] pending_bytes=325124728, threshold #31 crossed (310MB), triggering flush to batch #5803 -[06:50:14.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.659][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.659][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.659][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.659][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.659][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.659][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.659][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.659][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.660][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.660][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.660][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.660][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.660][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.660][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.660][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.660][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.661][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.661][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.661][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.661][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.661][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.661][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.661][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.661][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.662][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.662][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.662][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.662][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.662][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.662][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.662][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.662][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.663][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.663][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.663][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.663][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.663][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.663][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.663][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.663][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.664][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.664][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.664][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.664][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.664][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.664][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.664][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.664][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 5900 batches in 1.14690748s -[06:50:14.665][PUT] put #5900 -[06:50:14.665][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.665][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.665][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.665][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.665][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.665][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.665][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.665][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.666][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.666][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.666][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.666][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.666][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.666][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.666][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.666][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.667][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.667][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.667][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.667][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.669][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.669][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.669][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.669][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.669][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.669][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.669][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.670][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.670][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.670][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.670][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.670][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.670][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.670][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.670][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.671][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.671][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.671][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.673][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.673][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.673][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.673][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.673][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.673][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.673][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.673][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.674][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.674][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.674][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.674][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.674][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.674][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.674][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.674][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.675][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.675][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.677][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.677][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.677][WAL_SIZE_TRIGGER] pending_bytes=335556848, threshold #32 crossed (320MB), triggering flush to batch #5958 -[06:50:14.677][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.677][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.677][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.677][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.677][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.678][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.678][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.678][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.678][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.678][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.678][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.678][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.678][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.679][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.679][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.679][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.679][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.679][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.679][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.679][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.679][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.680][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.680][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.680][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.680][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.680][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.680][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.680][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.680][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.681][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.681][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.681][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.681][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.681][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.681][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.681][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.681][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.682][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.682][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.682][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.682][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.682][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 6000 batches in 1.164581132s -[06:50:14.682][PUT] put #6000 -[06:50:14.682][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.682][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.683][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.683][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.683][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.683][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.683][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.683][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.683][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.683][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.683][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.684][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.684][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.684][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.684][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.684][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.684][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.684][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.684][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.685][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.685][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.685][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.685][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.685][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.685][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.685][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.685][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.686][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.686][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.686][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.686][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.686][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.686][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.686][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.686][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.687][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.687][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.687][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.687][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.687][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.687][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.687][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.687][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.688][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.688][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.688][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.688][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.688][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.688][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.688][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.688][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.689][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.689][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.689][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.689][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.689][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.689][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.689][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.689][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.690][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.690][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.690][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.690][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.690][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.690][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.690][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.690][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.691][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.691][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.691][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.691][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.691][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.691][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.691][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.691][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.692][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.692][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.692][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.692][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.692][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.692][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.692][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.692][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.693][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.693][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.693][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.693][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.693][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.693][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.693][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.693][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.694][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.694][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.694][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.694][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.694][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.694][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.694][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.694][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.695][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 6100 batches in 1.17701578s -[06:50:14.695][PUT] put #6100 -[06:50:14.695][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.695][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.695][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.695][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.695][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.695][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.695][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.696][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.696][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.696][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.696][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.696][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.696][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.696][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.696][WAL_SIZE_TRIGGER] pending_bytes=346056272, threshold #33 crossed (330MB), triggering flush to batch #6114 -[06:50:14.696][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.697][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.697][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.697][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.697][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.697][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.697][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.697][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.697][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.698][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.698][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.698][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.698][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.698][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.698][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.698][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.699][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.699][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.699][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.699][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.699][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.699][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.699][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.699][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.699][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.700][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.700][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.700][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.700][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.700][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.700][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.700][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.700][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.701][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.701][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.701][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.701][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.701][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.701][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.701][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.701][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.702][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.702][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.702][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.702][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.702][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.702][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.702][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.702][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.703][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.703][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.703][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.703][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.703][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.703][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.703][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.703][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.704][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.704][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.704][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.704][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.704][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.704][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.704][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.704][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.705][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.705][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.705][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.705][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.705][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.705][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.705][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.705][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.706][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.706][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.706][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.706][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.706][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.706][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.706][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.706][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.707][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.707][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.707][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.707][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.707][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 6200 batches in 1.189541931s -[06:50:14.707][PUT] put #6200 -[06:50:14.707][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.707][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.707][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.708][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.708][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.708][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.708][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.708][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.708][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.708][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.708][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.709][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.709][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.709][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.709][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.709][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.709][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.709][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.709][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.710][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.710][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.710][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.710][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.710][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.710][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.710][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.710][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.711][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.711][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.711][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.711][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.711][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.711][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.711][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.711][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.712][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.712][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.712][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.712][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.712][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.712][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.712][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.712][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.713][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.713][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.713][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.713][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.713][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.713][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.713][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.713][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.714][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.714][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.714][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.714][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.714][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.714][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.714][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.714][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.715][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.715][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.715][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.715][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.715][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.715][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.715][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.715][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.716][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.716][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.716][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.716][WAL_SIZE_TRIGGER] pending_bytes=356555696, threshold #34 crossed (340MB), triggering flush to batch #6270 -[06:50:14.716][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.716][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.716][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.716][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.716][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.717][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.717][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.717][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.717][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.717][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.717][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.717][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.717][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.718][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.718][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.718][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.718][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.718][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.718][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.718][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.718][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.719][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.719][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.719][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.719][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.719][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.719][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.719][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.719][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.720][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 6300 batches in 1.202042693s -[06:50:14.720][PUT] put #6300 -[06:50:14.720][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.720][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.720][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.720][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.720][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.720][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.720][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.721][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.721][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.721][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.721][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.721][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.721][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.721][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.721][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.722][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.722][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.722][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.722][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.722][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.722][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.722][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.722][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.723][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.723][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.723][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.723][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.723][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.723][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.723][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.723][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.724][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.724][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.724][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.724][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.724][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.724][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.724][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.724][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.725][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.725][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.725][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.725][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.725][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.725][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.725][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.725][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.726][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.726][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.726][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.726][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.726][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.726][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.726][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.726][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.727][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.727][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.727][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.727][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.727][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.727][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.727][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.727][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.728][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.728][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.728][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.728][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.728][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.728][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.728][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.728][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.728][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.729][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.729][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.729][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.729][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.729][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.729][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.729][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.729][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.730][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.730][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.730][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.730][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.730][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.730][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.730][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.730][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.731][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.731][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.731][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.731][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.731][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.731][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.731][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.731][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.732][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.732][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.732][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.732][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 6400 batches in 1.214489547s -[06:50:14.732][PUT] put #6400 -[06:50:14.732][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.732][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.732][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.733][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.733][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.733][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.733][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.733][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.733][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.733][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.733][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.734][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.734][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.734][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.734][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.734][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.734][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.734][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.734][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.735][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.735][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.735][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.735][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.735][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.735][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.735][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.735][WAL_SIZE_TRIGGER] pending_bytes=367055120, threshold #35 crossed (350MB), triggering flush to batch #6426 -[06:50:14.735][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.736][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.736][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.736][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.736][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.736][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.736][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.736][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.736][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.737][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.737][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.737][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.737][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.737][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.737][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.737][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.737][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.738][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.738][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.738][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.738][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.738][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.738][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.738][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.738][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.739][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.739][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.739][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.739][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.739][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.739][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.739][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.739][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.740][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.740][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.740][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.740][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.740][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.740][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.740][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.740][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.741][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.741][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.741][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.741][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.741][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.741][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.741][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.741][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.742][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.742][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.742][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.742][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.742][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.742][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.742][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.742][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.743][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.743][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.743][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.743][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.743][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.743][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.743][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.743][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.744][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.744][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.744][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.744][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.744][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.744][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.744][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.744][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.745][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 6500 batches in 1.227028566s -[06:50:14.745][PUT] put #6500 -[06:50:14.745][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.745][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.745][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.745][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.745][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.745][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.745][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.746][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.748][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.748][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.748][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.748][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.748][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.748][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.748][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.748][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.749][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.749][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.749][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.749][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.749][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.749][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.749][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.749][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.750][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.751][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.751][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.752][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.752][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.752][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.752][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.752][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.752][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.752][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.752][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.753][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.753][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.753][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.753][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.753][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.753][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.753][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.753][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.754][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.755][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.755][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.755][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.756][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.756][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.756][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.756][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.756][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.756][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.756][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.756][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.756][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.757][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.757][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.757][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.757][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.757][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.757][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.757][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.757][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.758][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.758][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.758][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.758][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.758][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.758][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.758][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.758][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.759][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.759][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.759][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.759][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.759][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.759][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.759][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.759][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.760][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.760][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.760][WAL_SIZE_TRIGGER] pending_bytes=377554544, threshold #36 crossed (360MB), triggering flush to batch #6582 -[06:50:14.760][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.760][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.760][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.760][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.760][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.761][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.761][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.761][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.761][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.761][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.761][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.761][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.761][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.761][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.762][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.762][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.762][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.762][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 6600 batches in 1.244489913s -[06:50:14.762][PUT] put #6600 -[06:50:14.762][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.762][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.762][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.763][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.763][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.763][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.763][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.763][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.763][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.763][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.763][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.764][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.764][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.764][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.764][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.764][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.764][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.764][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.764][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.765][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.765][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.765][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.765][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.765][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.765][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.765][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.765][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.766][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.766][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.766][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.766][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.766][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.766][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.766][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.766][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.767][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.767][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.767][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.767][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.767][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.767][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.767][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.767][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.768][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.768][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.768][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.768][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.768][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.768][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.768][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.768][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.769][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.769][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.769][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.769][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.769][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.769][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.769][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.769][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.770][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.770][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.770][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.770][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.770][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.770][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.770][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.770][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.771][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.771][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.771][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.771][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.771][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.771][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.771][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.771][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.772][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.772][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.772][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.772][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.772][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.772][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.772][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.772][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.773][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.773][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.773][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.773][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.773][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.773][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.773][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.773][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.773][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.774][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.774][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.774][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.774][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.774][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.774][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.774][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.774][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 6700 batches in 1.257003078s -[06:50:14.775][PUT] put #6700 -[06:50:14.775][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.775][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.775][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.775][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.775][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.775][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.775][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.776][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.776][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.776][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.776][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.776][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.776][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.776][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.776][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.776][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.777][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.777][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.777][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.777][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.777][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.777][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.777][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.778][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.778][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.778][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.778][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.778][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.778][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.778][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.778][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.779][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.779][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.779][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.779][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.779][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.779][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.779][WAL_SIZE_TRIGGER] pending_bytes=387986664, threshold #37 crossed (370MB), triggering flush to batch #6737 -[06:50:14.779][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.779][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.780][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.780][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.780][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.780][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.780][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.780][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.780][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.780][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.781][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.781][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.781][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.781][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.781][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.781][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.781][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.781][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.782][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.782][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.782][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.782][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.782][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.782][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.782][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.782][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.783][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.783][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.783][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.783][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.783][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.783][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.783][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.783][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.784][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.784][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.784][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.784][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.784][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.784] [WAL_FLUSH] WAL #8 complete: S3=169ms, index=0ms, 157 batches -[06:50:14.785][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 1256, done: None } -[06:50:14.785][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #1256, starting flush -[06:50:14.785] [WAL_FLUSH] Flushing range 1099..1256 (157 batches, 3140 rows) to WAL #9 -[06:50:14.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 6800 batches in 1.287453474s -[06:50:14.805][PUT] put #6800 -[06:50:14.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 6900 batches in 1.303259449s -[06:50:14.821][PUT] put #6900 -[06:50:14.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.821][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.822][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.824][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.825][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.826][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.827][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.828][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.829][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.830][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.831][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.832][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.833][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.834][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 7000 batches in 1.317262062s -[06:50:14.835][PUT] put #7000 -[06:50:14.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.835][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.836][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.837][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.838][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.839][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.840][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.841][WAL_SIZE_TRIGGER] pending_bytes=398505448, threshold #38 crossed (380MB), triggering flush to batch #7049 -[06:50:14.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.841][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.842][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.843][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.844][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.845][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.846][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.847][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 7100 batches in 1.329892724s -[06:50:14.848][PUT] put #7100 -[06:50:14.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.848][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.849][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.850][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.851][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.852][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.853][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.854][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.855][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.856][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.857][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.858][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.859][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 7200 batches in 1.342380602s -[06:50:14.860][PUT] put #7200 -[06:50:14.860][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:14.860][BP_TRIGGER] iter=0 batch_store_nearly_full: remaining=799/8000 (<10%), triggering flush and waiting -[06:50:14.860][TRIGGER] Sending FlushMemTable message and waiting for completion -[06:50:14.940] [WAL_FLUSH] WAL #9 complete: S3=149ms, index=0ms, 157 batches -[06:50:14.940][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 1413, done: None } -[06:50:14.940][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #1413, starting flush -[06:50:14.940] [WAL_FLUSH] Flushing range 1256..1413 (157 batches, 3140 rows) to WAL #10 -[06:50:15.086] [WAL_FLUSH] WAL #10 complete: S3=140ms, index=0ms, 157 batches -[06:50:15.086][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 1570, done: None } -[06:50:15.086][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #1570, starting flush -[06:50:15.086] [WAL_FLUSH] Flushing range 1413..1570 (157 batches, 3140 rows) to WAL #11 -[06:50:15.198] [WAL_FLUSH] WAL #11 complete: S3=106ms, index=0ms, 157 batches -[06:50:15.198][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 1727, done: None } -[06:50:15.198][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #1727, starting flush -[06:50:15.198] [WAL_FLUSH] Flushing range 1570..1727 (157 batches, 3140 rows) to WAL #12 -[06:50:15.331] [WAL_FLUSH] WAL #12 complete: S3=127ms, index=0ms, 157 batches -[06:50:15.332][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 2041, done: None } -[06:50:15.332][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #2041, starting flush -[06:50:15.332] [WAL_FLUSH] Flushing range 1727..2041 (314 batches, 6280 rows) to WAL #13 -[06:50:15.654] [WAL_FLUSH] WAL #13 complete: S3=307ms, index=0ms, 314 batches -[06:50:15.656][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 2198, done: None } -[06:50:15.656][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #2198, starting flush -[06:50:15.656] [WAL_FLUSH] Flushing range 2041..2198 (157 batches, 3140 rows) to WAL #14 -[06:50:15.762][FREEZE] WAL S3 flush took 1664ms -[06:50:15.768][FREEZE] Swapping memtable: old had 7201 batches -[06:50:15.769][FREEZE] Complete: gen=1 imm_queue=1 new_capacity=8000 took=1671ms -[06:50:15.769][MEMTABLE_FLUSH] freeze_memtable took 1672ms -[06:50:15.769][LANCE_FLUSH] Starting flush_oldest_immutable -[06:50:15.769][LANCE_FLUSH] Flushing memtable with 144020 rows, 7201 batches -[06:50:15.769] [FLUSHER] flush() called: 144020 rows, 7201 batches -[06:50:15.800] [WAL_FLUSH] WAL #14 complete: S3=138ms, index=0ms, 157 batches -[06:50:15.800][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 2355, done: None } -[06:50:15.800][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #2355, starting flush -[06:50:15.800][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 2512, done: None } -[06:50:15.800][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #2512, starting flush -[06:50:15.800][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 2669, done: None } -[06:50:15.800][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #2669, starting flush -[06:50:15.800][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 2826, done: None } -[06:50:15.801][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #2826, starting flush -[06:50:15.801][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 3140, done: None } -[06:50:15.801][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #3140, starting flush -[06:50:15.801][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 3297, done: None } -[06:50:15.801][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #3297, starting flush -[06:50:15.801][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 3454, done: None } -[06:50:15.801][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #3454, starting flush -[06:50:15.801][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 3611, done: None } -[06:50:15.801][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #3611, starting flush -[06:50:15.801][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 3768, done: None } -[06:50:15.801][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #3768, starting flush -[06:50:15.801][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 4020, done: None } -[06:50:15.801][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #4020, starting flush -[06:50:15.801][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 4239, done: None } -[06:50:15.801][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #4239, starting flush -[06:50:15.801][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 4396, done: None } -[06:50:15.802][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #4396, starting flush -[06:50:15.802][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 4553, done: None } -[06:50:15.802][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #4553, starting flush -[06:50:15.802][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 4710, done: None } -[06:50:15.802][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #4710, starting flush -[06:50:15.802][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 5024, done: None } -[06:50:15.802][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #5024, starting flush -[06:50:15.802][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 5179, done: None } -[06:50:15.802][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #5179, starting flush -[06:50:15.802][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 5335, done: None } -[06:50:15.802][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #5335, starting flush -[06:50:15.802][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 5491, done: None } -[06:50:15.802][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #5491, starting flush -[06:50:15.802][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 5803, done: None } -[06:50:15.803][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #5803, starting flush -[06:50:15.803][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 5958, done: None } -[06:50:15.803][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #5958, starting flush -[06:50:15.803][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 6114, done: None } -[06:50:15.803][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #6114, starting flush -[06:50:15.803][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 6270, done: None } -[06:50:15.803][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #6270, starting flush -[06:50:15.803][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 6426, done: None } -[06:50:15.803][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #6426, starting flush -[06:50:15.803][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 6582, done: None } -[06:50:15.803][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #6582, starting flush -[06:50:15.803][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 6737, done: None } -[06:50:15.804][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #6737, starting flush -[06:50:15.804][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 7049, done: None } -[06:50:15.804][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #7049, starting flush -[06:50:15.859][DISPATCHER] Task 'memtable_flusher' received message: FlushMemTable { done: Some(Sender { inner: Some(Inner { state: State { is_complete: false, is_closed: false, is_rx_task_set: true, is_tx_task_set: false } }) }) } -[06:50:15.859][FLUSH_HANDLER] Received FlushMemTable: batches=0, remaining=8000, pending_wal_bytes=18446744073699071552 -[06:50:15.859][MEMTABLE_FLUSH] Starting do_flush: 0 batches, 18446744073699071552 pending WAL bytes -[06:50:15.859][FREEZE] Starting freeze_memtable -[06:50:15.859][FREEZE] WAL flush: pending_bytes=18446744073699071552, remaining_capacity=8000 -[06:50:15.859][FREEZE] WAL S3 flush took 0ms -[06:50:15.859][FREEZE] Swapping memtable: old had 0 batches -[06:50:15.861][FREEZE] Complete: gen=2 imm_queue=1 new_capacity=8000 took=1ms -[06:50:15.861][MEMTABLE_FLUSH] freeze_memtable took 1ms -[06:50:15.861][LANCE_FLUSH] Starting flush_oldest_immutable -[06:50:15.861][LANCE_FLUSH] Flushing memtable with 0 rows, 0 batches -[06:50:15.861] [FLUSHER] flush() called: 0 rows, 0 batches -[06:50:15.935][TRIGGER] Flush failed: Invalid user input: Cannot flush empty MemTable, rust/lance/src/dataset/mem_wal/write/flush.rs:147:17 -[06:50:15.935][BP_TRIGGER] flush complete after 1074ms, new remaining=8000 -[06:50:15.935][BP] waited 1074ms | remaining_batches=8000 total_batches=8000 -[06:50:15.935][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.935][WAL_TIME_TRIGGER] pending_bytes=67304, interval elapsed, triggering flush to batch #1 -[06:50:15.935][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 1, done: None } -[06:50:15.935][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #1, starting flush -[06:50:15.935] [WAL_FLUSH] Flushing range 0..1 (1 batches, 20 rows) to WAL #41 -[06:50:15.936][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.936][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.936][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.937][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.937][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.937][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.937][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.937][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.937][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.937][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.937][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.938][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.938][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.938][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.938][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.938][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.938][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.938][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.938][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.939][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.939][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.939][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.939][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.939][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.939][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.939][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.939][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.940][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.940][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.940][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.940][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.940][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.940][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.940][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.940][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.941][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.941][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.941][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.941][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.941][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.941][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.941][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.941][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.942][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.942][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.942][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.942][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.942][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.942][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.942][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.942][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.943][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.943][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.943][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.943][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.943][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.943][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.943][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.943][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.943][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.944][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.944][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.944][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.944][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.944][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.944][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.944][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.944][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.945][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.945][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.945][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.945][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.945][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.945][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.945][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.945][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.946][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.946][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.946][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.946][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.946][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.946][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.946][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.946][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.947][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.947][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.947][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.947][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.947][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.947][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.947][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.947][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.948][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.948][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.948][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.948][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.948][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.948][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 7300 batches in 2.430651782s -[06:50:15.948][PUT] put #7300 -[06:50:15.948][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.948][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.949][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.949][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.949][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.949][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.949][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.949][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.949][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.949][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.950][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.950][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.950][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.950][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.950][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.950][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.950][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.950][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.951][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.951][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.951][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.951][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.951][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.951][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.951][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.951][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.952][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.952][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.952][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.952][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.952][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.952][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.952][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.952][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.953][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.953][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.953][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.953][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.953][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.953][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.953][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.953][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.954][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.954][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.954][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.954][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.954][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.954][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.954][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.954][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.955][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.955][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.955][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.955][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.955][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.955][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.955][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.955][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.956][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.956][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.956][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.956][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.956][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.956][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.956][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.956][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.957][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.957][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.957][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.957][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.957][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.957][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.957][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.957][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.957][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.958][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.958][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.958][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.958][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.958][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.958][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.958][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.958][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.959][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.959][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.959][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.959][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.959][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.959][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.959][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.959][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.960][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.960][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.960][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.960][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.960][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.960][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.960][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.960][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.961][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 7400 batches in 2.443082094s -[06:50:15.961][PUT] put #7400 -[06:50:15.961][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.961][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.961][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.961][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.961][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.961][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.961][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.962][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.962][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.962][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.962][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.962][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.962][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.962][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.962][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.963][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.963][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.963][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.963][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.963][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.963][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.963][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.963][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.964][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.964][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.964][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.964][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.964][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.964][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.965] [WAL_FLUSH] WAL #41 complete: S3=29ms, index=0ms, 1 batches -[06:50:15.965][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.965][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.965][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.965][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.965][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.965][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.966][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.966][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.966][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.966][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.966][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.966][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.966][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.966][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.967][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.967][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.967][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.967][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.967][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.967][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.967][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.967][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.968][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.968][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.968][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.968][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.968][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.968][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.968][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.968][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.969][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.969][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.969][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.969][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.969][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.969][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.969][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.969][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.970][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.970][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.970][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.970][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.970][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.970][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.970][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.970][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.971][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.971][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.971][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.971][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.971][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.971][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.971][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.971][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.972][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.972][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.972][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.972][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.972][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.972][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.972][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.972][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.973][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.973][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.973][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.973][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.973][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.973][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.973][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.973][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.974][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 7500 batches in 2.456023913s -[06:50:15.974][PUT] put #7500 -[06:50:15.974][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.974][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.974][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.974][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.974][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.974][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.974][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.975][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.975][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.975][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.975][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.975][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.975][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.975][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.975][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.976][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.976][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.976][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.976][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.976][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.976][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.976][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.976][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.977][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.977][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.977][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.977][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.977][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.977][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.977][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.977][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.978][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.978][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.978][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.978][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.978][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.978][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.978][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.978][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.979][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.979][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.979][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.979][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.979][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.979][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.979][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.979][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.980][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.980][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.980][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.980][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.980][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.980][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.980][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.980][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.981][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.981][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.981][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.981][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.981][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.981][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.981][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.981][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.982][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.982][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.982][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.982][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.982][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.982][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.982][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.982][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.982][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.983][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.983][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.983][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.983][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.983][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.983][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.983][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.984][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.984][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.984][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.984][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.984][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.984][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.984][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.984][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.985][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.985][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.985][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.985][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.985][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.985][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.985][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.985][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.986][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.986][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.986][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.986][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.986][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 7600 batches in 2.468498819s -[06:50:15.986][PUT] put #7600 -[06:50:15.986][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.986][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.986][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.987][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.987][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.987][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.987][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.987][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.987][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.987][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.987][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.988][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.988][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.988][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.988][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.988][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.988][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.988][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.988][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.989][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.989][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.989][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.989][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.989][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.989][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.989][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.989][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.990][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.990][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.990][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.990][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.990][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.990][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.990][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.990][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.990][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.991][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.991][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.991][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.991][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.991][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.991][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.991][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.991][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.992][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.992][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.992][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.992][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.992][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.992][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.992][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.992][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.993][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.993][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.993][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.993][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.993][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.993][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.993][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.993][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.994][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.994][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.994][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.994][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.994][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.994][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.994][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.994][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.995][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.995][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.995][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.995][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.995][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.995][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.995][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.995][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.996][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.996][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.996][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.996][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.996][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.996][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.996][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.996][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.997][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.997][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.997][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.997][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.997][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.997][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.997][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.997][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.998][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.998][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.998][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.998][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.998][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.998][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.998][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.998][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 7700 batches in 2.480885691s -[06:50:15.999][PUT] put #7700 -[06:50:15.999][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.999][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.999][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.999][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.999][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.999][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.999][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:15.999][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.000][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.000][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.000][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.000][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.000][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.000][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.000][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.000][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.001][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.001][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.001][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.001][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.001][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.001][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.001][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.001][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.002][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.002][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.002][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.002][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.002][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.002][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.002][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.002][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.003][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.003][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.003][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.003][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.003][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.003][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.003][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.003][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.004][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.004][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.004][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.004][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.004][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.004][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.004][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.004][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.005][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.005][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.005][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.005][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.005][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.005][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.005][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.005][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.006][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.006][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.006][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.006][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.006][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.006][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.006][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.006][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.007][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.007][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.007][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.007][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.007][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.007][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.007][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.007][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.008][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.008][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.008][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.008][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.008][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.008][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.008][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.008][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.009][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.009][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.009][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.009][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.009][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.009][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.009][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.009][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.010][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.010][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.010][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.010][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.010][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.010][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.010][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.010][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.011][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.011][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.011][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.011][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 7800 batches in 2.493414282s -[06:50:16.011][PUT] put #7800 -[06:50:16.011][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.011][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.011][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.011][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.012][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.012][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.012][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.012][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.012][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.012][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.012][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.012][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.013][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.013][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.013][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.013][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.013][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.013][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.013][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.013][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.014][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.014][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.014][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.014][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.014][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.014][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.014][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.014][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.015][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.015][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.015][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.015][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.015][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.015][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.015][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.015][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.016][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.016][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.016][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.016][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.016][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.016][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.016][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.016][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.017][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.017][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.017][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.017][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.017][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.017][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.017][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.017][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.017][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.018][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.018][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.018][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.018][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.018][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.018][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.018][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.018][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.019][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.019][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.019][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.019][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.019][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.019][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.019][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.019][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.020][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.020][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.020][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.020][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.020][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.020][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.020][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.020][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.021][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.021][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.021][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.021][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.021][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.021][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.021][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.021][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.022][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.022][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.022][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.022][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.022][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.022][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.022][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.022][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.023][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.023][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.023][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.023][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.023][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.023][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.023][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 7900 batches in 2.505830747s -[06:50:16.023][PUT] put #7900 -[06:50:16.024][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.024][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.024][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.024][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.024][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.024][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.024][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.024][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.024][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.025][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.025][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.025][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.025][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.025][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.025][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.025][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.025][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.026][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.026][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.026][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.026][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.026][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.026][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.026][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.026][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.027][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.027][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.027][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.027][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.027][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.027][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.027][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.027][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.028][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.028][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.028][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.028][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.028][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.028][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.028][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.028][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.029][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.029][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.029][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.029][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.029][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.029][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.029][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.029][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.030][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.030][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.030][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.030][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.030][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.030][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.030][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.030][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.031][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.031][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.031][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.031][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.031][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.031][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.031][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.031][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.032][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.032][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.032][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.032][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.032][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.032][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.032][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.032][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.033][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.033][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.033][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.033][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.033][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.033][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.033][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.033][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.034][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.034][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.034][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.034][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.034][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.034][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.034][WAL_TIME_TRIGGER] pending_bytes=52833680, interval elapsed, triggering flush to batch #786 -[06:50:16.034][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 786, done: None } -[06:50:16.034][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #786, starting flush -[06:50:16.035] [WAL_FLUSH] Flushing range 1..786 (785 batches, 15700 rows) to WAL #42 -[06:50:16.090][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.090][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.090][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.091][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.091][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.091][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.091][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.091][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.092][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.092][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.092][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.092][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.092][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 8000 batches in 2.57469442s -[06:50:16.092][PUT] put #8000 -[06:50:16.093][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.093][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.093][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.093][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.093][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.093][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.094][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.094][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.094][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.094][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.094][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.094][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.094][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.095][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.095][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.095][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.095][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.095][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.095][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.095][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.096][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.096][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.096][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.096][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.096][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.097][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.097][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.097][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.097][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.097][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.097][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.098][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.098][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.098][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.098][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.098][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.099][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.099][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.099][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.099][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.099][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.099][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.099][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.099][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.100][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.100][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.100][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.100][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.100][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.100][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.101][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.101][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.101][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.101][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.101][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.102][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.102][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.102][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.102][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.102][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.102][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.102][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.102][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.103][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.103][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.103][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.103][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.103][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.104][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.104][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.104][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.104][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.104][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.104][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.104][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.105][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.105][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.105][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.105][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.105][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.105][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.105][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.106][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.106][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.106][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.106][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.107][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.107][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.107][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.107][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.107][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.107][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.107][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.107][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.108][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.108][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.108][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.108][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.109][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.109][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 8100 batches in 2.59118599s -[06:50:16.109][PUT] put #8100 -[06:50:16.109][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.109][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.109][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.109][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.109][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.109][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.110][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.110][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.110][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.110][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.111][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.111][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.111][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.111][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.111][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.111][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.111][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.112][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.112][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.112][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.112][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.112][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.112][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.113][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.113][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.113][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.113][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.113][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.113][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.114][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.114][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.114][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.114][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.114][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.114][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.115][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.115][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.115][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.115][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.115][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.115][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.115][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.115][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.116][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.116][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.116][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.116][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.116][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.116][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.116][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.116][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.117][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.117][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.117][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.117][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.117][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.117][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.117][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.117][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.118][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.118][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.118][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.118][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.118][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.118][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.118][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.118][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.119][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.119][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.119][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.119][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.119][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.119][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.119][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.119][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.120][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.120][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.120][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.120][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.120][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.120][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.120][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.120][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.121][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.121][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.121][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.121][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.121][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.121][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.121][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.121][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.122][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.122][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.122][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.122][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.122][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.122][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.122][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.122][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.123][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 8200 batches in 2.605047672s -[06:50:16.123][PUT] put #8200 -[06:50:16.123][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.123][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.123][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.123][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.123][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.123][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.123][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.124][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.124][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.124][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.124][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.124][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.124][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.124][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.124][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.125][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.125][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.125][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.125][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.125][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.125][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.126][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.127][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.127][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.127][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.127][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.127][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.127][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.127][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.127][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.128][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.128][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.128][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.128][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.129][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.129][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.129][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.129][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.129][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.129][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.129][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.129][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.130][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.130][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.130][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.130][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.130][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.130][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.130][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.130][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.131][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.131][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.131][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.131][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.131][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.132][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.132][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.132][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.132][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.132][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.133][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.133][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.133][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.133][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.133][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.133][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.133][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.133][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.133][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.134][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.134][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.134][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.134][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.135][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.135][WAL_TIME_TRIGGER] pending_bytes=72149928, interval elapsed, triggering flush to batch #1073 -[06:50:16.135][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.135][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.135][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.135][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.135][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.135][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.135][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.136][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.136][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.136][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.136][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.137][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.137][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.137][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.137][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.137][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.138][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.138][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.138][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.138][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.138][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.138][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.139][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.139][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.139][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.140][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 8300 batches in 2.622070361s -[06:50:16.140][PUT] put #8300 -[06:50:16.140][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.140][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.140][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.140][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.140][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.140][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.140][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.141][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.141][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.141][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.141][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.142][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.142][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.142][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.142][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.142][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.143][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.143][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.143][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.143][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.143][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.143][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.143][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.143][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.144][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.145][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.145][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.145][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.145][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.145][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.145][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.145][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.145][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.146][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.146][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.146][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.146][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.146][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.146][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.146][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.146][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.147][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.147][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.147][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.147][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.147][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.147][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.147][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.147][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.148][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.148][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.148][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.148][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.148][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.148][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.148][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.148][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.149][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.149][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.149][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.149][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.149][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.149][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.149][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.149][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.150][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.150][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.150][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.150][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.150][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.150][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.150][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.150][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.151][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.151][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.151][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.151][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.151][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.151][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.151][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.151][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.152][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.152][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.152][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.152][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.152][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.152][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.152][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.152][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.153][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.153][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.153][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.153][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.153][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.153][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.153][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.153][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.154][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.154][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.154][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 8400 batches in 2.636263926s -[06:50:16.154][PUT] put #8400 -[06:50:16.154][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.154][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.154][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.154][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.154][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.155][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.155][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.155][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.155][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.155][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.155][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.155][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.155][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.156][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.156][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.156][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.156][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.156][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.156][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.156][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.156][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.157][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.157][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.157][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.157][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.157][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.157][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.157][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.157][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.158][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.158][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.158][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.158][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.158][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.158][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.158][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.158][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.159][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.159][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.159][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.159][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.159][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.159][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.159][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.159][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.160][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.160][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.160][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.160][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.160][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.160][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.160][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.160][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.160][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.161][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.161][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.161][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.161][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.161][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.161][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.161][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.161][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.162][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.162][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.162][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.162][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.162][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.162][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.162][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.162][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.163][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.163][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.163][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.163][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.163][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.163][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.163][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.163][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.164][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.164][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.164][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.164][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.164][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.164][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.164][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.164][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.165][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.165][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.165][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.165][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.165][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.165][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.165][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.165][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.166][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.166][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.166][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.166][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.166][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.166][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 8500 batches in 2.648737251s -[06:50:16.166][PUT] put #8500 -[06:50:16.166][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.167][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.167][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.167][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.167][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.167][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.167][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.167][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.167][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.168][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.168][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.168][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.168][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.168][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.168][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.168][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.168][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.168][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.169][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.169][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.169][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.169][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.169][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.169][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.169][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.169][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.170][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.170][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.170][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.170][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.170][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.170][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.170][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.170][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.171][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.171][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.171][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.171][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.171][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.171][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.171][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.171][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.172][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.172][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.172][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.172][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.172][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.172][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.172][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.172][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.173][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.173][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.173][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.173][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.173][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.173][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.173][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.173][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.174][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.174][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.174][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.174][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.174][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.174][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.174][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.174][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.175][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.175][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.175][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.175][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.175][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.175][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.175][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.175][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.176][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.176][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.176][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.176][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.176][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.176][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.176][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.176][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.177][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.177][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.177][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.177][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.177][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.177][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.177][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.177][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.178][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.178][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.178][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.178][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.178][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.178][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.178][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.178][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.179][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.179][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 8600 batches in 2.66115681s -[06:50:16.179][PUT] put #8600 -[06:50:16.179][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.179][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.179][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.179][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.179][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.179][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.180][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.180][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.180][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.180][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.180][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.180][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.180][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.180][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.181][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.181][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.181][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.181][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.181][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.181][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.181][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.181][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.182][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.182][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.182][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.182][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.182][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.182][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.182][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.182][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.183][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.183][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.183][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.183][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.183][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.183][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.183][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.183][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.184][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.184][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.184][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.184][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.184][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.184][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.184][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.184][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.185][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.185][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.185][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.185][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.185][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.185][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.185][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.185][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.186][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.186][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.186][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.186][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.186][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.186][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.186][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.186][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.187][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.187][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.187][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.187][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.187][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.187][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.187][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.187][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.188][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.188][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.188][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.188][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.188][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.188][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.188][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.188][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.189][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.189][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.189][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.189][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.189][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.189][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.189][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.191][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.191][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.191][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.191][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.191][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.191][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.191][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.191][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.192][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.192][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.192][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.192][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.192][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.192][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.192][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 8700 batches in 2.674843632s -[06:50:16.192][PUT] put #8700 -[06:50:16.193][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.193][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.193][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.193][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.193][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.193][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.193][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.193][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.194][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.194][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.194][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.194][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.194][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.194][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.194][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.194][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.195][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.195][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.195][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.195][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.195][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.195][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.195][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.195][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.196][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.196][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.196][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.196][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.196][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.196][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.196][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.196][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.197][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.197][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.197][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.197][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.197][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.197][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.197][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.197][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.198][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.198][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.198][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.198][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.198][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.198][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.198][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.198][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.199][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.199][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.199][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.199][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.199][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.199][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.199][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.199][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.200][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.200][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.200][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.200][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.200][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.200][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.200][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.200][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.201][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.201][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.201][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.201][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.201][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.201][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.201][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.201][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.202][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.202][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.202][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.202][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.202][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.202][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.202][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.202][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.203][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.203][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.203][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.203][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.203][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.203][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.203][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.203][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.204][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.204][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.204][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.204][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.204][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.204][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.204][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.204][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.205][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.205][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.205][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.205][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 8800 batches in 2.687344316s -[06:50:16.205][PUT] put #8800 -[06:50:16.205][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.205][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.205][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.207][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.207][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.207][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.207][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.207][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.207][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.207][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.207][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.208][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.208][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.208][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.208][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.208][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.208][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.209][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.210][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.210][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.210][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.210][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.210][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.210][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.210][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.210][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.210][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.211][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.211][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.211][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.211][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.211][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.211][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.211][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.211][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.212][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.212][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.213][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.213][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.213][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.213][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.213][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.213][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.213][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.213][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.214][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.214][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.214][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.214][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.214][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.214][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.214][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.214][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.214][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.215][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.216][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.216][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.216][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.216][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.216][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.217][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.217][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.217][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.217][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.217][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.217][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.217][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.217][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.218][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.218][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.218][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.218][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.218][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.218][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.218][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.218][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.219][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.219][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.219][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.219][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.219][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.219][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.219][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.219][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.220][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.220][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.220][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.220][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.220][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.220][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.220][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.220][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.221][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.221][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.221][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.221][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.221][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.221][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.221][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.221][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 8900 batches in 2.703900008s -[06:50:16.222][PUT] put #8900 -[06:50:16.222][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.222][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.222][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.222][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.222][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.222][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.222][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.222][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.223][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.223][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.223][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.223][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.223][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.223][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.223][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.223][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.224][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.224][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.224][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.224][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.224][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.224][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.224][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.224][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.225][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.225][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.225][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.225][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.225][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.225][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.225][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.225][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.226][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.226][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.226][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.226][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.226][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.226][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.226][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.226][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.226][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.227][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.227][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.227][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.227][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.227][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.227][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.227][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.227][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.228][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.228][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.228][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.228][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.228][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.228][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.228][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.228][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.229][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.229][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.229][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.229][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.229][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.229][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.229][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.229][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.230][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.230][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.230][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.230][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.230][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.230][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.230][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.230][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.231][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.231][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.231][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.231][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.231][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.231][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.231][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.231][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.232][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.232][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.232][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.232][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.232][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.232][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.232][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.232][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.233][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.233][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.233][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.233][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.233][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.233][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.233][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.233][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.234][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.234][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.234][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 9000 batches in 2.716297669s -[06:50:16.234][PUT] put #9000 -[06:50:16.234][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.234][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.234][WAL_TIME_TRIGGER] pending_bytes=121147240, interval elapsed, triggering flush to batch #1801 -[06:50:16.234][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.234][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.235][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.235][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.235][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.235][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.235][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.235][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.235][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.235][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.236][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.236][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.236][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.236][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.236][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.236][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.236][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.236][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.237][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.237][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.237][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.237][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.237][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.237][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.237][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.237][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.238][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.238][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.238][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.238][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.238][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.238][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.238][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.238][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.239][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.239][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.239][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.239][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.239][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.239][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.239][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.239][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.240][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.240][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.240][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.240][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.240][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.240][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.240][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.240][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.241][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.241][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.241][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.241][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.241][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.241][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.241][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.241][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.242][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.242][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.242][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.242][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.242][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.242][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.242][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.242][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.243][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.243][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.243][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.243][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.243][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.243][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.243][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.243][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.244][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.244][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.244][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.244][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.244][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.244][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.244][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.244][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.245][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.245][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.245][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.245][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.245][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.245][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.245][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.245][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.246][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.246][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.246][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.246][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.246][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.246][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.246][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.246][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 9100 batches in 2.728950376s -[06:50:16.247][PUT] put #9100 -[06:50:16.247][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.247][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.247][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.247][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.247][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.247][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.247][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.247][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.248][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.248][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.248][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.248][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.248][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.248][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.248][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.248][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.249][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.249][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.249][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.249][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.249][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.249][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.249][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.249][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.250][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.250][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.250][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.250][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.250][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.250][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.250][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.250][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.251][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.251][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.251][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.251][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.251][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.251][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.251][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.251][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.252][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.252][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.252][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.252][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.252][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.252][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.252][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.252][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.253][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.253][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.253][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.253][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.253][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.253][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.253][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.253][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.254][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.254][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.254][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.254][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.254][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.254][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.254][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.254][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.255][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.255][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.255][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.255][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.255][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.255][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.255][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.255][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.256][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.256][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.256][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.256][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.256][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.256][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.256][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.256][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.257][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.257][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.257][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.257][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.257][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.257][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.257][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.257][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.257][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.258][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.258][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.258][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.258][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.258][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.258][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.258][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.258][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.259][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.259][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.259][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 9200 batches in 2.741358566s -[06:50:16.259][PUT] put #9200 -[06:50:16.259][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.259][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.259][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.259][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.260][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.260][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.260][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.260][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.260][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.260][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.260][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.260][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.261][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.261][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.261][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.261][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.261][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.261][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.263][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.263][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.263][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.263][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.263][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.264][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.264][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.264][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.264][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.264][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.264][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.264][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.264][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.265][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.265][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.265][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.265][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.265][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.267][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.267][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.267][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.267][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.267][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.267][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.268][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.268][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.268][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.268][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.268][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.268][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.268][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.268][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.268][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.269][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.269][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.269][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.269][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.269][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.269][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.269][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.269][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.270][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.270][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.270][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.270][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.271][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.271][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.271][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.271][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.271][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.271][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.272][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.272][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.272][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.272][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.272][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.272][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.272][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.272][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.273][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.273][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.273][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.273][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.273][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.273][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.273][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.273][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.274][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.274][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.274][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.274][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.274][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.274][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.274][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.274][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.275][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.275][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.275][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.275][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.275][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.275][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.275][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 9300 batches in 2.757782323s -[06:50:16.275][PUT] put #9300 -[06:50:16.275][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.276][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.276][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.276][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.276][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.276][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.276][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.276][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.276][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.277][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.277][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.277][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.277][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.277][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.277][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.277][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.277][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.278][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.278][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.278][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.278][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.278][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.278][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.278][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.278][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.279][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.279][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.279][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.279][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.279][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.279][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.279][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.279][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.280][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.280][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.280][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.280][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.280][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.280][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.280][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.280][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.281][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.281][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.281][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.281][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.281][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.281][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.281][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.281][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.281][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.282][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.282][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.282][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.282][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.282][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.282][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.282][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.282][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.283][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.283][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.283][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.283][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.283][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.283][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.283][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.283][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.284][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.284][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.284][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.284][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.284][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.284][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.284][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.284][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.285][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.285][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.285][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.285][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.285][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.285][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.285][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.285][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.286][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.286][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.286][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.286][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.286][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.286][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.286][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.286][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.287][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.287][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.287][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.287][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.287][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.287][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.287][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.287][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.288][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.288][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 9400 batches in 2.77018153s -[06:50:16.288][PUT] put #9400 -[06:50:16.288][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.288][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.288][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.288][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.288][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.288][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.289][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.289][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.289][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.289][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.289][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.289][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.289][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.289][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.290][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.290][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.290][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.290][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.290][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.290][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.290][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.290][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.291][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.291][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.291][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.291][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.291][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.291][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.291][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.291][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.292][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.292][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.292][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.292][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.292][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.292][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.292][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.292][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.293][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.293][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.293][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.293][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.293][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.293][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.293][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.293][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.294][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.294][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.294][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.294][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.294][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.294][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.294][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.294][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.295][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.295][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.295][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.295][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.295][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.295][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.295][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.295][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.295][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.296][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.296][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.296][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.296][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.296][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.296][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.296][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.296][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.297][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.297][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.297][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.297][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.297][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.297][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.297][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.297][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.298][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.298][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.298][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.298][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.298][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.298][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.298][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.299][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.299][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.299][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.299][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.299][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.299][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.299][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.299][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.300][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.300][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.300][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.300][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.300][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.300][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 9500 batches in 2.782650814s -[06:50:16.300][PUT] put #9500 -[06:50:16.300][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.300][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.301][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.301][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.301][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.301][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.301][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.301][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.301][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.301][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.302][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.302][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.302][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.302][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.302][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.302][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.302][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.302][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.303][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.303][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.303][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.303][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.303][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.303][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.303][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.303][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.304][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.304][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.304][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.304][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.304][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.304][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.304][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.304][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.305][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.305][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.305][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.305][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.305][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.305][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.305][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.305][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.306][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.306][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.306][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.306][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.306][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.306][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.306][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.306][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.307][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.307][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.307][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.307][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.307][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.307][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.307][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.307][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.308][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.308][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.308][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.308][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.308][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.308][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.308][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.308][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.309][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.309][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.309][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.309][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.309][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.309][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.309][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.309][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.309][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.310][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.310][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.310][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.310][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.310][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.310][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.310][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.310][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.311][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.311][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.311][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.311][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.311][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.311][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.311][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.311][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.312][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.312][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.312][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.312][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.312][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.312][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.312][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.312][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.313][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 9600 batches in 2.795118021s -[06:50:16.313][PUT] put #9600 -[06:50:16.313][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.313][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.313][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.313][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.313][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.313][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.314][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.314][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.314][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.314][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.314][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.314][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.314][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.314][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.315][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.315][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.315][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.315][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.315][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.315][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.315][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.315][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.316][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.316][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.316][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.316][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.316][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.316][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.316][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.316][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.316][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.317][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.317][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.317][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.317][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.317][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.317][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.317][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.317][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.318][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.318][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.318][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.318][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.318][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.318][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.318][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.318][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.319][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.319][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.319][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.319][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.319][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.319][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.319][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.319][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.320][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.320][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.320][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.320][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.320][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.320][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.320][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.320][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.321][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.321][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.321][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.321][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.321][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.321][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.321][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.321][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.322][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.322][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.322][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.322][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.322][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.322][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.322][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.322][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.323][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.323][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.323][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.323][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.323][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.323][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.323][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.323][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.324][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.324][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.324][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.324][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.324][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.324][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.324][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.324][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.325][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.325][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.325][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.325][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.325][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 9700 batches in 2.807598247s -[06:50:16.325][PUT] put #9700 -[06:50:16.325][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.325][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.326][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.326][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.326][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.326][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.326][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.326][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.326][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.326][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.327][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.327][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.327][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.327][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.327][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.327][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.327][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.327][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.328][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.328][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.328][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.328][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.328][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.328][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.328][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.328][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.329][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.329][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.329][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.329][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.329][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.329][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.329][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.329][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.330][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.330][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.330][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.330][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.330][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.330][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.330][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.330][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.331][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.331][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.331][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.331][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.331][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.331][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.331][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.331][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.332][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.332][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.332][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.332][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.332][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.332][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.332][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.332][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.333][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.333][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.333][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.333][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.333][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.333][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.333][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.333][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.333][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.334][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.334][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.334][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.334][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.334][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.334][WAL_TIME_TRIGGER] pending_bytes=172971320, interval elapsed, triggering flush to batch #2571 -[06:50:16.334][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.334][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.335][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.335][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.335][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.335][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.335][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.335][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.335][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.335][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.336][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.336][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.336][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.336][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.336][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.336][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.336][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.336][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.337][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.337][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.337][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.337][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.337][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.337][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.337][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.337][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.338][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.338][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 9800 batches in 2.820163338s -[06:50:16.338][PUT] put #9800 -[06:50:16.338][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.338][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.338][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.338][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.338][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.338][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.339][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.339][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.339][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.339][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.339][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.339][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.339][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.339][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.340][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.340][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.340][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.340][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.340][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.340][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.340][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.340][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.341][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.341][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.341][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.341][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.341][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.341][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.341][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.341][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.342][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.342][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.342][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.342][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.342][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.342][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.342][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.342][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.343][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.343][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.343][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.343][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.343][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.343][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.343][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.343][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.344][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.344][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.344][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.344][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.344][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.344][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.344][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.344][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.345][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.345][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.345][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.345][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.345][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.345][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.345][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.345][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.346][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.346][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.346][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.346][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.346][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.346][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.346][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.346][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.347][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.347][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.347][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.347][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.347][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.347][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.347][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.347][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.348][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.348][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.348][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.348][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.348][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.348][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.348][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.348][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.349][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.349][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.349][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.349][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.349][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.349][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.349][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.349][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.349][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.350][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.350][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.350][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.350][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.350][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 9900 batches in 2.832625037s -[06:50:16.350][PUT] put #9900 -[06:50:16.350][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.350][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.351][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.351][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.351][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.351][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.351][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.351][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.351][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.351][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.352][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.352][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.352][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.352][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.352][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.352][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.352][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.352][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.353][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.353][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.353][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.353][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.353][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.353][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.353][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.353][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.354][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.354][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.354][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.354][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.354][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.354][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.354][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.354][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.355][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.355][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.355][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.355][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.355][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.355][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.355][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.355][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.356][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.356][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.356][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.356][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.356][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.356][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.356][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.356][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.357][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.357][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.357][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.357][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.357][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.357][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.357][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.357][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.358][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.358][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.358][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.358][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.358][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.358][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.358][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.358][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.358][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.359][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.359][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.359][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.359][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.359][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.359][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.359][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.360][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.360][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.360][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.360][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.360][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.360][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.360][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.360][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.361][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.361][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.361][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.361][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.361][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.361][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.361][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.361][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.362][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.362][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.362][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.362][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.362][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.362][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.362][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.362][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.363][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[06:50:16.363][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } -[TEST] Wrote 10000 batches in 2.845157333s -[TEST] All writes done in 2.845188538s -[TEST] Closing writer... -[06:50:16.562] [WAL_FLUSH] WAL #42 complete: S3=491ms, index=0ms, 785 batches -[TEST] Close took 1.327839249s -[TEST] Stats: puts=10000, WAL flushes=14, WAL bytes=95908660 -[TEST] Throughput: 70294 rows/sec -test dataset::mem_wal::write::region_writer_tests::test_region_writer_s3 ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 1146 filtered out; finished in 11.50s - - Running tests/integration_tests.rs (target/debug/deps/integration_tests-deb1c7e8f5442eaa) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/resource_tests.rs (target/debug/deps/resource_tests-7260eebe4244fdec) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 3 filtered out; finished in 0.00s - -[ec2-user@ip-172-31-76-18 lance]$ +[07:43:52.235][PUT] put #0 +[07:43:52.235][EXECUTOR] Task 'wal_flusher' spawned and starting +[07:43:52.235][DISPATCHER] Task 'wal_flusher' started, has 0 tickers +[07:43:52.235][EXECUTOR] Task 'memtable_flusher' spawned and starting +[07:43:52.235][DISPATCHER] Task 'memtable_flusher' started, has 0 tickers +[07:43:52.235][EXECUTOR] Task 'writer' spawned and starting +[07:43:52.235][DISPATCHER] Task 'writer' started, has 0 tickers +[07:43:52.235][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.235][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.235][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.236][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.236][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.236][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.236][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.236][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.236][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.236][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.236][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.237][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.237][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.237][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.237][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.237][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.237][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.237][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.237][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.237][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.238][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.238][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.238][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.238][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.238][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.238][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.238][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.238][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.239][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.239][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.239][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.239][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.239][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.239][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.239][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.239][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.240][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.240][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.240][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.240][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.240][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.240][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.240][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.240][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.241][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.241][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.241][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.241][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.241][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.241][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.241][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.241][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.242][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.242][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.242][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.242][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.242][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.242][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.242][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.242][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.243][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.243][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.243][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.243][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.243][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.243][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.243][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.243][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.244][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.244][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.244][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.244][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.244][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.244][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.244][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.244][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.245][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.245][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.245][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.245][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.245][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.245][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.245][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.245][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.246][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.246][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.246][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.246][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.246][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.246][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.246][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.246][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.247][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.247][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.247][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.247][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.247][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.247][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.247][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.247][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 100 batches in 12.985678ms +[07:43:52.248][PUT] put #100 +[07:43:52.248][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.248][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.248][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.248][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.248][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.248][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.248][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.248][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.249][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.249][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.249][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.249][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.249][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.249][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.249][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.249][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.250][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.250][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.250][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.250][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.250][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.250][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.250][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.250][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.251][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.251][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.251][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.251][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.251][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.251][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.251][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.252][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.252][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.252][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.252][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.252][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.252][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.252][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.252][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.253][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.253][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.253][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.253][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.253][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.253][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.253][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.254][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.254][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.254][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.254][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.254][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.254][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.254][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.254][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.255][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.255][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.255][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.255][WAL_SIZE_TRIGGER] total_bytes=10519112, threshold #1 crossed (10MB), triggering flush to batch #157 +[07:43:52.255][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 157, done: None } +[07:43:52.255][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #157, starting flush +[07:43:52.255] [WAL_FLUSH] Flushing range 0..157 (157 batches, 3140 rows) to WAL #1 +[07:43:52.268][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.268][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.268][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.268][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.268][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.268][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.269][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.269][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.269][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.269][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.270][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.270][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.270][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.270][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.270][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.271][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.272][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.272][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.272][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.272][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.272][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.273][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.273][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.273][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.273][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.273][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.273][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.273][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.273][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.273][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.273][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.274][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.274][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.274][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.274][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.274][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.274][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.274][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.274][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.275][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.275][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.275][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.275][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 200 batches in 40.473111ms +[07:43:52.275][PUT] put #200 +[07:43:52.275][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.275][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.275][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.275][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.275][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.275][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.276][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.276][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.276][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.276][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.276][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.276][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.276][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.276][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.276][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.276][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.277][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.277][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.277][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.277][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.277][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.277][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.278][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.278][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.278][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.278][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.278][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.279][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.279][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.279][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.279][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.279][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.279][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.280][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.280][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.280][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.280][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.280][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.280][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.280][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.280][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.281][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.281][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.281][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.281][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.281][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.281][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.282][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.282][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.282][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.282][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.282][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.282][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.282][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.282][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.283][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.283][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.283][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.283][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.283][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.284][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.284][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.284][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.284][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.284][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.284][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.285][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.285][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.285][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.285][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.285][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.286][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.286][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.286][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.286][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.286][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.286][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.286][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.287][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.287][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.287][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.287][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.287][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.287][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.288][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.288][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.288][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.288][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.288][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.289][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.289][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.289][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.289][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.289][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.289][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.289][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.289][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.289][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.290][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.290][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 300 batches in 55.778367ms +[07:43:52.290][PUT] put #300 +[07:43:52.290][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.290][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.291][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.291][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.291][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.291][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.291][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.291][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.292][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.292][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.292][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.292][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.292][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.292][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.292][WAL_SIZE_TRIGGER] total_bytes=21005456, threshold #2 crossed (20MB), triggering flush to batch #314 +[07:43:52.292][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.292][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.293][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.293][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.293][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.293][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.293][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.293][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.293][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.293][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.293][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.294][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.294][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.294][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.294][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.294][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.294][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.294][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.294][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.294][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.295][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.295][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.295][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.295][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.295][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.295][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.295][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.295][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.295][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.296][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.296][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.296][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.296][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.296][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.296][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.296][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.296][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.296][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.297][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.297][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.297][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.297][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.297][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.297][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.297][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.297][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.297][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.298][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.298][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.298][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.298][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.298][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.298][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.298][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.298][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.299][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.299][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.299][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.299][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.299][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.299][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.299][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.299][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.299][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.300][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.300][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.300][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.300][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.300][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.300][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.300][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.300][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.300][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.301][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.301][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.301][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.301][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.301][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.301][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.301][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.301][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.301][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.302][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.302][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.302][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.302][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 400 batches in 67.385989ms +[07:43:52.302][PUT] put #400 +[07:43:52.302][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.302][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.302][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.302][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.302][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.303][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.303][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.303][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.303][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.303][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.303][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.303][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.303][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.304][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.304][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.304][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.304][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.304][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.304][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.304][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.304][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.305][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.305][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.305][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.305][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.305][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.305][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.305][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.305][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.305][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.306][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.306][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.306][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.306][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.306][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.306][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.306][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.307][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.307][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.307][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.307][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.307][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.307][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.307][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.307][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.308][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.308][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.308][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.308][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.308][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.308][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.308][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.309][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.309][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.309][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.309][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.309][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.309][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.309][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.309][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.310][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.310][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.310][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.310][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.310][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.310][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.310][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.311][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.311][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.311][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.311][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.311][WAL_SIZE_TRIGGER] total_bytes=31491800, threshold #3 crossed (30MB), triggering flush to batch #471 +[07:43:52.311][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.311][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.311][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.312][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.312][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.312][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.312][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.312][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.312][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.312][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.312][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.313][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.313][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.313][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.313][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.313][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.313][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.313][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.314][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.314][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.314][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.314][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.314][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.314][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.314][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.314][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.315][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.315][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.315][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 500 batches in 80.473942ms +[07:43:52.315][PUT] put #500 +[07:43:52.315][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.315][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.315][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.315][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.316][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.316][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.316][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.316][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.316][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.316][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.316][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.317][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.317][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.317][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.317][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.317][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.317][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.317][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.317][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.318][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.318][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.318][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.318][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.318][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.318][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.318][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.318][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.319][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.319][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.319][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.319][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.319][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.319][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.319][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.319][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.320][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.320][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.320][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.320][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.320][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.320][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.320][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.320][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.321][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.321][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.321][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.321][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.321][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.321][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.321][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.321][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.322][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.322][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.322][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.322][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.322][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.322][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.322][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.322][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.323][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.323][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.323][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.323][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.323][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.323][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.323][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.323][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.324][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.324][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.324][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.324][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.324][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.324][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.324][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.324][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.325][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.325][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.325][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.325][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.325][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.325][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.325][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.325][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.326][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.326][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.326][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.326][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.326][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.326][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.326][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.326][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.327][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.327][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.327][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.327][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.327][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.327][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.327][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.327][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.327][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 600 batches in 93.086627ms +[07:43:52.328][PUT] put #600 +[07:43:52.328][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.328][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.328][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.328][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.328][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.328][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.328][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.329][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.329][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.329][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.329][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.329][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.329][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.329][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.329][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.330][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.330][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.330][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.330][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.330][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.330][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.330][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.330][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.331][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.331][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.331][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.331][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.331][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.331][WAL_SIZE_TRIGGER] total_bytes=41978144, threshold #4 crossed (40MB), triggering flush to batch #628 +[07:43:52.331][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.331][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.331][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.332][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.332][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.332][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.332][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.332][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.332][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.332][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.332][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.333][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.333][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.333][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.333][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.333][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.333][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.333][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.333][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.334][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.334][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.334][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.334][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.334][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.334][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.334][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.334][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.335][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.335][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.335][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.335][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.335][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.335][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.335][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.335][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.336][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.336][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.336][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.336][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.336][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.336][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.336][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.336][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.336][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.337][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.337][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.337][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.337][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.337][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.337][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.337][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.338][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.338][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.338][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.338][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.338][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.338][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.338][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.338][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.338][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.339][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.339][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.339][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.339][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.339][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.339][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.339][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.339][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.340][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.340][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.340][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.340][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 700 batches in 105.59352ms +[07:43:52.340][PUT] put #700 +[07:43:52.340][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.340][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.340][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.341][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.341][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.341][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.341][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.341][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.341][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.341][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.341][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.342][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.342][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.342][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.342][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.342][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.342][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.342][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.342][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.343][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.343][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.343][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.343][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.343][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.343][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.343][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.343][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.344][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.344][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.344][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.344][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.344][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.344][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.344][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.344][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.345][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.345][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.345][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.345][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.345][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.345][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.345][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.345][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.346][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.346][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.346][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.346][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.346][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.346][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.346][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.346][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.347][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.347][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.347][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.347][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.347][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.347][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.347][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.347][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.348][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.348][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.348][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.348][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.348][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.348][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.348][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.348][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.349][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.349][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.349][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.349][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.349][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.349][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.349][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.349][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.350][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.350][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.350][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.350][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.350][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.350][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.350][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.351][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.351][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.351][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.351][WAL_SIZE_TRIGGER] total_bytes=52464488, threshold #5 crossed (50MB), triggering flush to batch #785 +[07:43:52.351][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.351][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.351][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.351][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.352][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.352][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.352][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.352][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.352][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.352][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.352][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.352][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.352][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.353][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.353][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 800 batches in 118.309071ms +[07:43:52.353][PUT] put #800 +[07:43:52.353][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.353][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.353][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.353][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.353][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.354][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.354][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.354][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.354][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.354][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.354][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.354][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.354][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.355][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.355][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.355][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.355][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.355][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.355][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.355][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.355][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.355][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.356][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.356][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.356][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.356][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.356][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.356][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.356][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.356][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.357][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.357][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.357][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.357][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.357][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.357][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.357][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.357][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.358][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.358][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.358][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.358][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.358][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.358][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.358][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.358][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.359][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.359][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.359][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.359][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.359][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.359][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.359][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.359][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.359][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.360][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.360][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.360][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.360][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.360][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.360][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.360][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.360][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.361][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.361][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.361][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.361][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.361][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.361][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.361][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.361][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.362][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.362][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.362][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.362][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.362][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.362][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.362][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.362][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.363][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.363][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.363][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.363][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.363][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.363][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.363][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.363][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.364][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.364][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.364][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.364][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.364][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.364][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.364][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.364][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.364][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.365][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.365][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.365][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.365][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 900 batches in 130.53951ms +[07:43:52.365][PUT] put #900 +[07:43:52.365][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.365][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.365][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.365][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.366][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.366][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.366][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.366][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.366][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.366][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.366][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.366][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.367][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.367][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.367][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.367][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.367][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.367][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.367][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.367][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.368][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.368][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.368][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.368][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.368][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.368][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.368][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.368][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.369][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.369][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.369][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.369][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.369][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.369][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.369][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.369][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.370][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.370][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.370][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.370][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.370][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.370][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.370][WAL_SIZE_TRIGGER] total_bytes=62950832, threshold #6 crossed (60MB), triggering flush to batch #942 +[07:43:52.370][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.370][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.371][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.371][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.371][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.371][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.371][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.371][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.371][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.371][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.372][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.372][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.372][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.372][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.372][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.372][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.372][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.372][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.373][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.373][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.373][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.373][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.373][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.373][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.373][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.373][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.374][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.374][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.374][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.374][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.374][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.374][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.374][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.374][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.375][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.375][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.375][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.375][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.375][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.375][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.375][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.375][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.376][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.376][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.376][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.376][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.376][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.376][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.376][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.376][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.377][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.377][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.377][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.377][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.377][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.377][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.377][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.377][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 1000 batches in 142.929799ms +[07:43:52.377][PUT] put #1000 +[07:43:52.378][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.378][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.378][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.378][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.378][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.378][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.378][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.378][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.379][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.379][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.379][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.379][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.379][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.379][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.379][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.379][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.380][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.380][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.380][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.380][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.380][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.380][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.380][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.380][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.380][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.381][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.381][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.381][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.381][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.381][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.381][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.381][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.381][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.382][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.382][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.382][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.382][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.382][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.382][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.382][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.382][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.383][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.383][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.383][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.383][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.383][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.383][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.383][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.383][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.384][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.384][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.384][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.384][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.384][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.384][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.384][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.384][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.385][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.385][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.385][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.385][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.385][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.385][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.385][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.386][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.386][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.386][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.386][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.386][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.386][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.386][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.386][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.387][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.387][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.387][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.387][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.387][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.387][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.387][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.387][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.388][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.388][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.388][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.388][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.388][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.388][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.388][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.388][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.389][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.389][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.389][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.389][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.389][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.389][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.389][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.389][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.390][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.390][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.390][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.390][WAL_SIZE_TRIGGER] total_bytes=73437176, threshold #7 crossed (70MB), triggering flush to batch #1099 +[07:43:52.390][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 1100 batches in 155.651028ms +[07:43:52.390][PUT] put #1100 +[07:43:52.390][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.390][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.391][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.391][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.391][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.391][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.391][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.391][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.391][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.391][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.392][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.392][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.392][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.392][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.392][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.392][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.392][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.392][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.393][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.393][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.393][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.393][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.393][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.393][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.393][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.393][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.394][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.394][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.394][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.394][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.394][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.394][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.394][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.395][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.395][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.395][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.395][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.395][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.395][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.395][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.395][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.396][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.396][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.396][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.396][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.396][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.396][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.396][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.396][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.397][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.397][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.397][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.397][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.397][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.397][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.397][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.397][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.398][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.398][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.398][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.398][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.398][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.398][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.398][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.398][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.399][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.399][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.399][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.399][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.399][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.399][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.399][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.399][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.400][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.400][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.400][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.400][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.400][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.400][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.400][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.400][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.401][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.401][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.401][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.401][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.401][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.401][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.401][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.401][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.402][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.402][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.402][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.402][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.402][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.402][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.402][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.402][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.403][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.403][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.403][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 1200 batches in 168.353179ms +[07:43:52.403][PUT] put #1200 +[07:43:52.403][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.403][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.403][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.403][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.403][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.404][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.404][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.404][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.404][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.404][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.404][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.404][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.404][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.405][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.405][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.405][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.405][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.405][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.405][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.405][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.405][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.406][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.406][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.406][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.406][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.406][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.406][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.406][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.406][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.407][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.407][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.407][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.407][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.407][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.407][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.407][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.407][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.407][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.408][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.408][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.408][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.408][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.408][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.408][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.408][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.408][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.409][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.409][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.409][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.409][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.409][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.409][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.409][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.409][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.410][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.410][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.410][WAL_SIZE_TRIGGER] total_bytes=83923520, threshold #8 crossed (80MB), triggering flush to batch #1256 +[07:43:52.410][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.410][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.410][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.410][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.410][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.410][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.411][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.411][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.411][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.411][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.411][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.411][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.411][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.411][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.412][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.412][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.412][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.412][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.412][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.412][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.412][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.412][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.413][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.413][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.413][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.413][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.413][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.413][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.413][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.413][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.414][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.414][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.414][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.414][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.414][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.414][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.414][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.414][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.415][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.415][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.415][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.415][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.415][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.415][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 1300 batches in 180.745743ms +[07:43:52.415][PUT] put #1300 +[07:43:52.415][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.415][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.416][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.416][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.416][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.416][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.416][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.416][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.416][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.416][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.417][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.417][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.417][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.417][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.417][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.417][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.417][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.417][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.418][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.418][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.418][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.418][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.418][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.418][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.418][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.418][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.419][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.419][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.419][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.419][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.419][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.419][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.419][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.419][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.420][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.420][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.420][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.420][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.420][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.420][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.420][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.420][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.421][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.421][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.421][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.421][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.421][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.421][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.421][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.421][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.422][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.422][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.422][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.422][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.422][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.422][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.422][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.422][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.423][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.423][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.423][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.423][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.423][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.423][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.423][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.423][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.424][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.424][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.424][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.424][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.424][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.424][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.424][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.424][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.425][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.425][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.425][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.425][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.425][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.425][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.425][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.426][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.426][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.426][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.426][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.426][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.426][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.426][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.426][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.427][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.427][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.427][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.427][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.427][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.427][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.427][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.427][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.428][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.428][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.428][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 1400 batches in 193.378319ms +[07:43:52.428][PUT] put #1400 +[07:43:52.428][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.428][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.428][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.428][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.428][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.429][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.429][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.429][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.429][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.429][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.429][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.429][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.429][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.430][WAL_SIZE_TRIGGER] total_bytes=94409864, threshold #9 crossed (90MB), triggering flush to batch #1413 +[07:43:52.430][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.430][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.430][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.430][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.430][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.430][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.430][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.430][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.431][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.431][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.431][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.431][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.431][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.431][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.431][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.431][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.432][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.432][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.432][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.432][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.432][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.432][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.432][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.432][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.433][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.433][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.433][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.433][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.433][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.433][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.433][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.433][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.434][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.435][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.435][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.435][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.435][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.435][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.435][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.435][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.436][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.436][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.436][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.436][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.436][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.436][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.436][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.436][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.436][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.437][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.437][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.437][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.437][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.437][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.437][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.437][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.437][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.438][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.438][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.438][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.438][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.438][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.438][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.438][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.438][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.439][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.439][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.439][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.439][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.439][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.439][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.439][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.439][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.440][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.440][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.440][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.440][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.440][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.440][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.440][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.440][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.441][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.441][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.441][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.441][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.441][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.441][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 1500 batches in 206.730747ms +[07:43:52.441][PUT] put #1500 +[07:43:52.441][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.441][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.442][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.442][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.442][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.442][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.442][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.442][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.442][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.442][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.443][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.443][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.443][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.443][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.443][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.443][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.443][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.443][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.444][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.444][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.444][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.444][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.444][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.444][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.444][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.444][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.445][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.445][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.445][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.445][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.445][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.445][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.445][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.445][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.446][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.446][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.446][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.446][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.446][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.446][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.446][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.446][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.446][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.447][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.447][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.447][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.447][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.447][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.447][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.447][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.447][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.448][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.448][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.448][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.448][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.448][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.448][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.448][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.448][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.449][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.449][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.449][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.449][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.449][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.449][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.449][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.449][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.450][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.450][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.450][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.450][WAL_SIZE_TRIGGER] total_bytes=104896208, threshold #10 crossed (100MB), triggering flush to batch #1570 +[07:43:52.450][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.450][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.450][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.450][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.450][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.451][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.451][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.451][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.451][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.451][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.451][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.451][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.451][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.452][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.452][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.452][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.452][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.452][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.452][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.452][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.452][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.453][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.453][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.453][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.453][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.453][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.453][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.453][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.453][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.454][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 1600 batches in 219.182588ms +[07:43:52.454][PUT] put #1600 +[07:43:52.454][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.454][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.454][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.454][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.454][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.454][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.455][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.455][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.455][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.455][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.455][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.455][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.455][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.455][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.456][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.456][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.456][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.456][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.456][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.456][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.456][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.457][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.457][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.457][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.457][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.457][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.457][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.457][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.457][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.458][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.458][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.458][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.458][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.458][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.458][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.458][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.458][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.458][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.459][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.459][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.459][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.459][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.459][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.459][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.459][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.459][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.460][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.460][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.460][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.460][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.460][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.460][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.460][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.460][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.461][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.461][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.461][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.461][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.461][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.461][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.461][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.461][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.462][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.462][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.462][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.462][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.462][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.462][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.462][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.462][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.463][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.463][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.463][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.463][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.463][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.463][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.463][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.463][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.464][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.464][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.464][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.464][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.464][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.464][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.464][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.464][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.465][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.465][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.465][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.465][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.465][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.465][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.465][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.465][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.466][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.466][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.466][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.466][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.466][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.466][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 1700 batches in 231.787219ms +[07:43:52.466][PUT] put #1700 +[07:43:52.466][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.467][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.467][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.467][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.467][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.467][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.467][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.467][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.467][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.468][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.468][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.468][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.468][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.468][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.468][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.468][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.468][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.469][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.469][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.469][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.469][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.469][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.469][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.469][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.469][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.470][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.470][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.470][WAL_SIZE_TRIGGER] total_bytes=115382552, threshold #11 crossed (110MB), triggering flush to batch #1727 +[07:43:52.470][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.470][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.470][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.470][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.470][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.471][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.471][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.471][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.471][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.471][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.471][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.471][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.471][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.472][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.472][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.472][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.472][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.472][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.472][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.472][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.472][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.473][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.473][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.473][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.473][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.473][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.473][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.473][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.473][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.474][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.474][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.474][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.474][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.474][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.474][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.474][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.475][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.475][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.475][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.475][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.475][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.475][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.475][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.475][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.476][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.476][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.476][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.476][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.476][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.476][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.476][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.477][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.477][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.477][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.477][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.477][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.477][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.477][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.477][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.477][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.478][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.478][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.478][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.478][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.478][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.478][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.478][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.478][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.479][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.479][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.479][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.479][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.479][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 1800 batches in 244.68894ms +[07:43:52.479][PUT] put #1800 +[07:43:52.479][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.479][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.480][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.480][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.480][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.480][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.480][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.480][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.480][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.480][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.480][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.481][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.481][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.481][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.481][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.481][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.481][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.481][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.482][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.482][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.482][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.482][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.482][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.482][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.482][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.482][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.483][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.483][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.483][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.483][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.483][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.483][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.483][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.483][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.484][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.484][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.484][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.484][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.484][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.484][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.484][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.484][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.485][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.485][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.485][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.485][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.485][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.485][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.485][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.485][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.486][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.486][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.486][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.486][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.486][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.486][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.486][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.486][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.487][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.487][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.487][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.487][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.487][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.487][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.487][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.487][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.487][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.488][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.488][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.488][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.488][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.488][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.488][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.488][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.488][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.489][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.489][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.489][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.489][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.489][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.489][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.489][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.489][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.490][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.490][WAL_SIZE_TRIGGER] total_bytes=125868896, threshold #12 crossed (120MB), triggering flush to batch #1884 +[07:43:52.490][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.490][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.490][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.490][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.490][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.490][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.490][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.491][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.491][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.491][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.491][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.491][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.491][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.491][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.491][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.492][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 1900 batches in 257.163294ms +[07:43:52.492][PUT] put #1900 +[07:43:52.492][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.492][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.492][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.492][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.492][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.492][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.493][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.493][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.493][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.493][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.493][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.493][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.493][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.493][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.494][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.494][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.494][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.494][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.494][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.494][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.494][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.494][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.495][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.495][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.495][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.495][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.495][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.495][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.495][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.495][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.495][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.496][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.496][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.496][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.496][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.496][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.496][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.496][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.496][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.497][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.497][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.497][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.497][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.497][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.497][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.497][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.497][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.498][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.498][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.498][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.498][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.498][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.498][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.498][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.498][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.499][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.499][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.499][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.499][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.499][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.499][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.499][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.499][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.500][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.500][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.500][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.500][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.500][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.500][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.500][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.500][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.501][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.501][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.501][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.501][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.501][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.501][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.501][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.501][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.502][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.502][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.502][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.502][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.502][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.502][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.502][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.502][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.503][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.503][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.503][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.503][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.503][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.503][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.503][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.503][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.504][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.504][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.504][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.504][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.504][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 2000 batches in 269.683469ms +[07:43:52.504][PUT] put #2000 +[07:43:52.504][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.504][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.505][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.505][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.505][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.505][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.505][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.505][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.505][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.505][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.506][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.506][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.506][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.506][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.506][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.506][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.506][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.506][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.507][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.507][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.507][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.507][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.507][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.507][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.507][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.507][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.508][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.508][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.508][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.508][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.508][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.508][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.508][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.508][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.509][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.509][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.509][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.509][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.509][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.509][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.509][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.509][WAL_SIZE_TRIGGER] total_bytes=136355240, threshold #13 crossed (130MB), triggering flush to batch #2041 +[07:43:52.509][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.510][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.510][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.510][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.510][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.510][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.510][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.510][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.510][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.511][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.511][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.511][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.511][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.511][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.511][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.511][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.511][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.512][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.512][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.512][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.512][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.512][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.512][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.512][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.512][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.513][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.513][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.513][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.513][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.513][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.513][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.513][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.513][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.514][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.514][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.514][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.514][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.514][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.514][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.514][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.514][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.515][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.515][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.515][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.515][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.515][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.515][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.515][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.515][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.515][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.516][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.516][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.516][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.516][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.516][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.516][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.516][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.516][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.517][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 2100 batches in 282.141554ms +[07:43:52.517][PUT] put #2100 +[07:43:52.517][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.517][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.517][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.517][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.517][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.517][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.518][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.518][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.518][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.518][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.518][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.518][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.518][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.518][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.519][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.519][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.519][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.519][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.519][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.519][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.519][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.519][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.520][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.520][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.520][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.520][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.520][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.520][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.520][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.520][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.521][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.521][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.521][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.521][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.521][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.521][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.521][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.521][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.522][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.522][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.522][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.522][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.522][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.522][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.522][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.522][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.523][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.523][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.523][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.523][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.523][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.523][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.523][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.523][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.524][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.524][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.524][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.524][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.524][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.524][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.524][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.524][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.524][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.525][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.525][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.525][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.525][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.525][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.525][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.525][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.525][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.526][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.526][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.526][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.526][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.526][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.526][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.526][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.526][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.527][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.527][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.527][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.527][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.527][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.527][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.527][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.527][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.528][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.528][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.528][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.528][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.528][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.528][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.528][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.529][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.529][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.529][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.529][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.529][WAL_SIZE_TRIGGER] total_bytes=146841584, threshold #14 crossed (140MB), triggering flush to batch #2198 +[07:43:52.529][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.529][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 2200 batches in 294.770391ms +[07:43:52.529][PUT] put #2200 +[07:43:52.529][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.529][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.530][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.530][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.530][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.530][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.530][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.530][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.530][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.531][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.531][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.531][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.531][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.531][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.531][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.531][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.531][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.531][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.532][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.532][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.532][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.532][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.532][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.532][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.532][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.532][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.533][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.533][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.533][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.533][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.533][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.533][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.533][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.533][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.534][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.534][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.534][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.534][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.534][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.534][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.534][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.534][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.534][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.535][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.535][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.535][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.535][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.535][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.535][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.535][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.536][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.536][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.536][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.536][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.536][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.536][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.536][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.536][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.536][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.537][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.537][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.537][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.537][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.537][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.537][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.537][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.537][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.538][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.538][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.538][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.538][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.538][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.538][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.538][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.538][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.539][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.539][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.539][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.539][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.539][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.539][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.539][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.539][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.540][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.540][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.540][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.540][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.540][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.540][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.540][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.540][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.540][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.541][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.541][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.541][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.541][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.541][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.541][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.541][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.541][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 2300 batches in 306.983532ms +[07:43:52.542][PUT] put #2300 +[07:43:52.542][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.542][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.542][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.542][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.542][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.542][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.542][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.542][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.543][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.543][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.543][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.543][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.543][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.543][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.543][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.543][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.544][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.544][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.544][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.544][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.544][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.544][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.544][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.544][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.545][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.545][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.545][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.545][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.545][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.545][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.545][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.545][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.545][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.546][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.546][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.546][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.546][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.546][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.546][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.546][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.546][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.547][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.547][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.547][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.547][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.547][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.547][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.547][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.547][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.548][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.548][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.548][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.548][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.548][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.548][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.548][WAL_SIZE_TRIGGER] total_bytes=157327928, threshold #15 crossed (150MB), triggering flush to batch #2355 +[07:43:52.548][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.548][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.549][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.549][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.549][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.549][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.549][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.549][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.549][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.549][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.550][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.550][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.550][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.550][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.550][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.550][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.550][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.550][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.551][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.551][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.551][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.551][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.551][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.551][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.551][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.551][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.552][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.552][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.552][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.552][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.552][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.552][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.552][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.552][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.552][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 2400 batches in 319.263645ms +[07:43:52.554][PUT] put #2400 +[07:43:52.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.557][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.557][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.557][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.557][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.557][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.557][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.557][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.557][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.558][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.558][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.558][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.558][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.558][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.558][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.558][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.558][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.559][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.559][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.559][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.559][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.559][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.559][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.559][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.559][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.559][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.560][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.560][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.560][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.560][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.560][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.560][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.560][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.560][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.561][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.561][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.561][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.561][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.561][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.561][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.561][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.561][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.562][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.562][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.562][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.562][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.562][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.562][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.562][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.562][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.563][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.564][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.565][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 2500 batches in 331.68051ms +[07:43:52.566][PUT] put #2500 +[07:43:52.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.566][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.567][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.568][WAL_SIZE_TRIGGER] total_bytes=167814272, threshold #16 crossed (160MB), triggering flush to batch #2512 +[07:43:52.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.568][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.569][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.570][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.571][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.572][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.573][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.574][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.575][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.576][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.577][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.578][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 2600 batches in 344.330312ms +[07:43:52.579][PUT] put #2600 +[07:43:52.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.579][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.580][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.585][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.587][WAL_SIZE_TRIGGER] total_bytes=178300616, threshold #17 crossed (170MB), triggering flush to batch #2669 +[07:43:52.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 2700 batches in 356.964818ms +[07:43:52.592][PUT] put #2700 +[07:43:52.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.595][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.595][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.595][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.595][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.595][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.595][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.595][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.595][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.597][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.598][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.599][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.599][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.599][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.599][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.599][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.599][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.599][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.599][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.600][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.600][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.600][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.600][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.600][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.600][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.600][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.600][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.601][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.602][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.603][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.604][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.604][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 2800 batches in 369.32116ms +[07:43:52.604][PUT] put #2800 +[07:43:52.604][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.604][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.604][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.604][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.604][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.605][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.606][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.607][WAL_SIZE_TRIGGER] total_bytes=188786960, threshold #18 crossed (180MB), triggering flush to batch #2826 +[07:43:52.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.607][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.608][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.608][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.608][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.608][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.608][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.608][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.608][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.608][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.609][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.609][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.609][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.609][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.609][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.609][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.609][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.609][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.610][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.610][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.610][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.610][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.610][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.610][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.610][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.610][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.611][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.611][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.611][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.611][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.611][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.611][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.611][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.611][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.612][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.612][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.612][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.612][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.612][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.612][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.612][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.612][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.613][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.613][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.613][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.613][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.613][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.613][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.613][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.613][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.614][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.614][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.614][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.614][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.614][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.614][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.614][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.614][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.614][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.615][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.615][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.615][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.615][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.615][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.615][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.615][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.615][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.616][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.616][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.616][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.616][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.616][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.616][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 2900 batches in 381.749759ms +[07:43:52.616][PUT] put #2900 +[07:43:52.616][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.616][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.617][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.617][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.617][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.617][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.617][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.617][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.617][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.617][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.618][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.618][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.618][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.618][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.618][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.618][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.618][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.618][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.619][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.619][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.619][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.619][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.619][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.619][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.619][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.619][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.620][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.620][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.620][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.620][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.620][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.620][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.620][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.620][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.624][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.624][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.624][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.624][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.624][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.624][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.624][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.624][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.627][WAL_SIZE_TRIGGER] total_bytes=199273304, threshold #19 crossed (190MB), triggering flush to batch #2983 +[07:43:52.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 3000 batches in 394.302224ms +[07:43:52.629][PUT] put #3000 +[07:43:52.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.635][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.638][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.639][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.640][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 3100 batches in 406.594949ms +[07:43:52.641][PUT] put #3100 +[07:43:52.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.641][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.642][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.643][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.644][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.645][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.645][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.645][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.645][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.645][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.645][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.645][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.645][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.646][WAL_SIZE_TRIGGER] total_bytes=209759648, threshold #20 crossed (200MB), triggering flush to batch #3140 +[07:43:52.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.646][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.647][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.648][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.649][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.650][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.651][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.652][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.653][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 3200 batches in 419.163564ms +[07:43:52.654][PUT] put #3200 +[07:43:52.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.654][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.655][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.656][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.657][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.658][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.659][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.659][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.659][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.659][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.659][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.659][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.659][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.659][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.660][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.660][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.660][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.660][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.660][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.660][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.660][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.660][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.661][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.661][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.661][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.661][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.661][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.661][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.661][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.661][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.662][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.662][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.662][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.662][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.662][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.662][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.662][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.662][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.662][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.663][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.663][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.663][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.663][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.663][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.663][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.663][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.663][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.664][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.664][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.664][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.664][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.664][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.664][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.664][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.664][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.665][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.665][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.665][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.665][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.665][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.665][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.665][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.665][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.665][WAL_SIZE_TRIGGER] total_bytes=220245992, threshold #21 crossed (210MB), triggering flush to batch #3297 +[07:43:52.666][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.666][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.666][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 3300 batches in 431.390538ms +[07:43:52.666][PUT] put #3300 +[07:43:52.666][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.666][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.666][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.666][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.666][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.667][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.667][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.667][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.667][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.667][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.667][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.667][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.667][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.668][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.668][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.668][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.668][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.668][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.668][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.668][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.668][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.669][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.669][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.669][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.669][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.669][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.669][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.669][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.669][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.670][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.670][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.670][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.670][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.670][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.670][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.670][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.670][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.671][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.671][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.671][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.671][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.671][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.671][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.671][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.671][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.672][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.672][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.672][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.672][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.672][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.672][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.672][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.672][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.672][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.673][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.673][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.673][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.673][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.673][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.673][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.673][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.673][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.674][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.674][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.674][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.674][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.674][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.674][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.674][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.674][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.675][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.675][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.675][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.675][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.675][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.675][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.675][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.675][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.676][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.676][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.676][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.676][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.676][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.676][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.676][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.676][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.677][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.677][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.677][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.677][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.677][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.677][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.677][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.677][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.677][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.678][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.678][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.678][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.678][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.678][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 3400 batches in 443.672459ms +[07:43:52.678][PUT] put #3400 +[07:43:52.678][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.678][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.679][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.679][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.679][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.679][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.679][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.679][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.679][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.679][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.679][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.680][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.680][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.680][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.680][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.680][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.680][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.680][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.680][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.681][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.681][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.681][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.681][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.681][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.681][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.681][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.682][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.682][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.682][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.682][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.682][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.682][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.682][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.682][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.682][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.683][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.683][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.683][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.683][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.683][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.683][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.683][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.683][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.684][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.684][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.684][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.684][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.684][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.684][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.684][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.684][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.685][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.685][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.685][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.685][WAL_SIZE_TRIGGER] total_bytes=230732336, threshold #22 crossed (220MB), triggering flush to batch #3454 +[07:43:52.685][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.685][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.685][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.685][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.685][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.686][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.686][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.686][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.686][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.686][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.686][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.686][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.686][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.687][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.687][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.687][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.687][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.687][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.687][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.687][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.687][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.688][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.688][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.688][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.688][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.688][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.688][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.688][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.688][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.689][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.689][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.689][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.689][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.689][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.689][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.689][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.689][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.690][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.690][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.690][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.690][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.690][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.690][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.690][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.690][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.691][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 3500 batches in 456.207369ms +[07:43:52.691][PUT] put #3500 +[07:43:52.691][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.691][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.691][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.691][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.691][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.691][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.692][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.692][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.692][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.692][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.692][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.692][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.692][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.692][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.693][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.693][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.693][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.693][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.693][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.693][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.693][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.693][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.694][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.694][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.694][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.694][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.694][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.694][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.694][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.694][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.695][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.695][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.695][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.695][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.695][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.695][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.695][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.695][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.696][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.696][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.696][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.696][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.696][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.696][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.696][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.696][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.697][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.697][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.697][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.697][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.697][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.697][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.697][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.697][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.697][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.698][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.698][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.698][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.698][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.698][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.698][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.698][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.698][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.699][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.699][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.699][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.699][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.699][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.699][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.699][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.699][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.700][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.700][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.700][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.700][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.700][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.700][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.700][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.700][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.700][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.701][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.701][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.701][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.701][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.701][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.701][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.701][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.701][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.702][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.702][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.702][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.702][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.702][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.702][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.702][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.703][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.703][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.703][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.703][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.703][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 3600 batches in 468.615621ms +[07:43:52.703][PUT] put #3600 +[07:43:52.703][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.703][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.703][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.704][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.704][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.704][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.704][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.704][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.704][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.704][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.704][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.705][WAL_SIZE_TRIGGER] total_bytes=241218680, threshold #23 crossed (230MB), triggering flush to batch #3611 +[07:43:52.705][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.705][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.705][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.705][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.705][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.705][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.705][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.706][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.706][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.706][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.706][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.706][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.706][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.706][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.706][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.707][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.707][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.707][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.707][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.707][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.707][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.707][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.707][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.707][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.708][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.708][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.708][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.708][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.708][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.708][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.708][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.708][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.709][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.709][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.709][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.709][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.709][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.709][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.709][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.710][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.710][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.710][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.710][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.710][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.710][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.710][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.710][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.711][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.711][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.711][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.711][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.711][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.711][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.711][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.711][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.712][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.712][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.712][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.712][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.712][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.712][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.712][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.712][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.712][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.713][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.713][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.713][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.713][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.713][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.713][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.713][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.713][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.714][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.714][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.714][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.714][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.714][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.714][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.714][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.714][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.715][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.715][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.715][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.715][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.715][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.715][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.715][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.715][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.716][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 3700 batches in 481.101645ms +[07:43:52.716][PUT] put #3700 +[07:43:52.716][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.716][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.716][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.716][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.716][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.716][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.716][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.717][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.717][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.717][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.717][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.717][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.717][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.717][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.717][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.718][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.718][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.718][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.718][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.718][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.718][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.718][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.718][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.719][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.719][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.719][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.719][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.719][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.719][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.719][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.719][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.719][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.720][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.720][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.720][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.720][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.720][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.720][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.720][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.720][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.721][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.721][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.721][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.721][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.721][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.721][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.721][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.721][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.722][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.722][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.722][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.722][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.722][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.722][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.722][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.722][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.723][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.723][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.723][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.723][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.723][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.723][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.723][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.723][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.723][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.724][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.724][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.724][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.724][WAL_SIZE_TRIGGER] total_bytes=251705024, threshold #24 crossed (240MB), triggering flush to batch #3768 +[07:43:52.724][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.724][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.724][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.724][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.725][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.725][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.725][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.725][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.725][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.725][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.725][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.725][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.726][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.726][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.726][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.726][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.726][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.726][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.726][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.726][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.727][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.727][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.727][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.727][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.727][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.727][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.727][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.727][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.728][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.728][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.728][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.728][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 3800 batches in 493.494913ms +[07:43:52.728][PUT] put #3800 +[07:43:52.728][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.728][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.728][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.728][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.729][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.729][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.729][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.729][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.729][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.729][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.729][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.729][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.730][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.730][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.730][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.730][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.730][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.730][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.730][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.730][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.730][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.731][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.731][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.731][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.731][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.731][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.731][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.731][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.731][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.732][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.732][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.732][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.732][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.732][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.732][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.732][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.732][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.733][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.733][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.733][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.733][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.733][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.733][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.733][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.733][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.733][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.734][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.734][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.734][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.734][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.734][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.734][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.734][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.734][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.735][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.735][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.735][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.735][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.735][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.735][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.735][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.735][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.736][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.736][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.736][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.736][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.736][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.736][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.736][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.736][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.737][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.737][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.737][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.737][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.737][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.737][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.737][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.737][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.738][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.738][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.738][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.738][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.738][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.738][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.738][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.738][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.739][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.739][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.739][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.739][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.739][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.739][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.739][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.739][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.739][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.740][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.740][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.740][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.740][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.740][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 3900 batches in 505.653308ms +[07:43:52.740][PUT] put #3900 +[07:43:52.740][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.740][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.740][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.741][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.741][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.741][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.741][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.741][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.741][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.741][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.741][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.742][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.742][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.742][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.742][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.742][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.742][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.742][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.742][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.743][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.743][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.743][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.743][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.743][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.743][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.743][WAL_SIZE_TRIGGER] total_bytes=262191368, threshold #25 crossed (250MB), triggering flush to batch #3925 +[07:43:52.743][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.743][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.744][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.744][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.744][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.744][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.744][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.744][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.744][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.744][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.744][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.745][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.745][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.745][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.745][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.745][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.745][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.745][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.745][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.746][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.746][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.746][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.746][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.746][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.746][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.746][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.746][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.747][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.747][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.747][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.747][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.747][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.747][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.747][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.747][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.748][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.748][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.748][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.748][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.748][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.748][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.748][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.748][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.749][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.749][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.749][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.749][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.749][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.749][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.749][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.749][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.750][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.750][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.750][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.750][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.750][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.750][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.750][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.750][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.751][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.751][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.751][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.751][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.751][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.751][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.751][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.751][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.752][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.752][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.752][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.752][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.752][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.752][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.752][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.752][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 4000 batches in 518.043689ms +[07:43:52.753][PUT] put #4000 +[07:43:52.753][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.753][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.753][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.753][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.753][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.753][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.753][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.754][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.754][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.754][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.754][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.754][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.754][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.754][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.754][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.754][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.755][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.755][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.755][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:52.755][DISPATCHER] Task 'memtable_flusher' received message: FlushMemTable { done: None } +[07:43:52.755][FLUSH_HANDLER] Received FlushMemTable: batches=4019, remaining=3981, pending_batches=4019 +[07:43:52.755][MEMTABLE_FLUSH] Starting do_flush: 4019 batches +[07:43:52.755][FREEZE] Starting freeze_memtable +[07:43:52.755][FREEZE] WAL flush: pending_batches=4019, remaining_capacity=3981 +[07:43:53.038][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.038][WAL_TIME_TRIGGER] total_bytes=268536608, interval elapsed, triggering flush to batch #4020 +[07:43:53.038][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.038][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.038][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.038][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.038][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.039][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.039][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.039][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.039][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.039][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.039][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.039][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.039][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.040][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.040][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.040][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.040][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.041][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.041][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.041][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.041][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.041][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.042][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.042][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.042][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.042][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.042][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.042][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.042][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.043][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.043][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.043][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.043][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.044][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.044][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.044][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.044][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.044][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.044][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.044][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.044][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.044][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.045][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.045][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.045][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.046][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.046][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.046][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.046][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.046][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.046][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.046][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.047][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.047][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.047][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.047][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.047][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.048][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.048][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.048][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.048][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.048][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.048][WAL_SIZE_TRIGGER] total_bytes=272677712, threshold #26 crossed (260MB), triggering flush to batch #4082 +[07:43:53.048][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.048][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.048][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.049][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.049][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.049][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.049][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.049][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.049][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.049][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.049][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.050][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.050][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.050][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.051][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.051][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.051][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.051][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 4100 batches in 816.800049ms +[07:43:53.051][PUT] put #4100 +[07:43:53.051][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.051][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.052][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.052][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.052][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.052][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.052][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.052][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.053][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.053][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.053][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.053][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.054][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.054][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.054][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.054][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.055][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.055][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.055][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.055][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.055][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.055][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.055][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.056][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.056][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.056][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.057][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.057][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.057][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.057][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.057][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.058][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.058][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.058][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.058][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.058][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.059][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.059][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.059][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.059][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.059][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.060][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.060][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.060][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.060][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.060][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.060][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.060][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.060][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.061][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.061][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.061][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.061][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.061][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.061][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.061][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.061][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.062][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.062][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.062][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.062][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.062][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.062][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.062][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.062][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.063][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.063][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.063][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.063][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.063][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.063][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.063][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.063][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.064][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.064][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.064][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.064][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.064][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.064][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.064][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.064][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.065][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.065][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.065][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.065][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.065][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.065][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.065][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.065][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.066][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.066][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.066][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.066][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.066][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.066][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.066][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.066][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.067][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.067][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.067][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 4200 batches in 832.472053ms +[07:43:53.067][PUT] put #4200 +[07:43:53.067][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.067][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.067][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.067][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.068][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.068][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.068][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.068][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.068][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.068][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.068][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.068][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.069][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.069][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.069][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.069][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.069][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.069][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.069][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.069][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.070][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.070][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.070][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.070][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.070][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.070][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.070][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.070][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.071][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.072][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.072][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.072][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.072][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.072][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.072][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.072][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.072][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.073][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.073][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.073][WAL_SIZE_TRIGGER] total_bytes=283164056, threshold #27 crossed (270MB), triggering flush to batch #4239 +[07:43:53.073][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.073][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.073][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.073][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.073][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.073][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.074][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.074][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.074][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.074][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.075][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.075][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.075][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.075][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.075][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.075][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.076][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.076][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.076][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.076][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.076][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.076][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.076][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.076][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.077][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.077][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.077][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.077][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.077][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.077][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.077][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.078][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.079][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.079][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.079][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.079][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.079][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.079][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.079][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.079][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.080][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.080][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.080][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.080][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.080][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.080][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.080][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.080][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.082][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.082][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.082][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.082][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.082][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.082][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.082][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.082][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.083][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.083][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.083][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.083][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.084][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 4300 batches in 849.655944ms +[07:43:53.084][PUT] put #4300 +[07:43:53.084][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.084][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.085][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.085][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.085][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.085][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.085][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.085][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.085][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.085][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.086][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.086][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.086][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.086][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.086][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.086][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.086][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.086][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.087][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.087][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.087][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.087][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.087][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.087][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.087][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.089][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.089][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.089][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.089][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.089][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.089][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.089][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.090][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.090][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.090][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.090][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.090][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.090][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.090][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.090][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.091][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.091][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.091][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.091][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.091][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.091][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.091][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.091][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.092][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.092][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.092][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.092][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.092][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.092][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.092][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.092][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.093][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.093][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.093][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.093][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.093][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.093][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.093][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.093][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.094][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.094][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.094][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.094][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.094][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.094][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.094][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.095][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.095][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.095][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.095][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.095][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.095][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.095][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.095][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.096][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.096][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.096][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.096][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.096][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.096][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.096][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.096][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.096][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.096][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.097][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.097][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.097][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.097][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.097][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.097][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.097][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.097][WAL_SIZE_TRIGGER] total_bytes=293650400, threshold #28 crossed (280MB), triggering flush to batch #4396 +[07:43:53.097][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.097][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.097][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.097][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 4400 batches in 862.832419ms +[07:43:53.097][PUT] put #4400 +[07:43:53.097][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.097][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.098][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.098][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.098][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.098][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.098][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.098][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.098][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.098][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.098][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.098][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.098][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.098][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.098][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.099][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.099][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.099][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.099][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.099][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.099][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.099][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.099][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.099][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.099][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.099][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.099][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.099][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.100][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.100][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.100][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.100][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.100][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.100][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.100][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.100][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.100][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.100][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.100][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.100][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.100][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.100][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.101][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.101][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.101][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.101][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.101][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.101][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.101][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.101][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.101][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.101][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.101][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.101][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.101][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.102][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.102][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.102][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.102][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.102][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.102][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.102][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.102][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.102][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.102][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.102][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.102][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.102][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.103][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.103][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.103][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.103][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.103][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.103][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.103][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.103][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.103][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.103][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.103][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.103][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.103][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.104][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.104][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.104][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.104][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.104][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.104][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.104][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.104][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.104][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.104][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.104][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.104][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.104][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.104][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.105][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.105][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.105][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.105][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.105][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 4500 batches in 870.4199ms +[07:43:53.105][PUT] put #4500 +[07:43:53.105][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.105][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.105][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.105][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.105][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.105][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.105][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.106][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.106][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.106][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.106][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.106][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.106][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.106][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.106][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.106][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.106][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.106][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.106][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.106][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.107][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.127][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.127][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.127][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.127][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.127][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.127][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.127][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.128][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.128][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.128][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.128][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.128][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.128][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.128][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.128][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.128][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.129][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.129][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.129][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.129][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.129][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.129][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.129][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.129][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.129][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.130][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.130][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.130][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.130][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.130][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.130][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.130][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.130][WAL_SIZE_TRIGGER] total_bytes=304136744, threshold #29 crossed (290MB), triggering flush to batch #4553 +[07:43:53.130][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.131][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.131][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.131][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.131][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.131][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.131][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.131][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.131][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.132][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.132][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.132][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.132][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.132][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.132][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.132][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.132][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.132][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.133][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.133][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.133][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.133][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.133][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.133][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.133][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.133][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.133][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.134][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.134][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.134][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.134][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.134][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.134][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.134][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.134][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.134][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.135][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.135][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.135][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.135][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.135][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.135][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.135][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.135][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.135][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.136][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.136][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 4600 batches in 901.314097ms +[07:43:53.136][PUT] put #4600 +[07:43:53.136][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.136][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.136][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.136][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.136][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.136][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.137][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.137][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.137][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.137][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.137][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.137][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.137][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.137][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.137][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.138][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.138][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.138][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.138][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.140][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.140][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.140][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.141][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.141][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.141][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.141][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.141][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.141][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.141][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.141][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.142][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.142][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.142][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.142][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.142][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.142][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.142][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.142][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.143][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.143][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.143][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.143][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.143][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.143][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.143][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.143][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.143][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.144][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.144][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.145][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.145][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.145][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.145][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.145][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.146][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.146][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.146][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.146][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.146][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.146][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.146][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.146][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.146][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.147][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.147][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.147][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.147][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.147][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.147][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.147][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.147][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.147][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.148][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.148][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.148][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.148][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.148][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.148][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.148][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.148][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.148][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.150][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.150][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.150][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.150][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.151][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.151][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.151][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.151][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.151][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.151][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.151][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.151][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.151][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.152][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.152][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.152][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.152][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.152][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.152][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 4700 batches in 917.692484ms +[07:43:53.152][PUT] put #4700 +[07:43:53.152][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.152][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.152][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.153][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.153][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.154][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.154][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.154][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.154][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.155][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.155][WAL_SIZE_TRIGGER] total_bytes=314623088, threshold #30 crossed (300MB), triggering flush to batch #4710 +[07:43:53.155][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.155][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.155][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.155][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.155][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.155][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.155][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.156][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.156][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.156][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.156][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.156][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.156][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.156][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.156][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.157][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.177][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.177][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.177][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.177][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.177][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.177][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.177][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.177][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.178][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.178][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.178][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.178][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.178][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.178][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.178][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.178][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.178][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.179][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.179][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.179][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.179][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.179][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.179][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.179][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.179][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.179][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.180][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.180][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.180][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.180][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.180][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.180][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.180][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.180][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.180][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.181][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.181][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.181][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.181][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.181][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.181][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.181][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.181][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.181][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.182][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.182][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.182][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.182][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.182][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.182][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.182][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.182][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.182][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.183][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.183][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.183][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.183][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.183][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.183][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.183][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.183][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.184][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.184][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.184][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.184][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.184][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.184][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.184][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.184][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.184][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.185][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.185][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.185][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.185][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 4800 batches in 950.475943ms +[07:43:53.185][PUT] put #4800 +[07:43:53.185][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.185][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.185][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.185][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.186][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.186][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.186][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.186][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.186][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.186][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.186][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.186][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.186][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.187][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.187][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.187][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.187][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.187][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.187][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.187][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.187][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.187][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.187][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.188][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.188][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.188][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.188][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.188][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.188][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.188][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.188][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.188][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.189][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.189][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.189][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.189][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.189][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.189][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.189][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.189][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.189][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.190][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.190][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.190][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.190][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.190][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.190][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.190][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.190][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.191][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.191][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.191][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.191][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.191][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.191][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.191][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.191][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.191][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.192][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.192][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.192][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.192][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.192][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.192][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.192][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.192][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.192][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.192][WAL_SIZE_TRIGGER] total_bytes=325109432, threshold #31 crossed (310MB), triggering flush to batch #4867 +[07:43:53.193][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.193][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.193][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.193][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.193][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.193][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.193][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.193][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.193][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.194][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.194][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.194][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.194][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.194][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.194][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.194][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.194][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.194][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.195][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.195][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.195][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.195][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.195][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.195][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.195][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.195][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.195][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.196][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.196][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.196][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.196][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.196][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.196][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 4900 batches in 961.681714ms +[07:43:53.196][PUT] put #4900 +[07:43:53.196][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.196][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.196][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.217][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.218][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.218][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.218][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.218][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.218][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.219][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.219][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.219][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.219][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.219][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.219][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.219][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.219][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.219][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.220][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.220][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.220][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.220][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.220][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.220][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.220][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.220][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.220][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.221][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.221][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.221][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.221][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.221][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.221][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.221][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.221][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.221][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.222][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.222][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.222][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.222][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.222][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.222][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.222][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.222][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.222][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.223][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.223][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.223][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.223][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.223][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.223][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.223][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.223][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.223][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.224][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.224][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.224][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.224][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.224][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.224][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.224][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.224][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.224][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.225][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.225][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.225][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.225][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.225][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.225][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.225][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.225][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.225][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.226][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.226][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.226][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.226][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.226][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.226][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.226][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.226][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.226][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.227][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.227][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.227][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.227][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.227][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.227][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.227][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.227][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.227][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.228][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.228][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.228][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.228][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.228][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.228][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.228][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.228][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.228][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.230][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 5000 batches in 995.843667ms +[07:43:53.230][PUT] put #5000 +[07:43:53.230][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.231][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.231][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.231][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.231][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.231][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.231][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.231][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.231][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.231][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.232][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.232][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.232][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.232][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.232][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.232][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.232][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.232][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.232][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.233][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.234][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.234][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.234][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.235][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.235][WAL_SIZE_TRIGGER] total_bytes=335608064, threshold #32 crossed (320MB), triggering flush to batch #5024 +[07:43:53.235][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.235][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.235][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.235][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.235][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.235][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.235][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.235][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.236][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.236][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.236][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.236][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.236][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.236][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.236][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.236][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.236][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.259][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.259][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.259][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.259][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.259][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.259][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.259][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.259][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.260][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.260][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.260][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.260][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.260][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.260][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.260][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.260][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.260][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.261][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.261][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.261][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.261][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.261][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.261][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.261][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.261][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.261][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.261][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.262][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.262][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.262][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.262][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.262][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.262][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.262][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.262][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.263][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.263][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.263][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.263][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.263][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.263][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.263][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.263][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.263][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.264][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.264][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.264][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.264][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.264][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.264][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.264][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.264][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.264][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.265][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.265][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.265][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.265][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.265][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.265][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 5100 batches in 1.030714187s +[07:43:53.265][PUT] put #5100 +[07:43:53.265][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.265][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.266][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.266][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.266][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.266][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.266][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.266][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.266][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.266][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.266][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.267][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.267][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.267][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.267][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.267][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.267][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.267][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.267][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.267][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.268][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.268][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.268][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.268][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.268][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.268][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.268][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.268][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.269][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.269][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.269][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.269][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.269][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.269][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.269][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.269][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.269][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.270][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.270][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.270][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.270][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.270][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.270][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.270][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.270][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.270][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.271][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.271][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.271][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.271][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.271][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.271][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.271][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.271][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.272][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.272][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.272][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.272][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.272][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.272][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.272][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.272][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.272][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.273][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.273][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.273][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.273][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.273][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.273][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.273][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.273][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.273][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.274][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.274][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.274][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.274][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.274][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.274][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.274][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.274][WAL_SIZE_TRIGGER] total_bytes=346040184, threshold #33 crossed (330MB), triggering flush to batch #5179 +[07:43:53.274][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.275][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.275][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.275][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.275][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.275][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.275][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.275][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.275][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.275][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.276][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.276][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.276][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.276][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.276][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.276][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.276][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.276][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.276][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.301][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.301][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 5200 batches in 1.066454847s +[07:43:53.301][PUT] put #5200 +[07:43:53.301][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.301][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.301][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.301][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.301][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.302][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.302][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.302][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.302][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.302][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.302][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.302][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.303][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.303][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.303][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.303][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.303][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.303][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.304][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.305][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.305][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.305][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.305][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.305][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.305][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.305][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.305][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.306][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.306][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.306][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.306][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.306][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.306][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.306][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.306][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.307][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.307][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.307][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.307][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.307][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.307][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.307][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.307][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.308][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.308][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.308][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.308][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.308][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.308][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.308][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.308][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.309][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.309][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.309][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.309][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.309][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.309][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.309][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.309][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.309][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.310][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.310][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.310][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.310][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.310][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.310][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.310][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.310][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.310][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.311][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.311][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.311][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.311][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.311][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.311][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.311][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.311][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.311][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.312][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.312][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.312][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.312][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.312][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.312][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.312][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.312][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.313][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.313][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.313][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.313][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.313][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.313][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.313][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.313][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.313][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.314][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.314][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.314][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.314][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.314][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 5300 batches in 1.07959778s +[07:43:53.314][PUT] put #5300 +[07:43:53.314][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.314][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.314][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.315][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.315][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.315][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.315][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.315][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.315][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.315][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.315][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.315][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.316][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.316][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.316][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.316][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.316][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.316][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.316][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.316][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.316][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.317][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.337][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.337][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.337][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.337][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.337][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.337][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.337][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.338][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.338][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.338][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.338][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.338][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.338][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.338][WAL_SIZE_TRIGGER] total_bytes=356539608, threshold #34 crossed (340MB), triggering flush to batch #5335 +[07:43:53.338][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.338][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.339][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.339][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.339][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.339][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.339][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.339][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.339][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.339][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.339][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.340][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.340][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.340][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.340][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.340][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.340][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.340][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.340][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.340][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.341][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.341][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.341][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.341][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.341][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.341][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.341][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.341][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.341][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.342][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.342][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.342][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.342][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.342][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.342][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.342][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.342][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.343][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.343][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.343][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.343][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.343][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.343][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.343][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.343][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.343][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.343][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.344][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.344][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.344][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.344][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.344][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.344][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.344][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.344][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.345][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.345][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.345][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.345][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.345][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.345][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.345][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.345][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.345][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.346][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 5400 batches in 1.111123599s +[07:43:53.346][PUT] put #5400 +[07:43:53.346][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.346][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.348][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.348][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.348][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.348][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.348][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.349][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.349][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.349][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.349][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.349][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.349][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.349][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.349][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.349][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.350][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.350][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.350][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.350][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.350][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.350][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.350][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.350][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.350][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.351][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.351][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.351][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.351][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.351][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.351][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.351][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.351][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.352][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.352][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.352][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.352][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.352][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.352][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.352][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.352][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.352][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.353][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.353][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.353][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.353][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.353][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.353][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.353][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.353][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.353][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.354][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.354][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.354][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.354][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.354][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.354][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.354][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.354][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.355][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.355][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.355][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.355][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.355][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.355][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.355][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.355][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.355][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.356][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.356][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.356][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.356][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.356][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.356][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.356][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.356][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.356][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.357][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.381][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.381][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.381][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.381][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.381][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.381][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.381][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.382][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.382][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.382][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.382][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.382][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.382][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.382][WAL_SIZE_TRIGGER] total_bytes=367039032, threshold #35 crossed (350MB), triggering flush to batch #5491 +[07:43:53.382][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.383][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.383][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.383][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.383][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.383][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.383][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.383][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.383][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 5500 batches in 1.149037023s +[07:43:53.384][PUT] put #5500 +[07:43:53.384][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.384][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.384][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.384][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.384][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.384][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.384][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.384][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.385][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.385][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.385][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.385][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.385][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.385][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.385][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.385][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.385][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.386][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.386][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.386][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.386][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.386][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.386][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.386][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.386][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.386][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.387][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.387][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.387][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.387][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.387][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.387][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.387][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.387][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.388][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.388][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.388][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.388][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.388][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.388][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.388][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.388][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.388][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.389][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.389][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.389][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.389][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.389][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.389][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.389][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.389][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.389][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.390][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.390][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.390][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.390][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.390][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.390][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.390][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.390][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.390][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.391][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.391][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.391][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.391][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.391][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.391][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.391][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.391][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.391][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.392][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.392][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.392][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.392][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.392][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.392][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.392][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.392][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.393][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.393][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.393][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.393][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.393][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.393][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.393][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.393][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.393][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.393][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.394][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.394][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.394][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.394][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.394][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.394][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.394][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.394][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.394][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.395][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.395][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.395][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 5600 batches in 1.160439477s +[07:43:53.395][PUT] put #5600 +[07:43:53.395][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.395][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.395][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.395][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.395][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.396][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.396][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.396][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.396][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.396][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.396][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.396][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.396][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.417][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.417][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.417][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.417][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.417][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.417][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.417][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.417][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.418][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.418][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.418][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.418][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.418][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.418][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.418][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.418][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.418][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.419][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.419][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.419][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.419][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.419][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.419][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.419][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.419][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.419][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.420][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.420][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.420][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.420][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.420][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.420][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.420][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.420][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.420][WAL_SIZE_TRIGGER] total_bytes=377538456, threshold #36 crossed (360MB), triggering flush to batch #5647 +[07:43:53.421][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.421][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.421][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.421][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.421][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.421][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.421][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.421][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.421][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.422][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.422][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.422][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.422][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.422][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.422][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.422][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.422][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.422][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.423][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.423][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.423][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.423][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.423][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.423][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.423][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.423][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.423][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.424][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.424][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.424][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.424][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.424][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.424][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.424][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.424][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.424][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.425][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.425][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.425][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.425][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.425][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.425][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.425][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.425][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.425][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.426][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.426][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.426][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.429][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.429][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.429][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.429][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.429][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 5700 batches in 1.194819082s +[07:43:53.429][PUT] put #5700 +[07:43:53.429][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.430][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.430][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.430][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.430][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.430][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.430][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.430][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.430][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.430][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.431][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.431][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.431][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.431][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.431][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.431][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.433][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.433][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.433][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.433][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.433][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.433][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.433][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.434][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.434][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.434][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.434][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.434][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.434][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.434][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.434][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.435][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.435][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.435][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.435][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.435][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.435][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.435][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.435][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.435][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.436][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.436][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.436][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.436][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.436][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.436][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.458][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.458][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.458][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.459][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.459][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.459][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.459][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.459][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.459][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.459][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.459][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.459][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.460][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.460][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.460][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.460][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.460][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.460][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.460][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.460][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.461][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.461][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.461][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.461][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.461][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.461][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.461][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.461][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.461][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.461][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.462][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.462][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.462][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.462][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.462][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.462][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.462][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.462][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.463][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.463][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.463][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.463][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.463][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.463][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.463][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.463][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.463][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.464][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.464][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.464][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.464][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.464][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.464][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.464][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 5800 batches in 1.229803926s +[07:43:53.464][PUT] put #5800 +[07:43:53.464][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.465][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.465][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.465][WAL_SIZE_TRIGGER] total_bytes=388037880, threshold #37 crossed (370MB), triggering flush to batch #5803 +[07:43:53.465][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.465][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.465][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.465][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.465][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.465][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.466][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.466][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.466][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.466][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.466][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.466][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.466][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.466][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.466][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.467][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.467][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.467][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.467][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.467][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.467][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.467][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.467][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.467][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.468][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.468][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.468][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.468][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.468][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.468][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.468][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.468][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.469][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.469][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.469][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.469][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.469][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.469][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.469][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.469][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.469][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.470][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.470][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.470][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.470][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.470][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.470][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.470][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.470][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.470][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.471][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.471][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.471][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.471][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.471][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.471][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.471][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.471][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.472][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.472][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.472][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.472][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.472][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.472][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.472][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.472][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.472][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.473][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.473][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.473][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.473][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.473][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.473][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.473][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.473][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.473][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.474][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.474][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.474][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.474][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.474][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.474][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.474][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.474][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.475][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.475][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.475][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.475][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.475][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.475][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.475][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.475][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.475][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.476][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.476][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.476][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.476][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 5900 batches in 1.241486176s +[07:43:53.476][PUT] put #5900 +[07:43:53.476][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.476][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.476][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.476][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.477][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.498][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.498][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.499][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.499][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.499][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.499][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.499][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.499][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.499][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.499][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.499][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.500][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.500][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.500][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.500][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.500][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.500][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.500][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.500][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.500][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.501][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.501][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.501][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.501][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.501][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.501][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.501][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.501][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.502][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.502][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.502][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.502][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.502][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.502][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.502][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.502][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.502][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.503][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.503][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.503][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.503][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.503][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.503][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.503][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.503][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.503][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.504][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.504][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.504][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.504][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.504][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.504][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.504][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.504][WAL_SIZE_TRIGGER] total_bytes=398470000, threshold #38 crossed (380MB), triggering flush to batch #5958 +[07:43:53.504][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.505][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.505][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.505][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.505][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.505][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.505][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.506][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.507][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.507][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.507][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.507][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.507][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.507][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.507][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.507][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.508][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.508][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.508][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.508][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.508][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.508][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.508][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.508][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.508][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.510][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.510][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.510][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.510][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.511][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.511][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.511][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.511][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.511][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.511][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.511][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.511][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.512][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.512][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.512][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.512][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.512][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 6000 batches in 1.277587758s +[07:43:53.512][PUT] put #6000 +[07:43:53.512][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.512][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.514][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.514][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.514][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.514][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.514][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.514][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.514][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.515][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.515][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.515][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.515][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.515][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.515][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.515][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.515][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.515][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.516][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.516][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.516][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.516][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.516][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.516][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.516][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.516][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.516][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.517][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.537][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.537][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.537][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.537][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.537][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.537][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.537][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.538][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.538][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.538][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.538][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.538][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.538][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.538][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.538][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.538][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.539][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.539][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.539][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.539][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.539][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.539][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.539][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.539][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.539][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.540][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.540][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.540][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.540][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.540][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.540][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.540][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.540][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.541][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.541][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.541][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.541][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.541][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.541][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.541][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.541][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.542][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.542][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.542][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.542][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.542][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.542][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.542][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.542][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.542][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.543][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.543][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.543][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.543][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.543][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.543][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.543][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.543][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.544][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.544][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.544][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.544][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.544][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.544][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.544][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.544][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.544][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.545][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.545][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.545][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.545][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.545][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 6100 batches in 1.310587895s +[07:43:53.545][PUT] put #6100 +[07:43:53.545][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.545][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.545][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.546][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.546][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.546][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.546][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.546][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.546][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.546][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.546][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.546][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.547][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.547][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.547][WAL_SIZE_TRIGGER] total_bytes=408969424, threshold #39 crossed (390MB), triggering flush to batch #6114 +[07:43:53.547][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.547][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.547][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.547][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.547][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.547][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.548][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.548][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.548][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.548][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.548][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.548][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.548][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.548][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.549][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.549][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.549][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.549][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.549][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.549][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.549][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.549][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.549][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.550][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.550][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.550][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.550][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.550][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.550][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.550][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.550][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.550][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.551][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.551][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.551][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.551][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.551][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.551][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.551][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.551][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.552][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.552][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.552][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.552][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.552][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.552][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.552][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.552][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.552][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.553][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.554][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.555][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.556][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.557][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 6200 batches in 1.346613189s +[07:43:53.581][PUT] put #6200 +[07:43:53.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.581][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.582][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.583][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.584][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.586][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.587][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.588][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.589][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.590][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.591][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.592][WAL_SIZE_TRIGGER] total_bytes=419468848, threshold #40 crossed (400MB), triggering flush to batch #6270 +[07:43:53.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.592][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.593][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.594][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.595][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.595][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.595][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.595][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.595][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.595][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.595][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.595][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 6300 batches in 1.3609152s +[07:43:53.595][PUT] put #6300 +[07:43:53.595][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.596][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.617][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.617][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.617][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.617][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.617][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.617][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.617][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.617][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.618][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.618][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.618][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.618][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.618][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.618][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.618][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.618][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.619][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.619][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.619][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.619][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.619][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.619][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.619][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.619][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.619][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.620][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.620][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.620][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.620][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.620][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.620][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.620][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.620][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.620][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.621][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.622][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.623][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.624][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.624][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.624][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.624][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.624][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.624][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.624][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.624][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.625][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.626][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 6400 batches in 1.392617789s +[07:43:53.627][PUT] put #6400 +[07:43:53.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.627][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.628][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.629][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.630][WAL_SIZE_TRIGGER] total_bytes=429968272, threshold #41 crossed (410MB), triggering flush to batch #6426 +[07:43:53.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.630][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.631][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.632][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.633][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.634][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.636][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.637][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.661][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.661][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.661][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.661][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.661][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.661][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.662][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.662][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.662][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.662][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.662][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.662][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.662][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.662][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.662][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.663][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.663][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.663][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.663][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.663][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.663][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.663][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.664][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.664][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.664][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.664][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.664][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.664][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.664][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.664][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.665][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.665][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.665][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.665][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.665][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 6500 batches in 1.430696847s +[07:43:53.665][PUT] put #6500 +[07:43:53.665][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.665][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.666][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.666][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.666][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.666][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.666][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.666][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.666][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.666][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.666][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.667][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.667][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.667][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.667][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.667][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.667][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.667][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.667][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.667][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.668][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.668][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.668][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.668][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.668][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.668][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.668][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.668][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.668][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.669][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.669][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.669][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.669][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.669][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.669][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.669][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.669][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.669][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.670][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.670][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.670][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.670][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.670][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.670][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.670][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.670][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.671][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.671][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.671][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.671][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.671][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.671][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.671][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.671][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.671][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.672][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.672][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.672][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.672][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.672][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.672][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.672][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.672][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.673][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.673][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.673][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.673][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.673][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.673][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.673][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.673][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.673][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.674][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.674][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.674][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.674][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.674][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.674][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.674][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.674][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.675][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.675][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.675][WAL_SIZE_TRIGGER] total_bytes=440467696, threshold #42 crossed (420MB), triggering flush to batch #6582 +[07:43:53.675][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.675][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.675][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.675][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.675][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.675][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.675][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.676][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.676][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.676][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.676][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.676][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.676][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.676][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.676][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.677][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.697][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.697][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 6600 batches in 1.462413973s +[07:43:53.697][PUT] put #6600 +[07:43:53.697][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.697][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.697][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.697][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.697][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.698][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.698][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.698][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.698][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.698][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.698][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.698][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.698][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.698][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.699][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.699][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.699][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.699][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.699][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.699][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.699][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.699][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.699][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.700][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.700][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.700][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.700][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.700][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.700][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.700][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.700][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.700][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.701][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.701][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.701][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.701][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.701][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.701][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.701][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.701][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.702][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.702][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.702][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.702][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.704][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.704][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.704][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.704][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.704][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.704][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.705][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.705][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.705][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.705][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.705][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.705][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.705][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.706][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.706][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.706][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.706][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.706][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.706][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.706][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.706][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.706][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.706][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.707][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.707][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.707][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.707][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.707][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.707][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.707][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.707][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.708][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.708][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.708][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.708][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.708][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.708][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.708][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.708][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.708][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.709][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.709][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.709][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.709][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.709][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.709][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.709][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.709][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.709][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.710][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.710][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.710][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.710][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.710][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.710][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.710][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 6700 batches in 1.475809656s +[07:43:53.710][PUT] put #6700 +[07:43:53.710][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.711][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.711][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.711][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.711][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.711][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.711][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.711][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.711][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.711][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.712][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.712][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.712][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.712][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.712][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.712][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.712][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.712][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.713][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.713][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.713][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.713][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.713][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.713][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.713][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.713][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.713][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.714][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.714][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.714][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.714][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.714][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.714][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.714][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.714][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.714][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.715][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.715][WAL_SIZE_TRIGGER] total_bytes=450899816, threshold #43 crossed (430MB), triggering flush to batch #6737 +[07:43:53.715][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.715][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.715][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.715][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.715][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.715][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.716][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.716][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.716][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.716][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.716][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.716][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.716][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.740][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.740][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.741][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.741][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.741][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.741][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.741][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.741][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.741][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.741][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.742][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.742][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.742][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.742][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.742][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.742][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.742][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.743][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.743][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.743][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.743][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.743][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.743][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.743][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.743][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.744][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.744][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.744][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.744][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.744][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.744][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.744][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.744][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.744][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.745][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.745][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.745][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.745][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.745][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.745][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.745][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.745][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.746][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.746][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.746][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.746][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.746][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.746][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.746][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.746][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 6800 batches in 1.511967749s +[07:43:53.747][PUT] put #6800 +[07:43:53.747][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.747][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.747][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.747][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.747][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.747][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.747][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.747][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.747][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.748][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.748][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.748][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.748][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.748][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.748][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.748][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.748][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.749][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.749][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.749][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.749][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.749][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.749][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.749][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.749][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.749][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.750][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.750][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.750][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.750][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.750][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.750][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.750][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.750][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.751][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.751][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.751][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.751][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.751][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.751][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.751][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.751][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.752][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.752][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.752][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.752][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.752][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.752][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.752][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.752][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.752][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.753][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.753][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.753][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.753][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.753][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.753][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.753][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.753][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.753][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.754][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.754][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.754][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.754][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.754][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.754][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.754][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.754][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.755][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.755][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.755][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.755][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.755][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.755][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.755][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.755][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.755][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.756][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.756][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.756][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.756][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.756][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.756][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.756][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.756][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.756][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.757][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.777][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.777][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.777][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.777][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.777][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.777][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.777][WAL_SIZE_TRIGGER] total_bytes=461399240, threshold #44 crossed (440MB), triggering flush to batch #6893 +[07:43:53.777][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.778][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.778][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.778][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.778][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.778][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.778][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 6900 batches in 1.543669117s +[07:43:53.778][PUT] put #6900 +[07:43:53.778][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.778][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.779][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.779][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.779][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.779][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.779][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.779][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.779][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.779][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.779][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.780][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.780][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.780][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.780][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.780][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.780][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.780][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.780][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.780][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.781][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.781][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.781][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.781][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.781][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.781][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.781][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.781][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.782][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.782][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.782][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.784][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.784][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.784][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.784][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.784][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.785][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.785][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.785][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.785][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.785][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.785][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.785][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.785][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.785][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.786][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.787][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.788][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.789][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.790][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.791][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 7000 batches in 1.557446357s +[07:43:53.792][PUT] put #7000 +[07:43:53.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.792][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.793][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.794][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.795][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.796][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.798][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.799][WAL_SIZE_TRIGGER] total_bytes=471898664, threshold #45 crossed (450MB), triggering flush to batch #7049 +[07:43:53.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.799][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.800][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.801][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.802][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.803][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.804][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.805][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.806][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.807][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 7100 batches in 1.573315134s +[07:43:53.808][PUT] put #7100 +[07:43:53.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.808][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.809][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.810][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.811][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.812][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.813][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.814][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.815][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.816][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.817][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.818][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.819][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[TEST] Wrote 7200 batches in 1.584943997s +[07:43:53.819][PUT] put #7200 +[07:43:53.820][DISPATCHER] Task 'writer' received message: WriteBatchMessage { batch_rows: 20, batch_cols: 3 } +[07:43:53.820][BP_TRIGGER] iter=0 batch_store_nearly_full: remaining=799/8000 (<10%), triggering flush and waiting +[07:43:53.820][TRIGGER] Sending FlushMemTable message and waiting for completion +test dataset::mem_wal::write::region_writer_tests::test_region_writer_s3 has been running for over 60 seconds +[07:44:37.936] [WAL_FLUSH] WAL #1 complete: S3=171ms, index=45668ms, 157 batches +[07:44:37.936][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 314, done: None } +[07:44:37.936][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #314, starting flush +[07:44:37.937] [WAL_FLUSH] Flushing range 157..314 (157 batches, 3140 rows) to WAL #3 +[07:45:23.627] [WAL_FLUSH] WAL #3 complete: S3=199ms, index=45680ms, 157 batches +[07:45:23.627][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 471, done: None } +[07:45:23.627][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #471, starting flush +[07:45:23.628] [WAL_FLUSH] Flushing range 314..471 (157 batches, 3140 rows) to WAL #4 +[07:46:09.317] [WAL_FLUSH] WAL #4 complete: S3=215ms, index=45680ms, 157 batches +[07:46:09.318][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 628, done: None } +[07:46:09.318][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #628, starting flush +[07:46:09.318] [WAL_FLUSH] Flushing range 471..628 (157 batches, 3140 rows) to WAL #5 +[07:46:54.992] [WAL_FLUSH] WAL #5 complete: S3=153ms, index=45664ms, 157 batches +[07:46:54.992][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 785, done: None } +[07:46:54.992][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #785, starting flush +[07:46:54.993] [WAL_FLUSH] Flushing range 628..785 (157 batches, 3140 rows) to WAL #6 +[07:47:40.679] [WAL_FLUSH] WAL #6 complete: S3=172ms, index=45677ms, 157 batches +[07:47:40.680][DISPATCHER] Task 'wal_flusher' received message: TriggerWalFlush { end_batch_id: 942, done: None } +[07:47:40.680][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #942, starting flush +[07:47:40.680] [WAL_FLUSH] Flushing range 785..942 (157 batches, 3140 rows) to WAL #7 diff --git a/rust/lance/Cargo.toml b/rust/lance/Cargo.toml index 702fe7e9702..106411b293d 100644 --- a/rust/lance/Cargo.toml +++ b/rust/lance/Cargo.toml @@ -47,6 +47,7 @@ dashmap = "6" deepsize.workspace = true # matches arrow-rs use half.workspace = true +hnsw_rs.workspace = true itertools.workspace = true object_store = { workspace = true } aws-credential-types.workspace = true diff --git a/rust/lance/src/dataset/mem_wal.rs b/rust/lance/src/dataset/mem_wal.rs index 342bd4ddf2c..271a365f3a9 100644 --- a/rust/lance/src/dataset/mem_wal.rs +++ b/rust/lance/src/dataset/mem_wal.rs @@ -42,7 +42,7 @@ mod util; pub mod write; pub use api::{DatasetMemWalExt, MemWalConfig}; -pub use config::RegionWriterConfig; +pub use config::{MemVectorIndexType, RegionWriterConfig}; pub use epoch::EpochGuard; pub use manifest::RegionManifestStore; pub use read::MemTableScanner; diff --git a/rust/lance/src/dataset/mem_wal/api.rs b/rust/lance/src/dataset/mem_wal/api.rs index 7f4de19ba87..1304c5015af 100644 --- a/rust/lance/src/dataset/mem_wal/api.rs +++ b/rust/lance/src/dataset/mem_wal/api.rs @@ -27,6 +27,7 @@ use crate::Dataset; use super::write::MemIndexConfig; use super::write::RegionWriter; +use super::config::MemVectorIndexType; use super::RegionWriterConfig; /// Configuration for initializing MemWAL on a Dataset. @@ -196,10 +197,21 @@ impl DatasetMemWalExt for Dataset { let index_type = MemIndexConfig::detect_index_type(type_url)?; - let mem_index_config = match index_type { - "btree" => MemIndexConfig::btree_from_metadata(&index_meta, self.schema())?, - "fts" => MemIndexConfig::fts_from_metadata(&index_meta, self.schema())?, - "vector" => load_vector_index_config(self, index_name, &index_meta).await?, + match index_type { + "btree" => { + index_configs + .push(MemIndexConfig::btree_from_metadata(&index_meta, self.schema())?); + } + "fts" => { + index_configs + .push(MemIndexConfig::fts_from_metadata(&index_meta, self.schema())?); + } + "vector" => { + // Vector index - use the configured in-memory index type + let vector_config = + load_vector_index_config(self, index_name, &index_meta, config.vector_index_type).await?; + index_configs.push(vector_config); + } _ => { return Err(Error::invalid_input( format!("Unknown index type: {}", index_type), @@ -207,8 +219,6 @@ impl DatasetMemWalExt for Dataset { )) } }; - - index_configs.push(mem_index_config); } // Set region_id in config @@ -231,15 +241,21 @@ impl DatasetMemWalExt for Dataset { } } -/// Load vector index configuration with IVF centroids and PQ codebook. +/// Load vector index configuration based on the configured in-memory index type. /// -/// Opens the vector index and extracts the IVF model and product -/// quantizer needed for in-memory index maintenance. +/// Opens the vector index and extracts necessary components (IVF model, PQ codebook, +/// dimension, distance type) to create the appropriate in-memory index config. +/// +/// Returns either: +/// - IVF-PQ config: Uses pre-trained centroids and codebook from the base index +/// - HNSW config: Builds incrementally, uses matching distance type from base index async fn load_vector_index_config( dataset: &Dataset, index_name: &str, index_meta: &lance_table::format::IndexMetadata, + vector_index_type: MemVectorIndexType, ) -> Result { + use arrow_schema::DataType; use lance_index::metrics::NoOpMetricsCollector; // Get the column name for this index @@ -250,18 +266,31 @@ async fn load_vector_index_config( ) })?; - let column = dataset - .schema() - .field_by_id(*field_id) - .map(|f| f.name.clone()) - .ok_or_else(|| { - Error::invalid_input( - format!("Field not found for vector index '{}'", index_name), + let field = dataset.schema().field_by_id(*field_id).ok_or_else(|| { + Error::invalid_input( + format!("Field not found for vector index '{}'", index_name), + location!(), + ) + })?; + + let column = field.name.clone(); + + // Get vector dimension from schema + let dimension = match &field.data_type() { + DataType::FixedSizeList(_, dim) => *dim as usize, + _ => { + return Err(Error::invalid_input( + format!( + "Vector column '{}' is not a FixedSizeList, got {:?}", + column, + field.data_type() + ), location!(), - ) - })?; + )) + } + }; - // Try to load as IVF-PQ index (use UUID from index metadata) + // Load IVF-PQ components to get distance type (needed for both index types) let index_uuid = index_meta.uuid.to_string(); let (ivf_model, pq, distance_type) = load_ivf_pq_components( dataset, @@ -272,13 +301,22 @@ async fn load_vector_index_config( ) .await?; - Ok(MemIndexConfig::ivf_pq( - index_name.to_string(), - column, - ivf_model, - pq, - distance_type, - )) + // Create config based on configured index type + match vector_index_type { + MemVectorIndexType::IvfPq => Ok(MemIndexConfig::ivf_pq( + index_name.to_string(), + column, + ivf_model, + pq, + distance_type, + )), + MemVectorIndexType::Hnsw => Ok(MemIndexConfig::hnsw( + index_name.to_string(), + column, + dimension, + distance_type, + )), + } } /// Load IVF model and ProductQuantizer from an IVF-PQ index. diff --git a/rust/lance/src/dataset/mem_wal/config.rs b/rust/lance/src/dataset/mem_wal/config.rs index 7f333b649b2..ebff32ba883 100644 --- a/rust/lance/src/dataset/mem_wal/config.rs +++ b/rust/lance/src/dataset/mem_wal/config.rs @@ -7,6 +7,18 @@ use std::time::Duration; use uuid::Uuid; +/// Type of in-memory vector index to use. +#[derive(Debug, Clone, Copy, Default, PartialEq, Eq)] +pub enum MemVectorIndexType { + /// Use IVF-PQ index (requires pre-trained centroids and codebook from base table). + /// Better for large-scale search with compression. + #[default] + IvfPq, + /// Use HNSW index (built incrementally, no pre-training needed). + /// Better for fast approximate search with lower index update latency. + Hnsw, +} + /// Configuration for a region writer. #[derive(Debug, Clone)] pub struct RegionWriterConfig { @@ -142,6 +154,15 @@ pub struct RegionWriterConfig { /// /// Default: 60 seconds pub stats_log_interval: Option, + + /// Type of in-memory vector index to use. + /// + /// - `IvfPq`: Uses pre-trained IVF centroids and PQ codebook from the base table. + /// Better compression but requires the base index to exist. + /// - `Hnsw`: Builds HNSW graph incrementally. Faster index updates, no pre-training. + /// + /// Default: IvfPq + pub vector_index_type: MemVectorIndexType, } impl Default for RegionWriterConfig { @@ -164,6 +185,7 @@ impl Default for RegionWriterConfig { async_index_buffer_rows: 10_000, async_index_interval: Duration::from_secs(1), stats_log_interval: Some(Duration::from_secs(60)), // 1 minute + vector_index_type: MemVectorIndexType::default(), } } } @@ -272,4 +294,10 @@ impl RegionWriterConfig { self.stats_log_interval = interval; self } + + /// Set vector index type. + pub fn with_vector_index_type(mut self, index_type: MemVectorIndexType) -> Self { + self.vector_index_type = index_type; + self + } } diff --git a/rust/lance/src/dataset/mem_wal/write.rs b/rust/lance/src/dataset/mem_wal/write.rs index 521fbe44505..f1b99998154 100644 --- a/rust/lance/src/dataset/mem_wal/write.rs +++ b/rust/lance/src/dataset/mem_wal/write.rs @@ -32,8 +32,9 @@ pub use batch_write::{ pub use flush::MemTableFlusher; pub use immutable::{ImmutableMemTable, ImmutableMemTableQueue}; pub use indexes::{ - BTreeIndexConfig, BTreeMemIndex, CoverageResult, FtsIndexConfig, IndexCoverageInfo, - IndexRegistry, IndexUpdateHandler, IndexUpdateMsg, IvfPqIndexConfig, MemIndexConfig, + BTreeIndexConfig, BTreeMemIndex, CoverageResult, FtsIndexConfig, HnswIndexConfig, + HnswMemIndex, IndexCoverageInfo, IndexRegistry, IndexUpdateHandler, IndexUpdateMsg, + IvfPqIndexConfig, MemIndexConfig, }; pub use memtable::CacheConfig; pub use memtable::MemTable; @@ -66,8 +67,10 @@ mod region_writer_tests { use crate::dataset::mem_wal::{DatasetMemWalExt, MemWalConfig}; use crate::dataset::{Dataset, WriteParams}; use crate::index::vector::VectorIndexParams; + use lance_linalg::distance::DistanceType; use super::super::RegionWriterConfig; + use super::MemIndexConfig; fn create_test_schema(vector_dim: i32) -> Arc { use std::collections::HashMap; @@ -205,10 +208,10 @@ mod region_writer_tests { } /// Test region writer against S3 with IVF-PQ index (requires DATASET_PREFIX env var) - /// Run with: DATASET_PREFIX=s3://bucket/path cargo test -p lance region_writer_tests::test_region_writer_s3 -- --nocapture --ignored + /// Run with: DATASET_PREFIX=s3://bucket/path cargo test -p lance --release region_writer_tests::test_region_writer_s3_ivfpq -- --nocapture --ignored #[tokio::test] #[ignore] - async fn test_region_writer_s3() { + async fn test_region_writer_s3_ivfpq() { let prefix = std::env::var("DATASET_PREFIX").expect("DATASET_PREFIX not set"); let vector_dim = 512; @@ -327,4 +330,127 @@ mod region_writer_tests { let rows_per_sec = (num_batches * batch_size) as f64 / write_duration.as_secs_f64(); eprintln!("[TEST] Throughput: {:.0} rows/sec", rows_per_sec); } + + /// Test region writer against S3 with HNSW index (requires DATASET_PREFIX env var) + /// Run with: DATASET_PREFIX=s3://bucket/path cargo test -p lance --release region_writer_tests::test_region_writer_s3_hnsw -- --nocapture --ignored + #[tokio::test] + #[ignore] + async fn test_region_writer_s3_hnsw() { + let prefix = std::env::var("DATASET_PREFIX").expect("DATASET_PREFIX not set"); + + let vector_dim = 512; + let batch_size = 20; + let num_batches = 10000; + + let schema = create_test_schema(vector_dim); + let uri = format!( + "{}/test_s3_hnsw_{}", + prefix.trim_end_matches('/'), + Uuid::new_v4() + ); + + eprintln!("[TEST] Creating dataset at {}", uri); + + // Create initial dataset with enough data for IVF-PQ training + let initial_batch = create_test_batch(&schema, 0, 1000, vector_dim); + let batches = RecordBatchIterator::new([Ok(initial_batch)], schema.clone()); + let mut dataset = Dataset::write(batches, &uri, Some(WriteParams::default())) + .await + .expect("Failed to create dataset"); + + // Create IVF-PQ index on dataset (needed to get distance type for HNSW) + eprintln!("[TEST] Creating IVF-PQ index on dataset..."); + let train_start = Instant::now(); + + let ivf_params = IvfBuildParams { + num_partitions: Some(16), + ..Default::default() + }; + let pq_params = PQBuildParams { + num_sub_vectors: 64, + num_bits: 8, + ..Default::default() + }; + let vector_params = + VectorIndexParams::with_ivf_pq_params(MetricType::L2, ivf_params, pq_params); + + dataset + .create_index( + &["vector"], + IndexType::Vector, + Some("vector_idx".to_string()), + &vector_params, + true, + ) + .await + .expect("Failed to create IVF-PQ index"); + + eprintln!( + "[TEST] IVF-PQ index creation took {:?}", + train_start.elapsed() + ); + + // Initialize MemWAL with vector index + dataset + .initialize_mem_wal(MemWalConfig { + region_spec: None, + maintained_indexes: vec!["vector_idx".to_string()], + }) + .await + .expect("Failed to initialize MemWAL"); + + // Create region writer with HNSW index type + let region_id = Uuid::new_v4(); + let config = RegionWriterConfig::new(region_id) + .with_durable_write(false) + .with_sync_indexed_write(false) + .with_vector_index_type(super::super::config::MemVectorIndexType::Hnsw); + + eprintln!( + "[TEST] Config: flush_interval={:?}, wal_buffer_size={}, index=HNSW", + config.max_flush_interval, config.max_wal_buffer_size + ); + + let writer = dataset + .mem_wal_writer(region_id, config) + .await + .expect("Failed to create writer"); + + // Pre-generate batches + let batches: Vec = (0..num_batches) + .map(|i| create_test_batch(&schema, (i * batch_size) as i64, batch_size, vector_dim)) + .collect(); + + eprintln!( + "[TEST] Writing {} batches x {} rows = {} total rows (HNSW index)", + num_batches, + batch_size, + num_batches * batch_size + ); + + let start = Instant::now(); + for (i, batch) in batches.iter().enumerate() { + writer.put(batch.clone()).await.expect("Failed to write"); + if (i + 1) % 100 == 0 { + eprintln!("[TEST] Wrote {} batches in {:?}", i + 1, start.elapsed()); + } + } + let write_duration = start.elapsed(); + + eprintln!("[TEST] All writes done in {:?}", write_duration); + + let stats = writer.stats(); + eprintln!("[TEST] Closing writer..."); + let close_start = Instant::now(); + writer.close().await.expect("Failed to close"); + eprintln!("[TEST] Close took {:?}", close_start.elapsed()); + + eprintln!( + "[TEST] Stats: puts={}, WAL flushes={}, WAL bytes={}", + stats.put_count, stats.wal_flush_count, stats.wal_flush_bytes + ); + + let rows_per_sec = (num_batches * batch_size) as f64 / write_duration.as_secs_f64(); + eprintln!("[TEST] Throughput: {:.0} rows/sec", rows_per_sec); + } } diff --git a/rust/lance/src/dataset/mem_wal/write/flush.rs b/rust/lance/src/dataset/mem_wal/write/flush.rs index 5fbf2158c84..2884f82464b 100644 --- a/rust/lance/src/dataset/mem_wal/write/flush.rs +++ b/rust/lance/src/dataset/mem_wal/write/flush.rs @@ -435,7 +435,7 @@ impl MemTableFlusher { let uri = self.path_to_uri(gen_path); - // Filter to only BTree indexes (IVF-PQ and FTS are handled differently) + // Filter to only BTree indexes (IVF-PQ, FTS, and HNSW are handled differently) let btree_configs: Vec<_> = index_configs .iter() .filter_map(|c| match c { @@ -452,6 +452,11 @@ impl MemTableFlusher { ); None } + MemIndexConfig::Hnsw(_) => { + // HNSW indexes are in-memory only, not persisted to flushed generations + // The on-disk index should use IVF-PQ or be rebuilt from vectors + None + } }) .collect(); diff --git a/rust/lance/src/dataset/mem_wal/write/indexes.rs b/rust/lance/src/dataset/mem_wal/write/indexes.rs index 46398d22e86..8b5ed896300 100644 --- a/rust/lance/src/dataset/mem_wal/write/indexes.rs +++ b/rust/lance/src/dataset/mem_wal/write/indexes.rs @@ -12,7 +12,7 @@ use std::collections::HashMap; use std::sync::atomic::{AtomicU64, AtomicUsize, Ordering}; -use std::sync::Arc; +use std::sync::{Arc, RwLock}; use std::time::{Duration, Instant}; use arrow_array::cast::AsArray; @@ -20,6 +20,8 @@ use arrow_array::{Array, FixedSizeListArray, RecordBatch, UInt8Array}; use async_trait::async_trait; use crossbeam_skiplist::SkipMap; use datafusion::common::ScalarValue; +use hnsw_rs::anndists::dist::{DistCosine, DistDot, DistL2}; +use hnsw_rs::hnsw::Hnsw; use lance_core::datatypes::Schema as LanceSchema; use lance_core::{Error, Result}; use lance_index::scalar::btree::OrderableScalarValue; @@ -52,6 +54,8 @@ pub struct IndexCoverageInfo { pub ivfpq_coverage: HashMap, /// FTS index coverage: index name -> max_indexed_seq pub fts_coverage: HashMap, + /// HNSW vector index coverage: index name -> max_indexed_seq + pub hnsw_coverage: HashMap, } /// Result of checking index coverage for a query. @@ -84,6 +88,11 @@ impl IndexCoverageInfo { self.check_coverage(self.fts_coverage.get(name), visibility_seq) } + /// Check coverage for an HNSW vector index by name. + pub fn check_hnsw_coverage(&self, name: &str, visibility_seq: u64) -> CoverageResult { + self.check_coverage(self.hnsw_coverage.get(name), visibility_seq) + } + /// Check coverage given a max_indexed_seq value. fn check_coverage(&self, max_indexed_seq: Option<&u64>, visibility_seq: u64) -> CoverageResult { match max_indexed_seq { @@ -112,6 +121,11 @@ impl IndexCoverageInfo { pub fn min_fts_coverage(&self) -> u64 { self.fts_coverage.values().copied().min().unwrap_or(0) } + + /// Get the minimum coverage across all HNSW indexes. + pub fn min_hnsw_coverage(&self) -> u64 { + self.hnsw_coverage.values().copied().min().unwrap_or(0) + } } /// Composite key for BTree index. @@ -972,6 +986,455 @@ impl IvfPqMemIndex { } } +/// In-memory HNSW index for vector similarity search. +/// +/// Uses the hnsw_rs crate for O(log n) incremental insertion and efficient +/// approximate nearest neighbor search. Supports L2, Cosine, and Dot product +/// distance metrics. +pub struct HnswMemIndex { + column_name: String, + /// HNSW index (wrapped in enum for different distance types). + inner: HnswInner, + /// Dimension of vectors. + dimension: usize, + /// Distance type. + distance_type: DistanceType, + /// Row position for each inserted vector (indexed by internal HNSW ID). + /// HNSW uses sequential IDs starting from 0. + row_positions: RwLock>, + /// Total number of vectors indexed. + vector_count: AtomicUsize, + /// Maximum sequence number that has been indexed. + max_indexed_seq: AtomicU64, +} + +/// Inner HNSW index enum to handle different distance types. +enum HnswInner { + L2(RwLock>), + Cosine(RwLock>), + Dot(RwLock>), +} + +impl std::fmt::Debug for HnswMemIndex { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + f.debug_struct("HnswMemIndex") + .field("column_name", &self.column_name) + .field("dimension", &self.dimension) + .field("distance_type", &self.distance_type) + .field("vector_count", &self.vector_count.load(Ordering::Relaxed)) + .field("max_indexed_seq", &self.max_indexed_seq.load(Ordering::Relaxed)) + .finish() + } +} + +impl HnswMemIndex { + /// Default HNSW parameters. + /// Lower ef_construction (100 vs typical 400) for faster writes with acceptable recall. + const DEFAULT_MAX_NB_CONNECTION: usize = 16; + const DEFAULT_NB_LAYER: usize = 16; + const DEFAULT_EF_CONSTRUCTION: usize = 100; + + /// Create a new HNSW index. + /// + /// # Arguments + /// + /// * `column_name` - Vector column name + /// * `dimension` - Vector dimension + /// * `distance_type` - Distance type for search + /// * `expected_size` - Expected number of vectors (for pre-allocation) + pub fn new( + column_name: String, + dimension: usize, + distance_type: DistanceType, + expected_size: usize, + ) -> Self { + Self::with_params( + column_name, + dimension, + distance_type, + expected_size, + Self::DEFAULT_MAX_NB_CONNECTION, + Self::DEFAULT_NB_LAYER, + Self::DEFAULT_EF_CONSTRUCTION, + ) + } + + /// Create a new HNSW index with custom parameters. + /// + /// # Arguments + /// + /// * `column_name` - Vector column name + /// * `dimension` - Vector dimension + /// * `distance_type` - Distance type for search + /// * `expected_size` - Expected number of vectors + /// * `max_nb_connection` - Maximum links per point (M parameter) + /// * `nb_layer` - Maximum number of layers + /// * `ef_construction` - Search width during construction + pub fn with_params( + column_name: String, + dimension: usize, + distance_type: DistanceType, + expected_size: usize, + max_nb_connection: usize, + nb_layer: usize, + ef_construction: usize, + ) -> Self { + let inner = match distance_type { + DistanceType::L2 => HnswInner::L2(RwLock::new(Hnsw::new( + max_nb_connection, + expected_size, + nb_layer, + ef_construction, + DistL2 {}, + ))), + DistanceType::Cosine => HnswInner::Cosine(RwLock::new(Hnsw::new( + max_nb_connection, + expected_size, + nb_layer, + ef_construction, + DistCosine {}, + ))), + DistanceType::Dot => HnswInner::Dot(RwLock::new(Hnsw::new( + max_nb_connection, + expected_size, + nb_layer, + ef_construction, + DistDot {}, + ))), + DistanceType::Hamming => { + // Fall back to L2 for Hamming (not ideal but allows creation) + HnswInner::L2(RwLock::new(Hnsw::new( + max_nb_connection, + expected_size, + nb_layer, + ef_construction, + DistL2 {}, + ))) + } + }; + + Self { + column_name, + inner, + dimension, + distance_type, + row_positions: RwLock::new(Vec::with_capacity(expected_size)), + vector_count: AtomicUsize::new(0), + max_indexed_seq: AtomicU64::new(0), + } + } + + /// Get the maximum sequence number that has been indexed. + pub fn max_indexed_seq(&self) -> u64 { + self.max_indexed_seq.load(Ordering::Acquire) + } + + /// Update the maximum indexed sequence number. + pub fn update_max_indexed_seq(&self, seq: u64) { + let mut current = self.max_indexed_seq.load(Ordering::Acquire); + while seq > current { + match self.max_indexed_seq.compare_exchange_weak( + current, + seq, + Ordering::Release, + Ordering::Acquire, + ) { + Ok(_) => break, + Err(actual) => current = actual, + } + } + } + + /// Insert vectors from a batch into the index. + pub fn insert(&self, batch: &RecordBatch, row_offset: u64) -> Result<()> { + self.insert_with_seq(batch, row_offset, None) + } + + /// Insert vectors from a batch into the index with sequence tracking. + pub fn insert_with_seq( + &self, + batch: &RecordBatch, + row_offset: u64, + seq: Option, + ) -> Result<()> { + let col_idx = batch + .schema() + .column_with_name(&self.column_name) + .map(|(idx, _)| idx); + + let Some(col_idx) = col_idx else { + // Column not in this batch, skip + if let Some(s) = seq { + self.update_max_indexed_seq(s); + } + return Ok(()); + }; + + let column = batch.column(col_idx); + let fsl = column.as_fixed_size_list_opt().ok_or_else(|| { + Error::invalid_input( + format!( + "Column '{}' is not a FixedSizeList, got {:?}", + self.column_name, + column.data_type() + ), + location!(), + ) + })?; + + // Extract vectors and prepare for insertion + let mut vectors_with_ids: Vec<(Vec, usize)> = Vec::with_capacity(fsl.len()); + let mut new_row_positions: Vec = Vec::with_capacity(fsl.len()); + + // Get current count for ID assignment + let start_id = self.vector_count.load(Ordering::Relaxed); + + for row_idx in 0..fsl.len() { + if fsl.is_null(row_idx) { + continue; + } + + let vec_array = fsl.value(row_idx); + let float_array = vec_array.as_primitive::(); + let vec: Vec = float_array.values().to_vec(); + + let id = start_id + vectors_with_ids.len(); + let row_position = row_offset + row_idx as u64; + + vectors_with_ids.push((vec, id)); + new_row_positions.push(row_position); + } + + if vectors_with_ids.is_empty() { + if let Some(s) = seq { + self.update_max_indexed_seq(s); + } + return Ok(()); + } + + // Insert into HNSW index + // hnsw_rs expects &[(&Vec, usize)] + let data_for_insert: Vec<(&Vec, usize)> = vectors_with_ids + .iter() + .map(|(v, id)| (v, *id)) + .collect(); + + match &self.inner { + HnswInner::L2(hnsw) => { + let hnsw = hnsw.write().unwrap(); + hnsw.parallel_insert(&data_for_insert); + } + HnswInner::Cosine(hnsw) => { + let hnsw = hnsw.write().unwrap(); + hnsw.parallel_insert(&data_for_insert); + } + HnswInner::Dot(hnsw) => { + let hnsw = hnsw.write().unwrap(); + hnsw.parallel_insert(&data_for_insert); + } + } + + // Update row positions mapping + { + let mut positions = self.row_positions.write().unwrap(); + positions.extend(new_row_positions); + } + + self.vector_count + .fetch_add(vectors_with_ids.len(), Ordering::Relaxed); + + if let Some(s) = seq { + self.update_max_indexed_seq(s); + } + + Ok(()) + } + + /// Insert vectors from multiple batches with cross-batch optimization. + /// + /// Collects all vectors across batches and performs a single parallel_insert + /// call for better performance. + pub fn insert_batches(&self, batches: &[BufferedBatch]) -> Result<()> { + if batches.is_empty() { + return Ok(()); + } + + // Collect all vectors across batches + let mut all_vectors: Vec<(Vec, usize)> = Vec::new(); + let mut all_row_positions: Vec = Vec::new(); + let mut max_seq: Option = None; + + let start_id = self.vector_count.load(Ordering::Relaxed); + + for buffered in batches { + let col_idx = buffered + .batch + .schema() + .column_with_name(&self.column_name) + .map(|(idx, _)| idx); + + let Some(col_idx) = col_idx else { + // Track max seq even if column not present + if let Some(s) = buffered.seq { + max_seq = Some(max_seq.map_or(s, |m| m.max(s))); + } + continue; + }; + + let column = buffered.batch.column(col_idx); + let Some(fsl) = column.as_fixed_size_list_opt() else { + continue; + }; + + for row_idx in 0..fsl.len() { + if fsl.is_null(row_idx) { + continue; + } + + let vec_array = fsl.value(row_idx); + let float_array = vec_array.as_primitive::(); + let vec: Vec = float_array.values().to_vec(); + + let id = start_id + all_vectors.len(); + let row_position = buffered.row_offset + row_idx as u64; + + all_vectors.push((vec, id)); + all_row_positions.push(row_position); + } + + if let Some(s) = buffered.seq { + max_seq = Some(max_seq.map_or(s, |m| m.max(s))); + } + } + + if all_vectors.is_empty() { + if let Some(s) = max_seq { + self.update_max_indexed_seq(s); + } + return Ok(()); + } + + // Single parallel_insert call for all vectors + let data_for_insert: Vec<(&Vec, usize)> = all_vectors + .iter() + .map(|(v, id)| (v, *id)) + .collect(); + + match &self.inner { + HnswInner::L2(hnsw) => { + let hnsw = hnsw.write().unwrap(); + hnsw.parallel_insert(&data_for_insert); + } + HnswInner::Cosine(hnsw) => { + let hnsw = hnsw.write().unwrap(); + hnsw.parallel_insert(&data_for_insert); + } + HnswInner::Dot(hnsw) => { + let hnsw = hnsw.write().unwrap(); + hnsw.parallel_insert(&data_for_insert); + } + } + + // Update row positions and count + { + let mut positions = self.row_positions.write().unwrap(); + positions.extend(all_row_positions); + } + self.vector_count.fetch_add(all_vectors.len(), Ordering::Relaxed); + + if let Some(s) = max_seq { + self.update_max_indexed_seq(s); + } + + Ok(()) + } + + /// Search for nearest neighbors. + /// + /// # Arguments + /// + /// * `query` - Query vector as FixedSizeListArray with single vector + /// * `k` - Number of results to return + /// * `ef_search` - Search width parameter (higher = more accurate but slower) + /// + /// # Returns + /// + /// Vec of (distance, row_position) sorted by distance ascending. + pub fn search( + &self, + query: &FixedSizeListArray, + k: usize, + ef_search: usize, + ) -> Result> { + if query.len() != 1 { + return Err(Error::invalid_input( + format!("Query must have exactly 1 vector, got {}", query.len()), + location!(), + )); + } + + let query_array = query.value(0); + let float_array = query_array.as_primitive::(); + let query_vec: Vec = float_array.values().to_vec(); + + let neighbors = match &self.inner { + HnswInner::L2(hnsw) => { + let hnsw = hnsw.read().unwrap(); + hnsw.search(&query_vec, k, ef_search) + } + HnswInner::Cosine(hnsw) => { + let hnsw = hnsw.read().unwrap(); + hnsw.search(&query_vec, k, ef_search) + } + HnswInner::Dot(hnsw) => { + let hnsw = hnsw.read().unwrap(); + hnsw.search(&query_vec, k, ef_search) + } + }; + + // Map internal IDs back to row positions + let positions = self.row_positions.read().unwrap(); + let results: Vec<(f32, RowPosition)> = neighbors + .iter() + .filter_map(|n| { + let id = n.d_id; + if id < positions.len() { + Some((n.distance, positions[id])) + } else { + None + } + }) + .collect(); + + Ok(results) + } + + /// Get total vector count. + pub fn len(&self) -> usize { + self.vector_count.load(Ordering::Relaxed) + } + + /// Check if the index is empty. + pub fn is_empty(&self) -> bool { + self.vector_count.load(Ordering::Relaxed) == 0 + } + + /// Get the column name. + pub fn column_name(&self) -> &str { + &self.column_name + } + + /// Get the distance type. + pub fn distance_type(&self) -> DistanceType { + self.distance_type + } + + /// Get the vector dimension. + pub fn dimension(&self) -> usize { + self.dimension + } +} + /// Composite key for FTS index. /// /// By combining (token, row_position), each entry is unique. @@ -1182,6 +1645,25 @@ pub struct FtsIndexConfig { pub column: String, } +/// Configuration for an HNSW vector index. +#[derive(Debug, Clone)] +pub struct HnswIndexConfig { + /// Index name. + pub name: String, + /// Column name containing vectors. + pub column: String, + /// Vector dimension. + pub dimension: usize, + /// Distance type for search. + pub distance_type: DistanceType, + /// Maximum links per point (M parameter). Default: 24. + pub max_nb_connection: Option, + /// Maximum number of layers. Default: 16. + pub nb_layer: Option, + /// Search width during construction. Default: 400. + pub ef_construction: Option, +} + /// Configuration for an index in MemWAL. /// /// Each variant contains all the configuration needed for that index type. @@ -1195,6 +1677,8 @@ pub enum MemIndexConfig { IvfPq(Box), /// Full-text search index. Fts(FtsIndexConfig), + /// HNSW index for vector similarity search (incremental, no pre-training). + Hnsw(HnswIndexConfig), } impl MemIndexConfig { @@ -1204,6 +1688,7 @@ impl MemIndexConfig { Self::BTree(c) => &c.name, Self::IvfPq(c) => &c.name, Self::Fts(c) => &c.name, + Self::Hnsw(c) => &c.name, } } @@ -1213,6 +1698,7 @@ impl MemIndexConfig { Self::BTree(c) => &c.column, Self::IvfPq(c) => &c.column, Self::Fts(c) => &c.column, + Self::Hnsw(c) => &c.column, } } @@ -1251,6 +1737,40 @@ impl MemIndexConfig { })) } + /// Create an HNSW index config for vector similarity search. + pub fn hnsw(name: String, column: String, dimension: usize, distance_type: DistanceType) -> Self { + Self::Hnsw(HnswIndexConfig { + name, + column, + dimension, + distance_type, + max_nb_connection: None, + nb_layer: None, + ef_construction: None, + }) + } + + /// Create an HNSW index config with custom parameters. + pub fn hnsw_with_params( + name: String, + column: String, + dimension: usize, + distance_type: DistanceType, + max_nb_connection: usize, + nb_layer: usize, + ef_construction: usize, + ) -> Self { + Self::Hnsw(HnswIndexConfig { + name, + column, + dimension, + distance_type, + max_nb_connection: Some(max_nb_connection), + nb_layer: Some(nb_layer), + ef_construction: Some(ef_construction), + }) + } + /// Detect index type from protobuf type_url. pub fn detect_index_type(type_url: &str) -> Result<&'static str> { if type_url.ends_with("BTreeIndexDetails") { @@ -1292,7 +1812,7 @@ impl MemIndexConfig { } /// Registry managing all in-memory indexes for a MemTable. -#[derive(Debug, Default)] +#[derive(Debug)] pub struct IndexRegistry { /// Skip-list indexes by name (used for BTree/scalar indexes). /// Skip-list provides better concurrent performance than BTreeMap with RwLock. @@ -1301,6 +1821,19 @@ pub struct IndexRegistry { ivf_pq_indexes: HashMap, /// FTS indexes by name. fts_indexes: HashMap, + /// HNSW indexes by name. + hnsw_indexes: HashMap, +} + +impl Default for IndexRegistry { + fn default() -> Self { + Self { + btree_indexes: HashMap::new(), + ivf_pq_indexes: HashMap::new(), + fts_indexes: HashMap::new(), + hnsw_indexes: HashMap::new(), + } + } } impl IndexRegistry { @@ -1326,7 +1859,7 @@ impl IndexRegistry { for config in configs { match config { MemIndexConfig::BTree(c) => { - // Use BTreeMemIndex for BTree/scalar indexes + log::info!("[INDEX_REGISTRY] Creating BTree index '{}' on column '{}'", c.name, c.column); let index = BTreeMemIndex::new(c.column.clone()); registry.btree_indexes.insert(c.name.clone(), index); } @@ -1339,6 +1872,10 @@ impl IndexRegistry { * ivf_index_partition_capacity_safety_factor) .min(max_rows); + log::info!( + "[INDEX_REGISTRY] Creating IVF-PQ index '{}' on column '{}' ({} partitions, capacity {})", + c.name, c.column, num_partitions, partition_capacity + ); let index = IvfPqMemIndex::with_capacity( c.column.clone(), c.ivf_model.clone(), @@ -1349,12 +1886,43 @@ impl IndexRegistry { registry.ivf_pq_indexes.insert(c.name.clone(), index); } MemIndexConfig::Fts(c) => { + log::info!("[INDEX_REGISTRY] Creating FTS index '{}' on column '{}'", c.name, c.column); let index = FtsMemIndex::new(c.column.clone()); registry.fts_indexes.insert(c.name.clone(), index); } + MemIndexConfig::Hnsw(c) => { + log::info!( + "[INDEX_REGISTRY] Creating HNSW index '{}' on column '{}' (dim={}, {:?})", + c.name, c.column, c.dimension, c.distance_type + ); + let index = if let (Some(m), Some(l), Some(ef)) = + (c.max_nb_connection, c.nb_layer, c.ef_construction) + { + HnswMemIndex::with_params( + c.column.clone(), + c.dimension, + c.distance_type, + max_rows, + m, + l, + ef, + ) + } else { + HnswMemIndex::new(c.column.clone(), c.dimension, c.distance_type, max_rows) + }; + registry.hnsw_indexes.insert(c.name.clone(), index); + } } } + log::info!( + "[INDEX_REGISTRY] Created {} BTree, {} IVF-PQ, {} HNSW, {} FTS indexes", + registry.btree_indexes.len(), + registry.ivf_pq_indexes.len(), + registry.hnsw_indexes.len(), + registry.fts_indexes.len() + ); + Ok(registry) } @@ -1383,6 +1951,21 @@ impl IndexRegistry { self.fts_indexes.insert(name, FtsMemIndex::new(column)); } + /// Add an HNSW index. + pub fn add_hnsw( + &mut self, + name: String, + column: String, + dimension: usize, + distance_type: DistanceType, + expected_size: usize, + ) { + self.hnsw_indexes.insert( + name, + HnswMemIndex::new(column, dimension, distance_type, expected_size), + ); + } + /// Insert a batch into all indexes. pub fn insert(&self, batch: &RecordBatch, row_offset: u64) -> Result<()> { self.insert_with_seq(batch, row_offset, None) @@ -1404,6 +1987,9 @@ impl IndexRegistry { for index in self.fts_indexes.values() { index.insert_with_seq(batch, row_offset, seq)?; } + for index in self.hnsw_indexes.values() { + index.insert_with_seq(batch, row_offset, seq)?; + } Ok(()) } @@ -1432,6 +2018,11 @@ impl IndexRegistry { } } + // HNSW indexes: use batched insert + for index in self.hnsw_indexes.values() { + index.insert_batches(batches)?; + } + Ok(()) } @@ -1496,10 +2087,23 @@ impl IndexRegistry { None }; + // Spawn thread for HNSW indexes + let hnsw_handle = if !self.hnsw_indexes.is_empty() { + Some(scope.spawn(|| -> Result<()> { + for index in self.hnsw_indexes.values() { + index.insert_batches(batches)?; + } + Ok(()) + })) + } else { + None + }; + // Collect results let btree_result = btree_handle.map(|h| h.join()); let ivfpq_result = ivfpq_handle.map(|h| h.join()); let fts_result = fts_handle.map(|h| h.join()); + let hnsw_result = hnsw_handle.map(|h| h.join()); // Check for errors (thread panic or index error) if let Some(Ok(Err(e))) = btree_result { @@ -1511,6 +2115,9 @@ impl IndexRegistry { if let Some(Ok(Err(e))) = fts_result { return Err(e); } + if let Some(Ok(Err(e))) = hnsw_result { + return Err(e); + } if let Some(Err(_)) = btree_result { return Err(Error::Internal { message: "BTree index thread panicked".to_string(), @@ -1529,6 +2136,12 @@ impl IndexRegistry { location: location!(), }); } + if let Some(Err(_)) = hnsw_result { + return Err(Error::Internal { + message: "HNSW index thread panicked".to_string(), + location: location!(), + }); + } Ok(()) }) @@ -1542,6 +2155,7 @@ impl IndexRegistry { let mut btree_coverage = HashMap::new(); let mut ivfpq_coverage = HashMap::new(); let mut fts_coverage = HashMap::new(); + let mut hnsw_coverage = HashMap::new(); for (name, index) in &self.btree_indexes { btree_coverage.insert(name.clone(), index.max_indexed_seq()); @@ -1555,10 +2169,15 @@ impl IndexRegistry { fts_coverage.insert(name.clone(), index.max_indexed_seq()); } + for (name, index) in &self.hnsw_indexes { + hnsw_coverage.insert(name.clone(), index.max_indexed_seq()); + } + IndexCoverageInfo { btree_coverage, ivfpq_coverage, fts_coverage, + hnsw_coverage, } } @@ -1577,6 +2196,11 @@ impl IndexRegistry { self.fts_indexes.get(name) } + /// Get an HNSW index by name. + pub fn get_hnsw(&self, name: &str) -> Option<&HnswMemIndex> { + self.hnsw_indexes.get(name) + } + /// Check if any IVF-PQ index has a partition at capacity. /// /// Returns true if at least one partition in any IVF-PQ index has reached @@ -1592,11 +2216,15 @@ impl IndexRegistry { self.btree_indexes.is_empty() && self.ivf_pq_indexes.is_empty() && self.fts_indexes.is_empty() + && self.hnsw_indexes.is_empty() } /// Get the total number of indexes. pub fn len(&self) -> usize { - self.btree_indexes.len() + self.ivf_pq_indexes.len() + self.fts_indexes.len() + self.btree_indexes.len() + + self.ivf_pq_indexes.len() + + self.fts_indexes.len() + + self.hnsw_indexes.len() } } @@ -2195,4 +2823,116 @@ mod tests { assert_eq!(coverage.min_ivfpq_coverage(), 0); assert_eq!(coverage.min_fts_coverage(), 0); } + + #[test] + fn test_hnsw_index_insert_and_search() { + use arrow_array::{FixedSizeListArray, Float32Array}; + use lance_arrow::FixedSizeListArrayExt; + + let dimension = 4; + + // Create schema with vector column + let schema = Arc::new(ArrowSchema::new(vec![ + Field::new("id", DataType::Int32, false), + Field::new( + "vector", + DataType::FixedSizeList( + Arc::new(Field::new("item", DataType::Float32, true)), + dimension, + ), + false, + ), + ])); + + // Create HNSW index + let index = HnswMemIndex::new( + "vector".to_string(), + dimension as usize, + DistanceType::L2, + 100, + ); + + // Create test batch with vectors + let vectors: Vec = vec![ + 1.0, 0.0, 0.0, 0.0, // Vector 0 + 0.0, 1.0, 0.0, 0.0, // Vector 1 + 0.0, 0.0, 1.0, 0.0, // Vector 2 + 0.5, 0.5, 0.0, 0.0, // Vector 3 - between 0 and 1 + ]; + let vector_array = + FixedSizeListArray::try_new_from_values(Float32Array::from(vectors), dimension) + .unwrap(); + + let batch = RecordBatch::try_new( + schema.clone(), + vec![ + Arc::new(Int32Array::from(vec![0, 1, 2, 3])), + Arc::new(vector_array), + ], + ) + .unwrap(); + + // Insert batch + index.insert(&batch, 0).unwrap(); + assert_eq!(index.len(), 4); + + // Search for nearest neighbor to [1,0,0,0] + let query_vec: Vec = vec![1.0, 0.0, 0.0, 0.0]; + let query_array = + FixedSizeListArray::try_new_from_values(Float32Array::from(query_vec), dimension) + .unwrap(); + + let results = index.search(&query_array, 2, 50).unwrap(); + assert!(!results.is_empty()); + + // First result should be vector 0 (exact match) + assert_eq!(results[0].1, 0); // row_position 0 + assert!(results[0].0 < 0.001); // distance should be ~0 + } + + #[test] + fn test_hnsw_index_max_indexed_seq() { + use arrow_array::{FixedSizeListArray, Float32Array}; + use lance_arrow::FixedSizeListArrayExt; + + let dimension = 4; + let schema = Arc::new(ArrowSchema::new(vec![Field::new( + "vector", + DataType::FixedSizeList( + Arc::new(Field::new("item", DataType::Float32, true)), + dimension, + ), + false, + )])); + + let index = HnswMemIndex::new( + "vector".to_string(), + dimension as usize, + DistanceType::L2, + 100, + ); + + assert_eq!(index.max_indexed_seq(), 0); + + // Create batch + let vectors: Vec = vec![1.0, 0.0, 0.0, 0.0]; + let vector_array = + FixedSizeListArray::try_new_from_values(Float32Array::from(vectors), dimension) + .unwrap(); + let batch = RecordBatch::try_new(schema.clone(), vec![Arc::new(vector_array)]).unwrap(); + + // Insert with sequence tracking + index.insert_with_seq(&batch, 0, Some(42)).unwrap(); + assert_eq!(index.max_indexed_seq(), 42); + + // Insert with higher seq + let vectors2: Vec = vec![0.0, 1.0, 0.0, 0.0]; + let vector_array2 = + FixedSizeListArray::try_new_from_values(Float32Array::from(vectors2), dimension) + .unwrap(); + let batch2 = RecordBatch::try_new(schema.clone(), vec![Arc::new(vector_array2)]).unwrap(); + + index.insert_with_seq(&batch2, 1, Some(100)).unwrap(); + assert_eq!(index.max_indexed_seq(), 100); + } } From 5f33efb5acd5d002017326891f0cebee1f331824 Mon Sep 17 00:00:00 2001 From: Heng Ge Date: Thu, 22 Jan 2026 10:25:19 -0800 Subject: [PATCH 10/20] refactor(mem_wal): remove HNSW, keep only IVF-PQ for vector indexing IVF-PQ works well in release mode with SIMD optimizations, making HNSW unnecessary for now. This simplifies the codebase by removing the configurable vector index type. Changes: - Remove hnsw_rs dependency from workspace and lance crate - Remove MemVectorIndexType enum and vector_index_type config - Remove HnswMemIndex, HnswIndexConfig and related code from indexes.rs - Simplify api.rs to always use IVF-PQ for vector indexes - Replace eprintln! with debug! logging across mem_wal modules Co-Authored-By: Jack Ye Co-Authored-By: Claude Opus 4.5 --- Cargo.lock | 164 +--- Cargo.toml | 1 - rust/lance/Cargo.toml | 1 - rust/lance/src/dataset/mem_wal.rs | 2 +- rust/lance/src/dataset/mem_wal/api.rs | 69 +- rust/lance/src/dataset/mem_wal/config.rs | 28 - rust/lance/src/dataset/mem_wal/dispatcher.rs | 15 +- rust/lance/src/dataset/mem_wal/write.rs | 169 +--- .../src/dataset/mem_wal/write/batch_write.rs | 8 +- rust/lance/src/dataset/mem_wal/write/flush.rs | 21 +- .../src/dataset/mem_wal/write/indexes.rs | 749 +----------------- rust/lance/src/dataset/mem_wal/write/wal.rs | 10 +- .../lance/src/dataset/mem_wal/write/writer.rs | 71 +- 13 files changed, 125 insertions(+), 1183 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 2a81083ef7d..0f95bd0eef5 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -114,23 +114,6 @@ version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299" -[[package]] -name = "anndists" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4bbb2296f2525e53a52680f5c2df6de9a83b8a94cc22a8cc629301a27b5e0b7" -dependencies = [ - "anyhow", - "cfg-if", - "cpu-time", - "env_logger", - "lazy_static", - "log", - "num-traits", - "num_cpus", - "rayon", -] - [[package]] name = "anstream" version = "0.6.21" @@ -1305,15 +1288,6 @@ dependencies = [ "num-traits", ] -[[package]] -name = "bincode" -version = "1.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" -dependencies = [ - "serde", -] - [[package]] name = "bincode" version = "2.0.1" @@ -1689,16 +1663,6 @@ version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b05b61dc5112cbb17e4b6cd61790d9845d13888356391624cbe7e41efeac1e75" -[[package]] -name = "combine" -version = "4.6.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd" -dependencies = [ - "bytes", - "memchr", -] - [[package]] name = "comfy-table" version = "7.2.1" @@ -1830,16 +1794,6 @@ dependencies = [ "cfg-if", ] -[[package]] -name = "cpu-time" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9e393a7668fe1fad3075085b86c781883000b4ede868f43627b34a87c8b7ded" -dependencies = [ - "libc", - "winapi", -] - [[package]] name = "cpufeatures" version = "0.2.17" @@ -3228,18 +3182,6 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c34f04666d835ff5d62e058c3995147c06f42fe86ff053337632bca83e42702d" -[[package]] -name = "enum-as-inner" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1e6a265c649f3f5979b601d26f1d05ada116434c87741c9493cb56218f76cbc" -dependencies = [ - "heck", - "proc-macro2", - "quote", - "syn 2.0.114", -] - [[package]] name = "env_filter" version = "0.1.4" @@ -4084,31 +4026,6 @@ dependencies = [ "digest", ] -[[package]] -name = "hnsw_rs" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b53dc5b9b07424143d016ba843c9b510f424e239118697f5d5d582f2d437df41" -dependencies = [ - "anndists", - "anyhow", - "bincode 1.3.3", - "cfg-if", - "cpu-time", - "env_logger", - "hashbrown 0.15.5", - "indexmap", - "lazy_static", - "log", - "mmap-rs", - "num-traits", - "num_cpus", - "parking_lot", - "rand 0.9.2", - "rayon", - "serde", -] - [[package]] name = "home" version = "0.5.12" @@ -4893,7 +4810,6 @@ dependencies = [ "geoarrow-array", "geoarrow-schema", "half", - "hnsw_rs", "humantime", "itertools 0.13.0", "lance-arrow", @@ -5638,7 +5554,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "50aba4ef41052280722f2120f65606b9218e8718032a3c752b953c4d8091f02e" dependencies = [ "anyhow", - "bincode 2.0.1", + "bincode", "byteorder", "csv", "kanaria", @@ -5667,7 +5583,7 @@ version = "0.44.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5d77e7a0830fd60f23828ad914439997288c1d2cdd9e269be67f967c27b56350" dependencies = [ - "bincode 2.0.1", + "bincode", "byteorder", "lindera-dictionary", "once_cell", @@ -5681,7 +5597,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "489cc70922782af3fd397c0e130846caefe1c15b27c2211aac8f88a9f4590aaf" dependencies = [ "anyhow", - "bincode 2.0.1", + "bincode", "byteorder", "csv", "derive_builder 0.20.2", @@ -5709,7 +5625,7 @@ version = "0.44.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "78870521431dfaf0f94ddd3484fa08367e9d354fc8c708572f2f00007225ddfa" dependencies = [ - "bincode 2.0.1", + "bincode", "byteorder", "lindera-dictionary", "once_cell", @@ -5722,7 +5638,7 @@ version = "0.44.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "abcb3dc3056e5c683e12c2c5e8d40076f7ecfd7bd46f5fc0e4ae9e58152b5d85" dependencies = [ - "bincode 2.0.1", + "bincode", "byteorder", "lindera-dictionary", "once_cell", @@ -5735,7 +5651,7 @@ version = "0.44.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e99316158bab14f0256d912055521ca784f76c63e7460db8a74775c5dc1f8bc2" dependencies = [ - "bincode 2.0.1", + "bincode", "byteorder", "lindera-dictionary", "once_cell", @@ -5759,7 +5675,7 @@ version = "0.44.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "52672945166c14276bbba25e4ec79d7e126db1b503c0a6aa07ffc0141ae15cfa" dependencies = [ - "bincode 2.0.1", + "bincode", "byteorder", "lindera-dictionary", "once_cell", @@ -5872,15 +5788,6 @@ dependencies = [ "pkg-config", ] -[[package]] -name = "mach2" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d640282b302c0bb0a2a8e0233ead9035e3bed871f0b7e81fe4a1ec829765db44" -dependencies = [ - "libc", -] - [[package]] name = "macro_rules_attribute" version = "0.2.2" @@ -5965,15 +5872,6 @@ dependencies = [ "libc", ] -[[package]] -name = "memoffset" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4" -dependencies = [ - "autocfg", -] - [[package]] name = "mime" version = "0.3.17" @@ -6017,23 +5915,6 @@ dependencies = [ "windows-sys 0.61.2", ] -[[package]] -name = "mmap-rs" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86968d85441db75203c34deefd0c88032f275aaa85cee19a1dcfff6ae9df56da" -dependencies = [ - "bitflags 1.3.2", - "combine", - "libc", - "mach2", - "nix", - "sysctl", - "thiserror 1.0.69", - "widestring", - "windows", -] - [[package]] name = "mock_instant" version = "0.6.0" @@ -6170,8 +6051,6 @@ dependencies = [ "bitflags 1.3.2", "cfg-if", "libc", - "memoffset", - "pin-utils", ] [[package]] @@ -8863,20 +8742,6 @@ dependencies = [ "syn 2.0.114", ] -[[package]] -name = "sysctl" -version = "0.5.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec7dddc5f0fee506baf8b9fdb989e242f17e4b11c61dfbb0635b705217199eea" -dependencies = [ - "bitflags 2.10.0", - "byteorder", - "enum-as-inner", - "libc", - "thiserror 1.0.69", - "walkdir", -] - [[package]] name = "system-configuration" version = "0.6.1" @@ -10030,12 +9895,6 @@ dependencies = [ "rustls-pki-types", ] -[[package]] -name = "widestring" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72069c3113ab32ab29e5584db3c6ec55d416895e60715417b5b883a357c3e471" - [[package]] name = "winapi" version = "0.3.9" @@ -10067,15 +9926,6 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" -[[package]] -name = "windows" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f" -dependencies = [ - "windows-targets 0.48.5", -] - [[package]] name = "windows-core" version = "0.62.2" diff --git a/Cargo.toml b/Cargo.toml index 954fdf8f840..6e5ea4ee59a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -91,7 +91,6 @@ half = { "version" = "2.1", default-features = false, features = [ "num-traits", "std", ] } -hnsw_rs = "0.3" lance-bitpacking = { version = "=2.1.0-beta.0", path = "./rust/compression/bitpacking" } bitvec = "1" bytes = "1.4" diff --git a/rust/lance/Cargo.toml b/rust/lance/Cargo.toml index 106411b293d..702fe7e9702 100644 --- a/rust/lance/Cargo.toml +++ b/rust/lance/Cargo.toml @@ -47,7 +47,6 @@ dashmap = "6" deepsize.workspace = true # matches arrow-rs use half.workspace = true -hnsw_rs.workspace = true itertools.workspace = true object_store = { workspace = true } aws-credential-types.workspace = true diff --git a/rust/lance/src/dataset/mem_wal.rs b/rust/lance/src/dataset/mem_wal.rs index 271a365f3a9..342bd4ddf2c 100644 --- a/rust/lance/src/dataset/mem_wal.rs +++ b/rust/lance/src/dataset/mem_wal.rs @@ -42,7 +42,7 @@ mod util; pub mod write; pub use api::{DatasetMemWalExt, MemWalConfig}; -pub use config::{MemVectorIndexType, RegionWriterConfig}; +pub use config::RegionWriterConfig; pub use epoch::EpochGuard; pub use manifest::RegionManifestStore; pub use read::MemTableScanner; diff --git a/rust/lance/src/dataset/mem_wal/api.rs b/rust/lance/src/dataset/mem_wal/api.rs index 1304c5015af..232550c5fc0 100644 --- a/rust/lance/src/dataset/mem_wal/api.rs +++ b/rust/lance/src/dataset/mem_wal/api.rs @@ -27,7 +27,6 @@ use crate::Dataset; use super::write::MemIndexConfig; use super::write::RegionWriter; -use super::config::MemVectorIndexType; use super::RegionWriterConfig; /// Configuration for initializing MemWAL on a Dataset. @@ -199,17 +198,21 @@ impl DatasetMemWalExt for Dataset { match index_type { "btree" => { - index_configs - .push(MemIndexConfig::btree_from_metadata(&index_meta, self.schema())?); + index_configs.push(MemIndexConfig::btree_from_metadata( + &index_meta, + self.schema(), + )?); } "fts" => { - index_configs - .push(MemIndexConfig::fts_from_metadata(&index_meta, self.schema())?); + index_configs.push(MemIndexConfig::fts_from_metadata( + &index_meta, + self.schema(), + )?); } "vector" => { - // Vector index - use the configured in-memory index type + // Vector index - load IVF-PQ config from base table let vector_config = - load_vector_index_config(self, index_name, &index_meta, config.vector_index_type).await?; + load_vector_index_config(self, index_name, &index_meta).await?; index_configs.push(vector_config); } _ => { @@ -241,21 +244,15 @@ impl DatasetMemWalExt for Dataset { } } -/// Load vector index configuration based on the configured in-memory index type. +/// Load vector index configuration from the base table's IVF-PQ index. /// -/// Opens the vector index and extracts necessary components (IVF model, PQ codebook, -/// dimension, distance type) to create the appropriate in-memory index config. -/// -/// Returns either: -/// - IVF-PQ config: Uses pre-trained centroids and codebook from the base index -/// - HNSW config: Builds incrementally, uses matching distance type from base index +/// Opens the vector index and extracts the IVF model and PQ codebook +/// to create an in-memory IVF-PQ index config. async fn load_vector_index_config( dataset: &Dataset, index_name: &str, index_meta: &lance_table::format::IndexMetadata, - vector_index_type: MemVectorIndexType, ) -> Result { - use arrow_schema::DataType; use lance_index::metrics::NoOpMetricsCollector; // Get the column name for this index @@ -275,22 +272,7 @@ async fn load_vector_index_config( let column = field.name.clone(); - // Get vector dimension from schema - let dimension = match &field.data_type() { - DataType::FixedSizeList(_, dim) => *dim as usize, - _ => { - return Err(Error::invalid_input( - format!( - "Vector column '{}' is not a FixedSizeList, got {:?}", - column, - field.data_type() - ), - location!(), - )) - } - }; - - // Load IVF-PQ components to get distance type (needed for both index types) + // Load IVF-PQ components let index_uuid = index_meta.uuid.to_string(); let (ivf_model, pq, distance_type) = load_ivf_pq_components( dataset, @@ -301,22 +283,13 @@ async fn load_vector_index_config( ) .await?; - // Create config based on configured index type - match vector_index_type { - MemVectorIndexType::IvfPq => Ok(MemIndexConfig::ivf_pq( - index_name.to_string(), - column, - ivf_model, - pq, - distance_type, - )), - MemVectorIndexType::Hnsw => Ok(MemIndexConfig::hnsw( - index_name.to_string(), - column, - dimension, - distance_type, - )), - } + Ok(MemIndexConfig::ivf_pq( + index_name.to_string(), + column, + ivf_model, + pq, + distance_type, + )) } /// Load IVF model and ProductQuantizer from an IVF-PQ index. diff --git a/rust/lance/src/dataset/mem_wal/config.rs b/rust/lance/src/dataset/mem_wal/config.rs index ebff32ba883..7f333b649b2 100644 --- a/rust/lance/src/dataset/mem_wal/config.rs +++ b/rust/lance/src/dataset/mem_wal/config.rs @@ -7,18 +7,6 @@ use std::time::Duration; use uuid::Uuid; -/// Type of in-memory vector index to use. -#[derive(Debug, Clone, Copy, Default, PartialEq, Eq)] -pub enum MemVectorIndexType { - /// Use IVF-PQ index (requires pre-trained centroids and codebook from base table). - /// Better for large-scale search with compression. - #[default] - IvfPq, - /// Use HNSW index (built incrementally, no pre-training needed). - /// Better for fast approximate search with lower index update latency. - Hnsw, -} - /// Configuration for a region writer. #[derive(Debug, Clone)] pub struct RegionWriterConfig { @@ -154,15 +142,6 @@ pub struct RegionWriterConfig { /// /// Default: 60 seconds pub stats_log_interval: Option, - - /// Type of in-memory vector index to use. - /// - /// - `IvfPq`: Uses pre-trained IVF centroids and PQ codebook from the base table. - /// Better compression but requires the base index to exist. - /// - `Hnsw`: Builds HNSW graph incrementally. Faster index updates, no pre-training. - /// - /// Default: IvfPq - pub vector_index_type: MemVectorIndexType, } impl Default for RegionWriterConfig { @@ -185,7 +164,6 @@ impl Default for RegionWriterConfig { async_index_buffer_rows: 10_000, async_index_interval: Duration::from_secs(1), stats_log_interval: Some(Duration::from_secs(60)), // 1 minute - vector_index_type: MemVectorIndexType::default(), } } } @@ -294,10 +272,4 @@ impl RegionWriterConfig { self.stats_log_interval = interval; self } - - /// Set vector index type. - pub fn with_vector_index_type(mut self, index_type: MemVectorIndexType) -> Self { - self.vector_index_type = index_type; - self - } } diff --git a/rust/lance/src/dataset/mem_wal/dispatcher.rs b/rust/lance/src/dataset/mem_wal/dispatcher.rs index b89d2443904..2870ca6f65c 100644 --- a/rust/lance/src/dataset/mem_wal/dispatcher.rs +++ b/rust/lance/src/dataset/mem_wal/dispatcher.rs @@ -101,8 +101,7 @@ impl TaskDispatcher { }) .collect(); - debug!("Task dispatcher '{}' started", self.name); - eprintln!( + debug!( "[{}][DISPATCHER] Task '{}' started, has {} tickers", log_ts(), self.name, @@ -126,7 +125,7 @@ impl TaskDispatcher { msg = self.rx.recv() => { match msg { Some(message) => { - eprintln!( + debug!( "[{}][DISPATCHER] Task '{}' received message: {:?}", log_ts(), self.name, @@ -156,7 +155,7 @@ impl TaskDispatcher { static ITER_COUNT: AtomicU64 = AtomicU64::new(0); let iter = ITER_COUNT.fetch_add(1, Ordering::Relaxed); if iter < 10 || iter % 100 == 0 { - eprintln!( + debug!( "[{}][DISPATCHER] wal_flusher select iteration {}", log_ts(), iter @@ -177,7 +176,7 @@ impl TaskDispatcher { _ = first_interval.tick() => { // Generate message from the first ticker let message = (ticker_intervals[0].1)(); - eprintln!( + debug!( "[{}][DISPATCHER] Task '{}' ticker fired", log_ts(), self.name @@ -192,7 +191,7 @@ impl TaskDispatcher { msg = self.rx.recv() => { match msg { Some(message) => { - eprintln!( + debug!( "[{}][DISPATCHER] Task '{}' received message (not tick)", log_ts(), self.name @@ -251,7 +250,7 @@ impl TaskExecutor { handler: Box>, rx: mpsc::UnboundedReceiver, ) -> Result<()> { - eprintln!("[{}][EXECUTOR] Adding handler task '{}'", log_ts(), name); + debug!("[{}][EXECUTOR] Adding handler task '{}'", log_ts(), name); let dispatcher = TaskDispatcher { handler, rx, @@ -261,7 +260,7 @@ impl TaskExecutor { let task_name = name.clone(); let handle = tokio::spawn(async move { - eprintln!( + debug!( "[{}][EXECUTOR] Task '{}' spawned and starting", log_ts(), task_name diff --git a/rust/lance/src/dataset/mem_wal/write.rs b/rust/lance/src/dataset/mem_wal/write.rs index f1b99998154..1f08fd7eac9 100644 --- a/rust/lance/src/dataset/mem_wal/write.rs +++ b/rust/lance/src/dataset/mem_wal/write.rs @@ -32,9 +32,8 @@ pub use batch_write::{ pub use flush::MemTableFlusher; pub use immutable::{ImmutableMemTable, ImmutableMemTableQueue}; pub use indexes::{ - BTreeIndexConfig, BTreeMemIndex, CoverageResult, FtsIndexConfig, HnswIndexConfig, - HnswMemIndex, IndexCoverageInfo, IndexRegistry, IndexUpdateHandler, IndexUpdateMsg, - IvfPqIndexConfig, MemIndexConfig, + BTreeIndexConfig, BTreeMemIndex, CoverageResult, FtsIndexConfig, IndexCoverageInfo, + IndexRegistry, IndexUpdateHandler, IndexUpdateMsg, IvfPqIndexConfig, MemIndexConfig, }; pub use memtable::CacheConfig; pub use memtable::MemTable; @@ -62,15 +61,14 @@ mod region_writer_tests { use lance_index::vector::pq::builder::PQBuildParams; use lance_index::{DatasetIndexExt, IndexType}; use lance_linalg::distance::MetricType; + use tracing::debug; use uuid::Uuid; use crate::dataset::mem_wal::{DatasetMemWalExt, MemWalConfig}; use crate::dataset::{Dataset, WriteParams}; use crate::index::vector::VectorIndexParams; - use lance_linalg::distance::DistanceType; use super::super::RegionWriterConfig; - use super::MemIndexConfig; fn create_test_schema(vector_dim: i32) -> Arc { use std::collections::HashMap; @@ -141,7 +139,7 @@ mod region_writer_tests { let schema = create_test_schema(vector_dim); let uri = format!("memory://test_region_writer_{}", Uuid::new_v4()); - eprintln!("[TEST] Creating dataset at {}", uri); + debug!("[TEST] Creating dataset at {}", uri); // Create initial dataset let initial_batch = create_test_batch(&schema, 0, 100, vector_dim); @@ -165,7 +163,7 @@ mod region_writer_tests { .with_durable_write(false) .with_sync_indexed_write(false); - eprintln!("[TEST] Creating region writer with config: {:?}", config); + debug!("[TEST] Creating region writer with config: {:?}", config); let writer = dataset .mem_wal_writer(region_id, config) @@ -177,7 +175,7 @@ mod region_writer_tests { .map(|i| create_test_batch(&schema, (i * batch_size) as i64, batch_size, vector_dim)) .collect(); - eprintln!( + debug!( "[TEST] Writing {} batches x {} rows = {} total rows", num_batches, batch_size, @@ -188,20 +186,20 @@ mod region_writer_tests { for (i, batch) in batches.iter().enumerate() { writer.put(batch.clone()).await.expect("Failed to write"); if (i + 1) % 50 == 0 { - eprintln!("[TEST] Wrote {} batches in {:?}", i + 1, start.elapsed()); + debug!("[TEST] Wrote {} batches in {:?}", i + 1, start.elapsed()); } } let write_duration = start.elapsed(); - eprintln!("[TEST] All writes done in {:?}", write_duration); + debug!("[TEST] All writes done in {:?}", write_duration); let stats = writer.stats(); - eprintln!("[TEST] Closing writer..."); + debug!("[TEST] Closing writer..."); let close_start = Instant::now(); writer.close().await.expect("Failed to close"); - eprintln!("[TEST] Close took {:?}", close_start.elapsed()); + debug!("[TEST] Close took {:?}", close_start.elapsed()); - eprintln!( + debug!( "[TEST] Stats: puts={}, WAL flushes={}, WAL bytes={}", stats.put_count, stats.wal_flush_count, stats.wal_flush_bytes ); @@ -227,7 +225,7 @@ mod region_writer_tests { Uuid::new_v4() ); - eprintln!("[TEST] Creating dataset at {}", uri); + debug!("[TEST] Creating dataset at {}", uri); // Create initial dataset with enough data for IVF-PQ training let initial_batch = create_test_batch(&schema, 0, 1000, vector_dim); @@ -237,7 +235,7 @@ mod region_writer_tests { .expect("Failed to create dataset"); // Create IVF-PQ index on dataset - eprintln!("[TEST] Creating IVF-PQ index on dataset..."); + debug!("[TEST] Creating IVF-PQ index on dataset..."); let train_start = Instant::now(); let ivf_params = IvfBuildParams { @@ -263,7 +261,7 @@ mod region_writer_tests { .await .expect("Failed to create IVF-PQ index"); - eprintln!( + debug!( "[TEST] IVF-PQ index creation took {:?}", train_start.elapsed() ); @@ -283,7 +281,7 @@ mod region_writer_tests { .with_durable_write(false) .with_sync_indexed_write(false); - eprintln!( + debug!( "[TEST] Config: flush_interval={:?}, wal_buffer_size={}", config.max_flush_interval, config.max_wal_buffer_size ); @@ -298,7 +296,7 @@ mod region_writer_tests { .map(|i| create_test_batch(&schema, (i * batch_size) as i64, batch_size, vector_dim)) .collect(); - eprintln!( + debug!( "[TEST] Writing {} batches x {} rows = {} total rows", num_batches, batch_size, @@ -309,148 +307,25 @@ mod region_writer_tests { for (i, batch) in batches.iter().enumerate() { writer.put(batch.clone()).await.expect("Failed to write"); if (i + 1) % 100 == 0 { - eprintln!("[TEST] Wrote {} batches in {:?}", i + 1, start.elapsed()); + debug!("[TEST] Wrote {} batches in {:?}", i + 1, start.elapsed()); } } let write_duration = start.elapsed(); - eprintln!("[TEST] All writes done in {:?}", write_duration); + debug!("[TEST] All writes done in {:?}", write_duration); let stats = writer.stats(); - eprintln!("[TEST] Closing writer..."); + debug!("[TEST] Closing writer..."); let close_start = Instant::now(); writer.close().await.expect("Failed to close"); - eprintln!("[TEST] Close took {:?}", close_start.elapsed()); + debug!("[TEST] Close took {:?}", close_start.elapsed()); - eprintln!( + debug!( "[TEST] Stats: puts={}, WAL flushes={}, WAL bytes={}", stats.put_count, stats.wal_flush_count, stats.wal_flush_bytes ); let rows_per_sec = (num_batches * batch_size) as f64 / write_duration.as_secs_f64(); - eprintln!("[TEST] Throughput: {:.0} rows/sec", rows_per_sec); - } - - /// Test region writer against S3 with HNSW index (requires DATASET_PREFIX env var) - /// Run with: DATASET_PREFIX=s3://bucket/path cargo test -p lance --release region_writer_tests::test_region_writer_s3_hnsw -- --nocapture --ignored - #[tokio::test] - #[ignore] - async fn test_region_writer_s3_hnsw() { - let prefix = std::env::var("DATASET_PREFIX").expect("DATASET_PREFIX not set"); - - let vector_dim = 512; - let batch_size = 20; - let num_batches = 10000; - - let schema = create_test_schema(vector_dim); - let uri = format!( - "{}/test_s3_hnsw_{}", - prefix.trim_end_matches('/'), - Uuid::new_v4() - ); - - eprintln!("[TEST] Creating dataset at {}", uri); - - // Create initial dataset with enough data for IVF-PQ training - let initial_batch = create_test_batch(&schema, 0, 1000, vector_dim); - let batches = RecordBatchIterator::new([Ok(initial_batch)], schema.clone()); - let mut dataset = Dataset::write(batches, &uri, Some(WriteParams::default())) - .await - .expect("Failed to create dataset"); - - // Create IVF-PQ index on dataset (needed to get distance type for HNSW) - eprintln!("[TEST] Creating IVF-PQ index on dataset..."); - let train_start = Instant::now(); - - let ivf_params = IvfBuildParams { - num_partitions: Some(16), - ..Default::default() - }; - let pq_params = PQBuildParams { - num_sub_vectors: 64, - num_bits: 8, - ..Default::default() - }; - let vector_params = - VectorIndexParams::with_ivf_pq_params(MetricType::L2, ivf_params, pq_params); - - dataset - .create_index( - &["vector"], - IndexType::Vector, - Some("vector_idx".to_string()), - &vector_params, - true, - ) - .await - .expect("Failed to create IVF-PQ index"); - - eprintln!( - "[TEST] IVF-PQ index creation took {:?}", - train_start.elapsed() - ); - - // Initialize MemWAL with vector index - dataset - .initialize_mem_wal(MemWalConfig { - region_spec: None, - maintained_indexes: vec!["vector_idx".to_string()], - }) - .await - .expect("Failed to initialize MemWAL"); - - // Create region writer with HNSW index type - let region_id = Uuid::new_v4(); - let config = RegionWriterConfig::new(region_id) - .with_durable_write(false) - .with_sync_indexed_write(false) - .with_vector_index_type(super::super::config::MemVectorIndexType::Hnsw); - - eprintln!( - "[TEST] Config: flush_interval={:?}, wal_buffer_size={}, index=HNSW", - config.max_flush_interval, config.max_wal_buffer_size - ); - - let writer = dataset - .mem_wal_writer(region_id, config) - .await - .expect("Failed to create writer"); - - // Pre-generate batches - let batches: Vec = (0..num_batches) - .map(|i| create_test_batch(&schema, (i * batch_size) as i64, batch_size, vector_dim)) - .collect(); - - eprintln!( - "[TEST] Writing {} batches x {} rows = {} total rows (HNSW index)", - num_batches, - batch_size, - num_batches * batch_size - ); - - let start = Instant::now(); - for (i, batch) in batches.iter().enumerate() { - writer.put(batch.clone()).await.expect("Failed to write"); - if (i + 1) % 100 == 0 { - eprintln!("[TEST] Wrote {} batches in {:?}", i + 1, start.elapsed()); - } - } - let write_duration = start.elapsed(); - - eprintln!("[TEST] All writes done in {:?}", write_duration); - - let stats = writer.stats(); - eprintln!("[TEST] Closing writer..."); - let close_start = Instant::now(); - writer.close().await.expect("Failed to close"); - eprintln!("[TEST] Close took {:?}", close_start.elapsed()); - - eprintln!( - "[TEST] Stats: puts={}, WAL flushes={}, WAL bytes={}", - stats.put_count, stats.wal_flush_count, stats.wal_flush_bytes - ); - - let rows_per_sec = (num_batches * batch_size) as f64 / write_duration.as_secs_f64(); - eprintln!("[TEST] Throughput: {:.0} rows/sec", rows_per_sec); + debug!("[TEST] Throughput: {:.0} rows/sec", rows_per_sec); } } diff --git a/rust/lance/src/dataset/mem_wal/write/batch_write.rs b/rust/lance/src/dataset/mem_wal/write/batch_write.rs index 41249d937c3..f7837ac0c6c 100644 --- a/rust/lance/src/dataset/mem_wal/write/batch_write.rs +++ b/rust/lance/src/dataset/mem_wal/write/batch_write.rs @@ -295,7 +295,7 @@ impl BackpressureController { // Determine primary backpressure type (priority: batch_store > imm > bytes) let bp_type = if batch_store_nearly_full { // Trigger memtable flush when batch store is nearly full and WAIT for it - eprintln!( + debug!( "[{}][BP_TRIGGER] iter={} batch_store_nearly_full: remaining={}/{} (<10%), triggering flush and waiting", log_ts(), iteration, remaining_batches, total_batches ); @@ -303,7 +303,7 @@ impl BackpressureController { provider.trigger_memtable_flush_and_wait().await; let wait_ms = start.elapsed().as_millis() as u64; self.stats.record(BackpressureType::BatchStoreFull, wait_ms); - eprintln!( + debug!( "[{}][BP_TRIGGER] flush complete after {}ms, new remaining={}", log_ts(), wait_ms, @@ -313,7 +313,7 @@ impl BackpressureController { iteration += 1; continue; } else if imm_exceeded { - eprintln!( + debug!( "[{}][BP_TRIGGER] iter={} imm_exceeded: imm_count={} >= max={}", log_ts(), iteration, @@ -322,7 +322,7 @@ impl BackpressureController { ); BackpressureType::ImmutableMemtables } else { - eprintln!( + debug!( "[{}][BP_TRIGGER] iter={} bytes_exceeded: unflushed={} >= max={}", log_ts(), iteration, diff --git a/rust/lance/src/dataset/mem_wal/write/flush.rs b/rust/lance/src/dataset/mem_wal/write/flush.rs index 2884f82464b..1513d3c62da 100644 --- a/rust/lance/src/dataset/mem_wal/write/flush.rs +++ b/rust/lance/src/dataset/mem_wal/write/flush.rs @@ -130,7 +130,7 @@ impl MemTableFlusher { memtable: &MemTable, epoch_guard: &EpochGuard, ) -> Result { - eprintln!( + debug!( "[{}] [FLUSHER] flush() called: {} rows, {} batches", log_ts(), memtable.row_count(), @@ -171,7 +171,7 @@ impl MemTableFlusher { memtable.row_count(), memtable.batch_count() ); - eprintln!( + debug!( "[{}] [FLUSHER] Starting flush: gen={}, {} rows, {} batches", log_ts(), generation, @@ -183,7 +183,7 @@ impl MemTableFlusher { // Dataset::write creates the full directory structure including _versions/, data/ let lance_start = std::time::Instant::now(); self.write_data_file(&gen_path, memtable).await?; - eprintln!( + debug!( "[{}] [FLUSHER] write_data_file (Lance) took {}ms", log_ts(), lance_start.elapsed().as_millis() @@ -194,7 +194,7 @@ impl MemTableFlusher { let bloom_path = gen_path.child("bloom_filter.bin"); self.write_bloom_filter(&bloom_path, memtable.bloom_filter()) .await?; - eprintln!( + debug!( "[{}] [FLUSHER] write_bloom_filter took {}ms", log_ts(), bloom_start.elapsed().as_millis() @@ -206,7 +206,7 @@ impl MemTableFlusher { let new_manifest = self .update_manifest(epoch_guard, generation, gen_path.as_ref(), last_wal_id) .await?; - eprintln!( + debug!( "[{}] [FLUSHER] update_manifest took {}ms", log_ts(), manifest_start.elapsed().as_millis() @@ -217,7 +217,7 @@ impl MemTableFlusher { generation, self.region_id, new_manifest.version ); - eprintln!( + debug!( "[{}] [FLUSHER] flush() complete: total={}ms, {} rows", log_ts(), flush_total_start.elapsed().as_millis(), @@ -256,7 +256,7 @@ impl MemTableFlusher { } let num_batches = batches.len(); let total_rows: usize = batches.iter().map(|b| b.num_rows()).sum(); - eprintln!( + debug!( "[{}] [LANCE_WRITE] scan_batches: {}ms, {} batches, {} rows", log_ts(), scan_start.elapsed().as_millis(), @@ -272,7 +272,7 @@ impl MemTableFlusher { let reader = RecordBatchIterator::new(batches.into_iter().map(Ok), memtable.schema().clone()); Dataset::write(reader, &uri, None).await?; - eprintln!( + debug!( "[{}] [LANCE_WRITE] Dataset::write: {}ms, {} rows to {}", log_ts(), write_start.elapsed().as_millis(), @@ -452,11 +452,6 @@ impl MemTableFlusher { ); None } - MemIndexConfig::Hnsw(_) => { - // HNSW indexes are in-memory only, not persisted to flushed generations - // The on-disk index should use IVF-PQ or be rebuilt from vectors - None - } }) .collect(); diff --git a/rust/lance/src/dataset/mem_wal/write/indexes.rs b/rust/lance/src/dataset/mem_wal/write/indexes.rs index 8b5ed896300..05a21d0fbb7 100644 --- a/rust/lance/src/dataset/mem_wal/write/indexes.rs +++ b/rust/lance/src/dataset/mem_wal/write/indexes.rs @@ -12,7 +12,7 @@ use std::collections::HashMap; use std::sync::atomic::{AtomicU64, AtomicUsize, Ordering}; -use std::sync::{Arc, RwLock}; +use std::sync::Arc; use std::time::{Duration, Instant}; use arrow_array::cast::AsArray; @@ -20,8 +20,6 @@ use arrow_array::{Array, FixedSizeListArray, RecordBatch, UInt8Array}; use async_trait::async_trait; use crossbeam_skiplist::SkipMap; use datafusion::common::ScalarValue; -use hnsw_rs::anndists::dist::{DistCosine, DistDot, DistL2}; -use hnsw_rs::hnsw::Hnsw; use lance_core::datatypes::Schema as LanceSchema; use lance_core::{Error, Result}; use lance_index::scalar::btree::OrderableScalarValue; @@ -54,8 +52,6 @@ pub struct IndexCoverageInfo { pub ivfpq_coverage: HashMap, /// FTS index coverage: index name -> max_indexed_seq pub fts_coverage: HashMap, - /// HNSW vector index coverage: index name -> max_indexed_seq - pub hnsw_coverage: HashMap, } /// Result of checking index coverage for a query. @@ -88,11 +84,6 @@ impl IndexCoverageInfo { self.check_coverage(self.fts_coverage.get(name), visibility_seq) } - /// Check coverage for an HNSW vector index by name. - pub fn check_hnsw_coverage(&self, name: &str, visibility_seq: u64) -> CoverageResult { - self.check_coverage(self.hnsw_coverage.get(name), visibility_seq) - } - /// Check coverage given a max_indexed_seq value. fn check_coverage(&self, max_indexed_seq: Option<&u64>, visibility_seq: u64) -> CoverageResult { match max_indexed_seq { @@ -121,11 +112,6 @@ impl IndexCoverageInfo { pub fn min_fts_coverage(&self) -> u64 { self.fts_coverage.values().copied().min().unwrap_or(0) } - - /// Get the minimum coverage across all HNSW indexes. - pub fn min_hnsw_coverage(&self) -> u64 { - self.hnsw_coverage.values().copied().min().unwrap_or(0) - } } /// Composite key for BTree index. @@ -986,455 +972,6 @@ impl IvfPqMemIndex { } } -/// In-memory HNSW index for vector similarity search. -/// -/// Uses the hnsw_rs crate for O(log n) incremental insertion and efficient -/// approximate nearest neighbor search. Supports L2, Cosine, and Dot product -/// distance metrics. -pub struct HnswMemIndex { - column_name: String, - /// HNSW index (wrapped in enum for different distance types). - inner: HnswInner, - /// Dimension of vectors. - dimension: usize, - /// Distance type. - distance_type: DistanceType, - /// Row position for each inserted vector (indexed by internal HNSW ID). - /// HNSW uses sequential IDs starting from 0. - row_positions: RwLock>, - /// Total number of vectors indexed. - vector_count: AtomicUsize, - /// Maximum sequence number that has been indexed. - max_indexed_seq: AtomicU64, -} - -/// Inner HNSW index enum to handle different distance types. -enum HnswInner { - L2(RwLock>), - Cosine(RwLock>), - Dot(RwLock>), -} - -impl std::fmt::Debug for HnswMemIndex { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - f.debug_struct("HnswMemIndex") - .field("column_name", &self.column_name) - .field("dimension", &self.dimension) - .field("distance_type", &self.distance_type) - .field("vector_count", &self.vector_count.load(Ordering::Relaxed)) - .field("max_indexed_seq", &self.max_indexed_seq.load(Ordering::Relaxed)) - .finish() - } -} - -impl HnswMemIndex { - /// Default HNSW parameters. - /// Lower ef_construction (100 vs typical 400) for faster writes with acceptable recall. - const DEFAULT_MAX_NB_CONNECTION: usize = 16; - const DEFAULT_NB_LAYER: usize = 16; - const DEFAULT_EF_CONSTRUCTION: usize = 100; - - /// Create a new HNSW index. - /// - /// # Arguments - /// - /// * `column_name` - Vector column name - /// * `dimension` - Vector dimension - /// * `distance_type` - Distance type for search - /// * `expected_size` - Expected number of vectors (for pre-allocation) - pub fn new( - column_name: String, - dimension: usize, - distance_type: DistanceType, - expected_size: usize, - ) -> Self { - Self::with_params( - column_name, - dimension, - distance_type, - expected_size, - Self::DEFAULT_MAX_NB_CONNECTION, - Self::DEFAULT_NB_LAYER, - Self::DEFAULT_EF_CONSTRUCTION, - ) - } - - /// Create a new HNSW index with custom parameters. - /// - /// # Arguments - /// - /// * `column_name` - Vector column name - /// * `dimension` - Vector dimension - /// * `distance_type` - Distance type for search - /// * `expected_size` - Expected number of vectors - /// * `max_nb_connection` - Maximum links per point (M parameter) - /// * `nb_layer` - Maximum number of layers - /// * `ef_construction` - Search width during construction - pub fn with_params( - column_name: String, - dimension: usize, - distance_type: DistanceType, - expected_size: usize, - max_nb_connection: usize, - nb_layer: usize, - ef_construction: usize, - ) -> Self { - let inner = match distance_type { - DistanceType::L2 => HnswInner::L2(RwLock::new(Hnsw::new( - max_nb_connection, - expected_size, - nb_layer, - ef_construction, - DistL2 {}, - ))), - DistanceType::Cosine => HnswInner::Cosine(RwLock::new(Hnsw::new( - max_nb_connection, - expected_size, - nb_layer, - ef_construction, - DistCosine {}, - ))), - DistanceType::Dot => HnswInner::Dot(RwLock::new(Hnsw::new( - max_nb_connection, - expected_size, - nb_layer, - ef_construction, - DistDot {}, - ))), - DistanceType::Hamming => { - // Fall back to L2 for Hamming (not ideal but allows creation) - HnswInner::L2(RwLock::new(Hnsw::new( - max_nb_connection, - expected_size, - nb_layer, - ef_construction, - DistL2 {}, - ))) - } - }; - - Self { - column_name, - inner, - dimension, - distance_type, - row_positions: RwLock::new(Vec::with_capacity(expected_size)), - vector_count: AtomicUsize::new(0), - max_indexed_seq: AtomicU64::new(0), - } - } - - /// Get the maximum sequence number that has been indexed. - pub fn max_indexed_seq(&self) -> u64 { - self.max_indexed_seq.load(Ordering::Acquire) - } - - /// Update the maximum indexed sequence number. - pub fn update_max_indexed_seq(&self, seq: u64) { - let mut current = self.max_indexed_seq.load(Ordering::Acquire); - while seq > current { - match self.max_indexed_seq.compare_exchange_weak( - current, - seq, - Ordering::Release, - Ordering::Acquire, - ) { - Ok(_) => break, - Err(actual) => current = actual, - } - } - } - - /// Insert vectors from a batch into the index. - pub fn insert(&self, batch: &RecordBatch, row_offset: u64) -> Result<()> { - self.insert_with_seq(batch, row_offset, None) - } - - /// Insert vectors from a batch into the index with sequence tracking. - pub fn insert_with_seq( - &self, - batch: &RecordBatch, - row_offset: u64, - seq: Option, - ) -> Result<()> { - let col_idx = batch - .schema() - .column_with_name(&self.column_name) - .map(|(idx, _)| idx); - - let Some(col_idx) = col_idx else { - // Column not in this batch, skip - if let Some(s) = seq { - self.update_max_indexed_seq(s); - } - return Ok(()); - }; - - let column = batch.column(col_idx); - let fsl = column.as_fixed_size_list_opt().ok_or_else(|| { - Error::invalid_input( - format!( - "Column '{}' is not a FixedSizeList, got {:?}", - self.column_name, - column.data_type() - ), - location!(), - ) - })?; - - // Extract vectors and prepare for insertion - let mut vectors_with_ids: Vec<(Vec, usize)> = Vec::with_capacity(fsl.len()); - let mut new_row_positions: Vec = Vec::with_capacity(fsl.len()); - - // Get current count for ID assignment - let start_id = self.vector_count.load(Ordering::Relaxed); - - for row_idx in 0..fsl.len() { - if fsl.is_null(row_idx) { - continue; - } - - let vec_array = fsl.value(row_idx); - let float_array = vec_array.as_primitive::(); - let vec: Vec = float_array.values().to_vec(); - - let id = start_id + vectors_with_ids.len(); - let row_position = row_offset + row_idx as u64; - - vectors_with_ids.push((vec, id)); - new_row_positions.push(row_position); - } - - if vectors_with_ids.is_empty() { - if let Some(s) = seq { - self.update_max_indexed_seq(s); - } - return Ok(()); - } - - // Insert into HNSW index - // hnsw_rs expects &[(&Vec, usize)] - let data_for_insert: Vec<(&Vec, usize)> = vectors_with_ids - .iter() - .map(|(v, id)| (v, *id)) - .collect(); - - match &self.inner { - HnswInner::L2(hnsw) => { - let hnsw = hnsw.write().unwrap(); - hnsw.parallel_insert(&data_for_insert); - } - HnswInner::Cosine(hnsw) => { - let hnsw = hnsw.write().unwrap(); - hnsw.parallel_insert(&data_for_insert); - } - HnswInner::Dot(hnsw) => { - let hnsw = hnsw.write().unwrap(); - hnsw.parallel_insert(&data_for_insert); - } - } - - // Update row positions mapping - { - let mut positions = self.row_positions.write().unwrap(); - positions.extend(new_row_positions); - } - - self.vector_count - .fetch_add(vectors_with_ids.len(), Ordering::Relaxed); - - if let Some(s) = seq { - self.update_max_indexed_seq(s); - } - - Ok(()) - } - - /// Insert vectors from multiple batches with cross-batch optimization. - /// - /// Collects all vectors across batches and performs a single parallel_insert - /// call for better performance. - pub fn insert_batches(&self, batches: &[BufferedBatch]) -> Result<()> { - if batches.is_empty() { - return Ok(()); - } - - // Collect all vectors across batches - let mut all_vectors: Vec<(Vec, usize)> = Vec::new(); - let mut all_row_positions: Vec = Vec::new(); - let mut max_seq: Option = None; - - let start_id = self.vector_count.load(Ordering::Relaxed); - - for buffered in batches { - let col_idx = buffered - .batch - .schema() - .column_with_name(&self.column_name) - .map(|(idx, _)| idx); - - let Some(col_idx) = col_idx else { - // Track max seq even if column not present - if let Some(s) = buffered.seq { - max_seq = Some(max_seq.map_or(s, |m| m.max(s))); - } - continue; - }; - - let column = buffered.batch.column(col_idx); - let Some(fsl) = column.as_fixed_size_list_opt() else { - continue; - }; - - for row_idx in 0..fsl.len() { - if fsl.is_null(row_idx) { - continue; - } - - let vec_array = fsl.value(row_idx); - let float_array = vec_array.as_primitive::(); - let vec: Vec = float_array.values().to_vec(); - - let id = start_id + all_vectors.len(); - let row_position = buffered.row_offset + row_idx as u64; - - all_vectors.push((vec, id)); - all_row_positions.push(row_position); - } - - if let Some(s) = buffered.seq { - max_seq = Some(max_seq.map_or(s, |m| m.max(s))); - } - } - - if all_vectors.is_empty() { - if let Some(s) = max_seq { - self.update_max_indexed_seq(s); - } - return Ok(()); - } - - // Single parallel_insert call for all vectors - let data_for_insert: Vec<(&Vec, usize)> = all_vectors - .iter() - .map(|(v, id)| (v, *id)) - .collect(); - - match &self.inner { - HnswInner::L2(hnsw) => { - let hnsw = hnsw.write().unwrap(); - hnsw.parallel_insert(&data_for_insert); - } - HnswInner::Cosine(hnsw) => { - let hnsw = hnsw.write().unwrap(); - hnsw.parallel_insert(&data_for_insert); - } - HnswInner::Dot(hnsw) => { - let hnsw = hnsw.write().unwrap(); - hnsw.parallel_insert(&data_for_insert); - } - } - - // Update row positions and count - { - let mut positions = self.row_positions.write().unwrap(); - positions.extend(all_row_positions); - } - self.vector_count.fetch_add(all_vectors.len(), Ordering::Relaxed); - - if let Some(s) = max_seq { - self.update_max_indexed_seq(s); - } - - Ok(()) - } - - /// Search for nearest neighbors. - /// - /// # Arguments - /// - /// * `query` - Query vector as FixedSizeListArray with single vector - /// * `k` - Number of results to return - /// * `ef_search` - Search width parameter (higher = more accurate but slower) - /// - /// # Returns - /// - /// Vec of (distance, row_position) sorted by distance ascending. - pub fn search( - &self, - query: &FixedSizeListArray, - k: usize, - ef_search: usize, - ) -> Result> { - if query.len() != 1 { - return Err(Error::invalid_input( - format!("Query must have exactly 1 vector, got {}", query.len()), - location!(), - )); - } - - let query_array = query.value(0); - let float_array = query_array.as_primitive::(); - let query_vec: Vec = float_array.values().to_vec(); - - let neighbors = match &self.inner { - HnswInner::L2(hnsw) => { - let hnsw = hnsw.read().unwrap(); - hnsw.search(&query_vec, k, ef_search) - } - HnswInner::Cosine(hnsw) => { - let hnsw = hnsw.read().unwrap(); - hnsw.search(&query_vec, k, ef_search) - } - HnswInner::Dot(hnsw) => { - let hnsw = hnsw.read().unwrap(); - hnsw.search(&query_vec, k, ef_search) - } - }; - - // Map internal IDs back to row positions - let positions = self.row_positions.read().unwrap(); - let results: Vec<(f32, RowPosition)> = neighbors - .iter() - .filter_map(|n| { - let id = n.d_id; - if id < positions.len() { - Some((n.distance, positions[id])) - } else { - None - } - }) - .collect(); - - Ok(results) - } - - /// Get total vector count. - pub fn len(&self) -> usize { - self.vector_count.load(Ordering::Relaxed) - } - - /// Check if the index is empty. - pub fn is_empty(&self) -> bool { - self.vector_count.load(Ordering::Relaxed) == 0 - } - - /// Get the column name. - pub fn column_name(&self) -> &str { - &self.column_name - } - - /// Get the distance type. - pub fn distance_type(&self) -> DistanceType { - self.distance_type - } - - /// Get the vector dimension. - pub fn dimension(&self) -> usize { - self.dimension - } -} - /// Composite key for FTS index. /// /// By combining (token, row_position), each entry is unique. @@ -1645,25 +1182,6 @@ pub struct FtsIndexConfig { pub column: String, } -/// Configuration for an HNSW vector index. -#[derive(Debug, Clone)] -pub struct HnswIndexConfig { - /// Index name. - pub name: String, - /// Column name containing vectors. - pub column: String, - /// Vector dimension. - pub dimension: usize, - /// Distance type for search. - pub distance_type: DistanceType, - /// Maximum links per point (M parameter). Default: 24. - pub max_nb_connection: Option, - /// Maximum number of layers. Default: 16. - pub nb_layer: Option, - /// Search width during construction. Default: 400. - pub ef_construction: Option, -} - /// Configuration for an index in MemWAL. /// /// Each variant contains all the configuration needed for that index type. @@ -1677,8 +1195,6 @@ pub enum MemIndexConfig { IvfPq(Box), /// Full-text search index. Fts(FtsIndexConfig), - /// HNSW index for vector similarity search (incremental, no pre-training). - Hnsw(HnswIndexConfig), } impl MemIndexConfig { @@ -1688,7 +1204,6 @@ impl MemIndexConfig { Self::BTree(c) => &c.name, Self::IvfPq(c) => &c.name, Self::Fts(c) => &c.name, - Self::Hnsw(c) => &c.name, } } @@ -1698,7 +1213,6 @@ impl MemIndexConfig { Self::BTree(c) => &c.column, Self::IvfPq(c) => &c.column, Self::Fts(c) => &c.column, - Self::Hnsw(c) => &c.column, } } @@ -1737,40 +1251,6 @@ impl MemIndexConfig { })) } - /// Create an HNSW index config for vector similarity search. - pub fn hnsw(name: String, column: String, dimension: usize, distance_type: DistanceType) -> Self { - Self::Hnsw(HnswIndexConfig { - name, - column, - dimension, - distance_type, - max_nb_connection: None, - nb_layer: None, - ef_construction: None, - }) - } - - /// Create an HNSW index config with custom parameters. - pub fn hnsw_with_params( - name: String, - column: String, - dimension: usize, - distance_type: DistanceType, - max_nb_connection: usize, - nb_layer: usize, - ef_construction: usize, - ) -> Self { - Self::Hnsw(HnswIndexConfig { - name, - column, - dimension, - distance_type, - max_nb_connection: Some(max_nb_connection), - nb_layer: Some(nb_layer), - ef_construction: Some(ef_construction), - }) - } - /// Detect index type from protobuf type_url. pub fn detect_index_type(type_url: &str) -> Result<&'static str> { if type_url.ends_with("BTreeIndexDetails") { @@ -1812,7 +1292,7 @@ impl MemIndexConfig { } /// Registry managing all in-memory indexes for a MemTable. -#[derive(Debug)] +#[derive(Debug, Default)] pub struct IndexRegistry { /// Skip-list indexes by name (used for BTree/scalar indexes). /// Skip-list provides better concurrent performance than BTreeMap with RwLock. @@ -1821,19 +1301,6 @@ pub struct IndexRegistry { ivf_pq_indexes: HashMap, /// FTS indexes by name. fts_indexes: HashMap, - /// HNSW indexes by name. - hnsw_indexes: HashMap, -} - -impl Default for IndexRegistry { - fn default() -> Self { - Self { - btree_indexes: HashMap::new(), - ivf_pq_indexes: HashMap::new(), - fts_indexes: HashMap::new(), - hnsw_indexes: HashMap::new(), - } - } } impl IndexRegistry { @@ -1859,7 +1326,11 @@ impl IndexRegistry { for config in configs { match config { MemIndexConfig::BTree(c) => { - log::info!("[INDEX_REGISTRY] Creating BTree index '{}' on column '{}'", c.name, c.column); + log::info!( + "[INDEX_REGISTRY] Creating BTree index '{}' on column '{}'", + c.name, + c.column + ); let index = BTreeMemIndex::new(c.column.clone()); registry.btree_indexes.insert(c.name.clone(), index); } @@ -1886,40 +1357,21 @@ impl IndexRegistry { registry.ivf_pq_indexes.insert(c.name.clone(), index); } MemIndexConfig::Fts(c) => { - log::info!("[INDEX_REGISTRY] Creating FTS index '{}' on column '{}'", c.name, c.column); - let index = FtsMemIndex::new(c.column.clone()); - registry.fts_indexes.insert(c.name.clone(), index); - } - MemIndexConfig::Hnsw(c) => { log::info!( - "[INDEX_REGISTRY] Creating HNSW index '{}' on column '{}' (dim={}, {:?})", - c.name, c.column, c.dimension, c.distance_type + "[INDEX_REGISTRY] Creating FTS index '{}' on column '{}'", + c.name, + c.column ); - let index = if let (Some(m), Some(l), Some(ef)) = - (c.max_nb_connection, c.nb_layer, c.ef_construction) - { - HnswMemIndex::with_params( - c.column.clone(), - c.dimension, - c.distance_type, - max_rows, - m, - l, - ef, - ) - } else { - HnswMemIndex::new(c.column.clone(), c.dimension, c.distance_type, max_rows) - }; - registry.hnsw_indexes.insert(c.name.clone(), index); + let index = FtsMemIndex::new(c.column.clone()); + registry.fts_indexes.insert(c.name.clone(), index); } } } log::info!( - "[INDEX_REGISTRY] Created {} BTree, {} IVF-PQ, {} HNSW, {} FTS indexes", + "[INDEX_REGISTRY] Created {} BTree, {} IVF-PQ, {} FTS indexes", registry.btree_indexes.len(), registry.ivf_pq_indexes.len(), - registry.hnsw_indexes.len(), registry.fts_indexes.len() ); @@ -1951,21 +1403,6 @@ impl IndexRegistry { self.fts_indexes.insert(name, FtsMemIndex::new(column)); } - /// Add an HNSW index. - pub fn add_hnsw( - &mut self, - name: String, - column: String, - dimension: usize, - distance_type: DistanceType, - expected_size: usize, - ) { - self.hnsw_indexes.insert( - name, - HnswMemIndex::new(column, dimension, distance_type, expected_size), - ); - } - /// Insert a batch into all indexes. pub fn insert(&self, batch: &RecordBatch, row_offset: u64) -> Result<()> { self.insert_with_seq(batch, row_offset, None) @@ -1987,9 +1424,6 @@ impl IndexRegistry { for index in self.fts_indexes.values() { index.insert_with_seq(batch, row_offset, seq)?; } - for index in self.hnsw_indexes.values() { - index.insert_with_seq(batch, row_offset, seq)?; - } Ok(()) } @@ -2018,11 +1452,6 @@ impl IndexRegistry { } } - // HNSW indexes: use batched insert - for index in self.hnsw_indexes.values() { - index.insert_batches(batches)?; - } - Ok(()) } @@ -2087,23 +1516,10 @@ impl IndexRegistry { None }; - // Spawn thread for HNSW indexes - let hnsw_handle = if !self.hnsw_indexes.is_empty() { - Some(scope.spawn(|| -> Result<()> { - for index in self.hnsw_indexes.values() { - index.insert_batches(batches)?; - } - Ok(()) - })) - } else { - None - }; - // Collect results let btree_result = btree_handle.map(|h| h.join()); let ivfpq_result = ivfpq_handle.map(|h| h.join()); let fts_result = fts_handle.map(|h| h.join()); - let hnsw_result = hnsw_handle.map(|h| h.join()); // Check for errors (thread panic or index error) if let Some(Ok(Err(e))) = btree_result { @@ -2115,9 +1531,6 @@ impl IndexRegistry { if let Some(Ok(Err(e))) = fts_result { return Err(e); } - if let Some(Ok(Err(e))) = hnsw_result { - return Err(e); - } if let Some(Err(_)) = btree_result { return Err(Error::Internal { message: "BTree index thread panicked".to_string(), @@ -2136,12 +1549,6 @@ impl IndexRegistry { location: location!(), }); } - if let Some(Err(_)) = hnsw_result { - return Err(Error::Internal { - message: "HNSW index thread panicked".to_string(), - location: location!(), - }); - } Ok(()) }) @@ -2155,7 +1562,6 @@ impl IndexRegistry { let mut btree_coverage = HashMap::new(); let mut ivfpq_coverage = HashMap::new(); let mut fts_coverage = HashMap::new(); - let mut hnsw_coverage = HashMap::new(); for (name, index) in &self.btree_indexes { btree_coverage.insert(name.clone(), index.max_indexed_seq()); @@ -2169,15 +1575,10 @@ impl IndexRegistry { fts_coverage.insert(name.clone(), index.max_indexed_seq()); } - for (name, index) in &self.hnsw_indexes { - hnsw_coverage.insert(name.clone(), index.max_indexed_seq()); - } - IndexCoverageInfo { btree_coverage, ivfpq_coverage, fts_coverage, - hnsw_coverage, } } @@ -2196,11 +1597,6 @@ impl IndexRegistry { self.fts_indexes.get(name) } - /// Get an HNSW index by name. - pub fn get_hnsw(&self, name: &str) -> Option<&HnswMemIndex> { - self.hnsw_indexes.get(name) - } - /// Check if any IVF-PQ index has a partition at capacity. /// /// Returns true if at least one partition in any IVF-PQ index has reached @@ -2216,15 +1612,11 @@ impl IndexRegistry { self.btree_indexes.is_empty() && self.ivf_pq_indexes.is_empty() && self.fts_indexes.is_empty() - && self.hnsw_indexes.is_empty() } /// Get the total number of indexes. pub fn len(&self) -> usize { - self.btree_indexes.len() - + self.ivf_pq_indexes.len() - + self.fts_indexes.len() - + self.hnsw_indexes.len() + self.btree_indexes.len() + self.ivf_pq_indexes.len() + self.fts_indexes.len() } } @@ -2657,7 +2049,6 @@ mod tests { assert!(check_index_type_supported("fts")); assert!(check_index_type_supported("inverted")); - assert!(!check_index_type_supported("hnsw")); assert!(!check_index_type_supported("unknown")); } @@ -2823,116 +2214,4 @@ mod tests { assert_eq!(coverage.min_ivfpq_coverage(), 0); assert_eq!(coverage.min_fts_coverage(), 0); } - - #[test] - fn test_hnsw_index_insert_and_search() { - use arrow_array::{FixedSizeListArray, Float32Array}; - use lance_arrow::FixedSizeListArrayExt; - - let dimension = 4; - - // Create schema with vector column - let schema = Arc::new(ArrowSchema::new(vec![ - Field::new("id", DataType::Int32, false), - Field::new( - "vector", - DataType::FixedSizeList( - Arc::new(Field::new("item", DataType::Float32, true)), - dimension, - ), - false, - ), - ])); - - // Create HNSW index - let index = HnswMemIndex::new( - "vector".to_string(), - dimension as usize, - DistanceType::L2, - 100, - ); - - // Create test batch with vectors - let vectors: Vec = vec![ - 1.0, 0.0, 0.0, 0.0, // Vector 0 - 0.0, 1.0, 0.0, 0.0, // Vector 1 - 0.0, 0.0, 1.0, 0.0, // Vector 2 - 0.5, 0.5, 0.0, 0.0, // Vector 3 - between 0 and 1 - ]; - let vector_array = - FixedSizeListArray::try_new_from_values(Float32Array::from(vectors), dimension) - .unwrap(); - - let batch = RecordBatch::try_new( - schema.clone(), - vec![ - Arc::new(Int32Array::from(vec![0, 1, 2, 3])), - Arc::new(vector_array), - ], - ) - .unwrap(); - - // Insert batch - index.insert(&batch, 0).unwrap(); - assert_eq!(index.len(), 4); - - // Search for nearest neighbor to [1,0,0,0] - let query_vec: Vec = vec![1.0, 0.0, 0.0, 0.0]; - let query_array = - FixedSizeListArray::try_new_from_values(Float32Array::from(query_vec), dimension) - .unwrap(); - - let results = index.search(&query_array, 2, 50).unwrap(); - assert!(!results.is_empty()); - - // First result should be vector 0 (exact match) - assert_eq!(results[0].1, 0); // row_position 0 - assert!(results[0].0 < 0.001); // distance should be ~0 - } - - #[test] - fn test_hnsw_index_max_indexed_seq() { - use arrow_array::{FixedSizeListArray, Float32Array}; - use lance_arrow::FixedSizeListArrayExt; - - let dimension = 4; - let schema = Arc::new(ArrowSchema::new(vec![Field::new( - "vector", - DataType::FixedSizeList( - Arc::new(Field::new("item", DataType::Float32, true)), - dimension, - ), - false, - )])); - - let index = HnswMemIndex::new( - "vector".to_string(), - dimension as usize, - DistanceType::L2, - 100, - ); - - assert_eq!(index.max_indexed_seq(), 0); - - // Create batch - let vectors: Vec = vec![1.0, 0.0, 0.0, 0.0]; - let vector_array = - FixedSizeListArray::try_new_from_values(Float32Array::from(vectors), dimension) - .unwrap(); - let batch = RecordBatch::try_new(schema.clone(), vec![Arc::new(vector_array)]).unwrap(); - - // Insert with sequence tracking - index.insert_with_seq(&batch, 0, Some(42)).unwrap(); - assert_eq!(index.max_indexed_seq(), 42); - - // Insert with higher seq - let vectors2: Vec = vec![0.0, 1.0, 0.0, 0.0]; - let vector_array2 = - FixedSizeListArray::try_new_from_values(Float32Array::from(vectors2), dimension) - .unwrap(); - let batch2 = RecordBatch::try_new(schema.clone(), vec![Arc::new(vector_array2)]).unwrap(); - - index.insert_with_seq(&batch2, 1, Some(100)).unwrap(); - assert_eq!(index.max_indexed_seq(), 100); - } } diff --git a/rust/lance/src/dataset/mem_wal/write/wal.rs b/rust/lance/src/dataset/mem_wal/write/wal.rs index c849ae31671..d667f1cd223 100644 --- a/rust/lance/src/dataset/mem_wal/write/wal.rs +++ b/rust/lance/src/dataset/mem_wal/write/wal.rs @@ -697,7 +697,7 @@ impl WalBuffer { let rows_to_index: usize = index_batches.iter().map(|b| b.batch.num_rows()).sum(); - eprintln!( + debug!( "[{}] [WAL_FLUSH] Flushing range {}..{} ({} batches, {} rows) to WAL #{}", log_ts(), flushed_id, @@ -796,7 +796,7 @@ impl WalBuffer { let wal_io_duration = wal_result?; let index_update_duration = index_result?; - eprintln!( + debug!( "[{}] [WAL_FLUSH] WAL #{} complete: S3={}ms, index={}ms, {} batches", log_ts(), wal_id, @@ -914,7 +914,7 @@ impl WalBuffer { } let rows_to_index: usize = index_batches.iter().map(|b| b.batch.num_rows()).sum(); - eprintln!( + debug!( "[{}] [WAL_FLUSH] flush_limited: {} batches (IDs {}..{}), {} rows to index", log_ts(), batches.len(), @@ -961,7 +961,7 @@ impl WalBuffer { } let wal_bytes = buffer.len(); - eprintln!( + debug!( "[{}] [WAL_FLUSH] Serialized {} bytes in {}ms", log_ts(), wal_bytes, @@ -1020,7 +1020,7 @@ impl WalBuffer { // Check for errors let wal_io_duration = wal_result?; let index_update_duration = index_result?; - eprintln!( + debug!( "[{}] [WAL_FLUSH] S3 put: {}ms, index update: {}ms, {} rows", log_ts(), wal_io_duration.as_millis(), diff --git a/rust/lance/src/dataset/mem_wal/write/writer.rs b/rust/lance/src/dataset/mem_wal/write/writer.rs index 46fec50fb37..577a6829a56 100644 --- a/rust/lance/src/dataset/mem_wal/write/writer.rs +++ b/rust/lance/src/dataset/mem_wal/write/writer.rs @@ -118,6 +118,7 @@ struct SharedWriterState { } impl SharedWriterState { + #[allow(clippy::too_many_arguments)] fn new( state: Arc>, wal_buffer: Arc, @@ -276,7 +277,7 @@ impl WriterStateOps for Arc { // If time trigger fired, send a flush message if time_trigger.is_some() { - eprintln!( + debug!( "[{}][WAL_TIME_TRIGGER] total_bytes={}, interval elapsed, triggering flush to batch #{}", log_ts(), total_bytes, @@ -325,7 +326,7 @@ impl WriterStateOps for Arc { self.last_wal_flush_trigger_time .store(now_millis(), std::sync::atomic::Ordering::Release); - eprintln!( + debug!( "[{}][WAL_SIZE_TRIGGER] total_bytes={}, threshold #{} crossed ({}MB), triggering flush to batch #{}", log_ts(), total_bytes, @@ -391,7 +392,7 @@ impl BackpressureProvider for SharedWriterState { } async fn trigger_memtable_flush_and_wait(&self) { - eprintln!( + debug!( "[{}][TRIGGER] Sending FlushMemTable message and waiting for completion", log_ts() ); @@ -400,7 +401,7 @@ impl BackpressureProvider for SharedWriterState { .memtable_flush_tx .send(FlushMessage::FlushMemTable { done: Some(tx) }); if send_result.is_err() { - eprintln!( + debug!( "[{}][TRIGGER] Failed to send FlushMemTable message", log_ts() ); @@ -409,13 +410,13 @@ impl BackpressureProvider for SharedWriterState { // Wait for the flush to complete match rx.await { Ok(Ok(_)) => { - eprintln!("[{}][TRIGGER] Flush completed successfully", log_ts()); + debug!("[{}][TRIGGER] Flush completed successfully", log_ts()); } Ok(Err(e)) => { - eprintln!("[{}][TRIGGER] Flush failed: {}", log_ts(), e); + debug!("[{}][TRIGGER] Flush failed: {}", log_ts(), e); } Err(_) => { - eprintln!("[{}][TRIGGER] Flush channel closed unexpectedly", log_ts()); + debug!("[{}][TRIGGER] Flush channel closed unexpectedly", log_ts()); } } } @@ -602,7 +603,7 @@ impl RegionWriter { // Start background WAL flush handler // The WAL flush handler does parallel WAL I/O + index updates - eprintln!( + debug!( "[{}][WRITER] Creating wal_flusher with flush_interval={:?}", log_ts(), config.max_flush_interval @@ -639,13 +640,13 @@ impl RegionWriter { stats.clone(), flush_requested.clone(), // Share flag with writer ); - eprintln!("[{}][WRITER] Adding memtable_flusher handler", log_ts()); + debug!("[{}][WRITER] Adding memtable_flusher handler", log_ts()); task_executor.add_handler( "memtable_flusher".to_string(), Box::new(memtable_handler), memtable_flush_rx, )?; - eprintln!("[{}][WRITER] memtable_flusher handler added", log_ts()); + debug!("[{}][WRITER] memtable_flusher handler added", log_ts()); let (write_batch_tx, write_batch_rx) = write_batch_channel(); @@ -711,7 +712,7 @@ impl RegionWriter { static PUT_COUNT: std::sync::atomic::AtomicU64 = std::sync::atomic::AtomicU64::new(0); let count = PUT_COUNT.fetch_add(1, std::sync::atomic::Ordering::Relaxed); if count % 100 == 0 { - eprintln!("[{}][PUT] put #{}", log_ts(), count); + debug!("[{}][PUT] put #{}", log_ts(), count); } let num_rows = batch.num_rows(); @@ -739,7 +740,7 @@ impl RegionWriter { .await?; let bp_elapsed = bp_start.elapsed(); if bp_elapsed.as_millis() > 1 { - eprintln!( + debug!( "[{}][BP] waited {}ms | remaining_batches={} total_batches={}", log_ts(), bp_elapsed.as_millis(), @@ -1074,7 +1075,7 @@ impl MessageHandler for WalFlushHandler { async fn handle(&mut self, message: WalFlushMsg) -> Result<()> { match message { WalFlushMsg::TriggerWalFlush { end_batch_id, done } => { - eprintln!( + debug!( "[{}][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #{}, starting flush", log_ts(), end_batch_id @@ -1087,7 +1088,7 @@ impl MessageHandler for WalFlushHandler { WalFlushMsg::Tick => { // Tick is deprecated - time-based flush is now handled in maybe_trigger_wal_flush() // This code path should not be hit in normal operation - eprintln!( + debug!( "[{}][WAL_TICK] DEPRECATED: Tick message received, this should not happen", log_ts() ); @@ -1170,7 +1171,7 @@ impl WalFlushHandler { return Ok(None); } - eprintln!( + debug!( "[{}] [WAL_FLUSH] Starting: {} pending batches (IDs {}..{})", log_ts(), pending_count, @@ -1190,7 +1191,7 @@ impl WalFlushHandler { .as_ref() .map(|e| e.batch_positions.len()) .unwrap_or(0); - eprintln!( + debug!( "[{}][WAL_FLUSH] S3 I/O complete: {}ms for {} batches ({} bytes)", log_ts(), s3_elapsed.as_millis(), @@ -1221,7 +1222,7 @@ impl WalFlushHandler { ); } - eprintln!( + debug!( "[{}][WAL_FLUSH] Complete: total={}ms, {} batches flushed", log_ts(), start.elapsed().as_millis(), @@ -1250,7 +1251,7 @@ impl WalFlushHandler { // If we've already flushed past this end, nothing to do if last_flushed >= end_batch_id { - eprintln!( + debug!( "[{}][WAL_FLUSH_HANDLER] Skipping flush to batch #{} - already at #{}", log_ts(), end_batch_id, @@ -1395,7 +1396,7 @@ impl MessageHandler for MemTableFlushHandler { let batch_count = state.memtable.batch_count(); let last_flushed = self.wal_buffer.last_flushed_id(); drop(state); - eprintln!( + debug!( "[{}][FLUSH_HANDLER] Received FlushMemTable: batches={}, remaining={}, pending_batches={}", log_ts(), batch_count, remaining, batch_count.saturating_sub(last_flushed) ); @@ -1417,14 +1418,14 @@ impl MessageHandler for MemTableFlushHandler { let batch_store_full = state.memtable.is_batch_store_full(); let remaining = state.memtable.remaining_batch_capacity(); let all_flushed = state.memtable.all_flushed_to_wal(); - eprintln!( + debug!( "[{}][FLUSH_HANDLER] Tick: size_exceeded={} capacity_reached={} batch_store_full={} remaining={} all_flushed={}", log_ts(), size_exceeded, capacity_reached, batch_store_full, remaining, all_flushed ); (size_exceeded || capacity_reached || batch_store_full) && all_flushed }; if should_flush { - eprintln!("[{}][FLUSH_HANDLER] Tick triggering flush", log_ts()); + debug!("[{}][FLUSH_HANDLER] Tick triggering flush", log_ts()); let _ = self.do_flush().await; } } @@ -1445,7 +1446,7 @@ impl MemTableFlushHandler { /// WAL replay will recover the data on restart. async fn freeze_memtable(&mut self) -> Result { let freeze_start = std::time::Instant::now(); - eprintln!("[{}][FREEZE] Starting freeze_memtable", log_ts()); + debug!("[{}][FREEZE] Starting freeze_memtable", log_ts()); // Get batch_store reference for watermark-based flush let batch_store = { @@ -1453,7 +1454,7 @@ impl MemTableFlushHandler { let remaining = state.memtable.remaining_batch_capacity(); let batch_count = state.memtable.batch_count(); let last_flushed = self.wal_buffer.last_flushed_id(); - eprintln!( + debug!( "[{}][FREEZE] WAL flush: pending_batches={}, remaining_capacity={}", log_ts(), batch_count.saturating_sub(last_flushed), @@ -1468,7 +1469,7 @@ impl MemTableFlushHandler { .wal_buffer .flush_with_index_update(&batch_store, self.indexes.clone()) .await?; - eprintln!( + debug!( "[{}][FREEZE] WAL S3 flush took {}ms", log_ts(), s3_start.elapsed().as_millis() @@ -1490,7 +1491,7 @@ impl MemTableFlushHandler { let last_wal_id = state.last_flushed_wal_id; let old_batch_count = state.memtable.batch_capacity() - state.memtable.remaining_batch_capacity(); - eprintln!( + debug!( "[{}][FREEZE] Swapping memtable: old had {} batches", log_ts(), old_batch_count @@ -1546,7 +1547,7 @@ impl MemTableFlushHandler { state.immutable_memtables.len() ); - eprintln!( + debug!( "[{}][FREEZE] Complete: gen={} imm_queue={} new_capacity={} took={}ms", log_ts(), next_generation - 1, @@ -1561,7 +1562,7 @@ impl MemTableFlushHandler { /// Flush the oldest immutable memtable from the queue. async fn flush_oldest_immutable(&mut self) -> Result> { let start = Instant::now(); - eprintln!( + debug!( "[{}][LANCE_FLUSH] Starting flush_oldest_immutable", log_ts() ); @@ -1573,11 +1574,11 @@ impl MemTableFlushHandler { }; let Some(immutable) = immutable else { - eprintln!("[{}][LANCE_FLUSH] No immutable memtable in queue", log_ts()); + debug!("[{}][LANCE_FLUSH] No immutable memtable in queue", log_ts()); return Ok(None); }; - eprintln!( + debug!( "[{}][LANCE_FLUSH] Flushing memtable with {} rows, {} batches", log_ts(), immutable.memtable().row_count(), @@ -1590,7 +1591,7 @@ impl MemTableFlushHandler { .flusher .flush(immutable.memtable(), &self.epoch_guard) .await?; - eprintln!( + debug!( "[{}][LANCE_FLUSH] flusher.flush() took {}ms", log_ts(), flusher_start.elapsed().as_millis() @@ -1626,7 +1627,7 @@ impl MemTableFlushHandler { }; if batch_count == 0 { - eprintln!( + debug!( "[{}][MEMTABLE_FLUSH] Skipping flush - no data (batches=0)", log_ts() ); @@ -1642,7 +1643,7 @@ impl MemTableFlushHandler { }); } - eprintln!( + debug!( "[{}][MEMTABLE_FLUSH] Starting do_flush: {} batches", log_ts(), batch_count @@ -1652,7 +1653,7 @@ impl MemTableFlushHandler { // Step 1: Freeze current memtable and add to queue let freeze_start = std::time::Instant::now(); let _next_generation = self.freeze_memtable().await?; - eprintln!( + debug!( "[{}][MEMTABLE_FLUSH] freeze_memtable took {}ms", log_ts(), freeze_start.elapsed().as_millis() @@ -1662,7 +1663,7 @@ impl MemTableFlushHandler { let lance_start = std::time::Instant::now(); let result = match self.flush_oldest_immutable().await? { Some(result) => { - eprintln!( + debug!( "[{}][MEMTABLE_FLUSH] flush_oldest_immutable (Lance format) took {}ms, {} rows, {} fragments", log_ts(), lance_start.elapsed().as_millis(), result.rows_flushed, @@ -1676,7 +1677,7 @@ impl MemTableFlushHandler { }), }; - eprintln!( + debug!( "[{}][MEMTABLE_FLUSH] do_flush complete: {}ms (freeze={}ms, lance={}ms)", log_ts(), flush_start.elapsed().as_millis(), From 0c2038f1cc950686a2dd3fd1c489079f6123b96d Mon Sep 17 00:00:00 2001 From: Heng Ge Date: Thu, 22 Jan 2026 10:28:37 -0800 Subject: [PATCH 11/20] test(mem_wal): add BTree and FTS indexes to S3 integration test Update test_region_writer_s3_ivfpq to maintain all three index types: - BTree index on id column - FTS (Inverted) index on text column - IVF-PQ index on vector column This tests the full index maintenance capability of the MemWAL writer. Co-Authored-By: Jack Ye Co-Authored-By: Claude Opus 4.5 --- rust/lance/src/dataset/mem_wal/write.rs | 44 +++++++++++++++++++++++-- 1 file changed, 41 insertions(+), 3 deletions(-) diff --git a/rust/lance/src/dataset/mem_wal/write.rs b/rust/lance/src/dataset/mem_wal/write.rs index 1f08fd7eac9..ce556a68115 100644 --- a/rust/lance/src/dataset/mem_wal/write.rs +++ b/rust/lance/src/dataset/mem_wal/write.rs @@ -57,6 +57,8 @@ mod region_writer_tests { }; use arrow_schema::{DataType, Field, Schema as ArrowSchema}; use lance_arrow::FixedSizeListArrayExt; + use lance_index::scalar::inverted::InvertedIndexParams; + use lance_index::scalar::ScalarIndexParams; use lance_index::vector::ivf::IvfBuildParams; use lance_index::vector::pq::builder::PQBuildParams; use lance_index::{DatasetIndexExt, IndexType}; @@ -205,7 +207,7 @@ mod region_writer_tests { ); } - /// Test region writer against S3 with IVF-PQ index (requires DATASET_PREFIX env var) + /// Test region writer against S3 with IVF-PQ, BTree, and FTS indexes (requires DATASET_PREFIX env var) /// Run with: DATASET_PREFIX=s3://bucket/path cargo test -p lance --release region_writer_tests::test_region_writer_s3_ivfpq -- --nocapture --ignored #[tokio::test] #[ignore] @@ -234,6 +236,38 @@ mod region_writer_tests { .await .expect("Failed to create dataset"); + // Create BTree index on id column + debug!("[TEST] Creating BTree index on id column..."); + let btree_start = Instant::now(); + let scalar_params = ScalarIndexParams::default(); + dataset + .create_index( + &["id"], + IndexType::BTree, + Some("id_btree".to_string()), + &scalar_params, + false, + ) + .await + .expect("Failed to create BTree index"); + debug!("[TEST] BTree index creation took {:?}", btree_start.elapsed()); + + // Create FTS index on text column + debug!("[TEST] Creating FTS index on text column..."); + let fts_start = Instant::now(); + let fts_params = InvertedIndexParams::default(); + dataset + .create_index( + &["text"], + IndexType::Inverted, + Some("text_fts".to_string()), + &fts_params, + false, + ) + .await + .expect("Failed to create FTS index"); + debug!("[TEST] FTS index creation took {:?}", fts_start.elapsed()); + // Create IVF-PQ index on dataset debug!("[TEST] Creating IVF-PQ index on dataset..."); let train_start = Instant::now(); @@ -266,11 +300,15 @@ mod region_writer_tests { train_start.elapsed() ); - // Initialize MemWAL with IVF-PQ index + // Initialize MemWAL with all three indexes dataset .initialize_mem_wal(MemWalConfig { region_spec: None, - maintained_indexes: vec!["vector_idx".to_string()], + maintained_indexes: vec![ + "id_btree".to_string(), + "text_fts".to_string(), + "vector_idx".to_string(), + ], }) .await .expect("Failed to initialize MemWAL"); From 4b7241a78ce9ff33516e80d6309cf21730be292d Mon Sep 17 00:00:00 2001 From: Heng Ge Date: Thu, 22 Jan 2026 14:30:09 -0800 Subject: [PATCH 12/20] fix(mem_wal): use eprintln! for integration test output Integration tests run with --nocapture need eprintln! for visible output. tracing::debug! requires a subscriber to be initialized which isn't set up in the test environment. Co-Authored-By: Jack Ye Co-Authored-By: Claude Opus 4.5 --- docs/src/format/table/mem_wal.md | 24 +++++++------ rust/lance/src/dataset/mem_wal/write.rs | 48 ++++++++++++------------- 2 files changed, 38 insertions(+), 34 deletions(-) diff --git a/docs/src/format/table/mem_wal.md b/docs/src/format/table/mem_wal.md index 987b7dad5e6..ef139d049e7 100644 --- a/docs/src/format/table/mem_wal.md +++ b/docs/src/format/table/mem_wal.md @@ -21,7 +21,7 @@ Writers claim a region and then write data to that region. Data in each region is expected to be merged into the base table gradually in the background. Regions must contain rows that are **mutually exclusive**. -Two regions contain rows with the same primary key, the following scenario can cause data corruption: +If two regions contain rows with the same primary key, the following scenario can cause data corruption: 1. Region A receives a write with primary key `pk=1` at time T1 2. Region B receives a write with primary key `pk=1` at time T2 (T2 > T1) @@ -44,13 +44,12 @@ It stores: - **Index catchup progress**: Which merged generation each base table index has been rebuilt to cover - **Region snapshots**: Snapshot of all region states for read optimization -The index is the source of truth for **configuration** and **merge progress**, -but **region snapshots** are for read-only optimization. -Each [region's manifest](#region-manifest) is authoritative for its own state. +The index is the source of truth for **configuration**, **merge progress** and **index catchup progress**. + +Writers read the MemWAL index to get these configurations before writing. -Writers read the MemWAL index to get configuration before writing. -Readers use the index to get a [snapshot of all region states](#reader-consistency), -then query each region's data alongside the base table and merge results at runtime. +Each [region's manifest](#region-manifest) is authoritative for its own state. +Readers use **Region snapshots** is a read-only optimization to see a point-in-time view of all regions without the need to open each region manifest. See [MemWAL Index Details](#memwal-index-details) for the complete structure. @@ -58,13 +57,18 @@ See [MemWAL Index Details](#memwal-index-details) for the complete structure. ![Region Architecture](../../images/mem_wal_regional.png) -Within a region, writes enter its MemTable and are flushed to the regional WAL for durability. -The MemTable is flushed to storage as a Flushed MemTable based on memory pressure and other conditions. -Flushed MemTables are then asynchronously merged into the base table. +Within a region, writes enter its **MemTable** and are flushed to the regional WAL for durability. +The MemTable is **flushed** to storage as a **Flushed MemTable** based on memory pressure and other conditions. +Flushed MemTables are then asynchronously **merged** into the base table. ### MemTable A MemTable logically represents rows inserted into the table before any flush to storage. +It serves 2 purposes: + +1. allow a reader to access data that is not flushed to storage yet +2. build up necessary data and related index during the write process + The in-memory representation of a MemTable is implementation-specific. Conceptually, it contains the same data as the corresponding [**WAL**](#wal) entries. When a MemTable is flushed, it becomes a [**Flushed MemTable**](#flushed-memtable) persisted to storage. diff --git a/rust/lance/src/dataset/mem_wal/write.rs b/rust/lance/src/dataset/mem_wal/write.rs index ce556a68115..b456e694e7e 100644 --- a/rust/lance/src/dataset/mem_wal/write.rs +++ b/rust/lance/src/dataset/mem_wal/write.rs @@ -48,6 +48,7 @@ pub use writer::RegionWriter; pub use batch_store::{LockFreeBatchStore, StoreFull, StoredBatch}; #[cfg(test)] +#[allow(clippy::print_stderr)] mod region_writer_tests { use std::sync::Arc; use std::time::Instant; @@ -63,7 +64,6 @@ mod region_writer_tests { use lance_index::vector::pq::builder::PQBuildParams; use lance_index::{DatasetIndexExt, IndexType}; use lance_linalg::distance::MetricType; - use tracing::debug; use uuid::Uuid; use crate::dataset::mem_wal::{DatasetMemWalExt, MemWalConfig}; @@ -141,7 +141,7 @@ mod region_writer_tests { let schema = create_test_schema(vector_dim); let uri = format!("memory://test_region_writer_{}", Uuid::new_v4()); - debug!("[TEST] Creating dataset at {}", uri); + eprintln!("[TEST] Creating dataset at {}", uri); // Create initial dataset let initial_batch = create_test_batch(&schema, 0, 100, vector_dim); @@ -165,7 +165,7 @@ mod region_writer_tests { .with_durable_write(false) .with_sync_indexed_write(false); - debug!("[TEST] Creating region writer with config: {:?}", config); + eprintln!("[TEST] Creating region writer with config: {:?}", config); let writer = dataset .mem_wal_writer(region_id, config) @@ -177,7 +177,7 @@ mod region_writer_tests { .map(|i| create_test_batch(&schema, (i * batch_size) as i64, batch_size, vector_dim)) .collect(); - debug!( + eprintln!( "[TEST] Writing {} batches x {} rows = {} total rows", num_batches, batch_size, @@ -188,20 +188,20 @@ mod region_writer_tests { for (i, batch) in batches.iter().enumerate() { writer.put(batch.clone()).await.expect("Failed to write"); if (i + 1) % 50 == 0 { - debug!("[TEST] Wrote {} batches in {:?}", i + 1, start.elapsed()); + eprintln!("[TEST] Wrote {} batches in {:?}", i + 1, start.elapsed()); } } let write_duration = start.elapsed(); - debug!("[TEST] All writes done in {:?}", write_duration); + eprintln!("[TEST] All writes done in {:?}", write_duration); let stats = writer.stats(); - debug!("[TEST] Closing writer..."); + eprintln!("[TEST] Closing writer..."); let close_start = Instant::now(); writer.close().await.expect("Failed to close"); - debug!("[TEST] Close took {:?}", close_start.elapsed()); + eprintln!("[TEST] Close took {:?}", close_start.elapsed()); - debug!( + eprintln!( "[TEST] Stats: puts={}, WAL flushes={}, WAL bytes={}", stats.put_count, stats.wal_flush_count, stats.wal_flush_bytes ); @@ -227,7 +227,7 @@ mod region_writer_tests { Uuid::new_v4() ); - debug!("[TEST] Creating dataset at {}", uri); + eprintln!("[TEST] Creating dataset at {}", uri); // Create initial dataset with enough data for IVF-PQ training let initial_batch = create_test_batch(&schema, 0, 1000, vector_dim); @@ -237,7 +237,7 @@ mod region_writer_tests { .expect("Failed to create dataset"); // Create BTree index on id column - debug!("[TEST] Creating BTree index on id column..."); + eprintln!("[TEST] Creating BTree index on id column..."); let btree_start = Instant::now(); let scalar_params = ScalarIndexParams::default(); dataset @@ -250,10 +250,10 @@ mod region_writer_tests { ) .await .expect("Failed to create BTree index"); - debug!("[TEST] BTree index creation took {:?}", btree_start.elapsed()); + eprintln!("[TEST] BTree index creation took {:?}", btree_start.elapsed()); // Create FTS index on text column - debug!("[TEST] Creating FTS index on text column..."); + eprintln!("[TEST] Creating FTS index on text column..."); let fts_start = Instant::now(); let fts_params = InvertedIndexParams::default(); dataset @@ -266,10 +266,10 @@ mod region_writer_tests { ) .await .expect("Failed to create FTS index"); - debug!("[TEST] FTS index creation took {:?}", fts_start.elapsed()); + eprintln!("[TEST] FTS index creation took {:?}", fts_start.elapsed()); // Create IVF-PQ index on dataset - debug!("[TEST] Creating IVF-PQ index on dataset..."); + eprintln!("[TEST] Creating IVF-PQ index on dataset..."); let train_start = Instant::now(); let ivf_params = IvfBuildParams { @@ -295,7 +295,7 @@ mod region_writer_tests { .await .expect("Failed to create IVF-PQ index"); - debug!( + eprintln!( "[TEST] IVF-PQ index creation took {:?}", train_start.elapsed() ); @@ -319,7 +319,7 @@ mod region_writer_tests { .with_durable_write(false) .with_sync_indexed_write(false); - debug!( + eprintln!( "[TEST] Config: flush_interval={:?}, wal_buffer_size={}", config.max_flush_interval, config.max_wal_buffer_size ); @@ -334,7 +334,7 @@ mod region_writer_tests { .map(|i| create_test_batch(&schema, (i * batch_size) as i64, batch_size, vector_dim)) .collect(); - debug!( + eprintln!( "[TEST] Writing {} batches x {} rows = {} total rows", num_batches, batch_size, @@ -345,25 +345,25 @@ mod region_writer_tests { for (i, batch) in batches.iter().enumerate() { writer.put(batch.clone()).await.expect("Failed to write"); if (i + 1) % 100 == 0 { - debug!("[TEST] Wrote {} batches in {:?}", i + 1, start.elapsed()); + eprintln!("[TEST] Wrote {} batches in {:?}", i + 1, start.elapsed()); } } let write_duration = start.elapsed(); - debug!("[TEST] All writes done in {:?}", write_duration); + eprintln!("[TEST] All writes done in {:?}", write_duration); let stats = writer.stats(); - debug!("[TEST] Closing writer..."); + eprintln!("[TEST] Closing writer..."); let close_start = Instant::now(); writer.close().await.expect("Failed to close"); - debug!("[TEST] Close took {:?}", close_start.elapsed()); + eprintln!("[TEST] Close took {:?}", close_start.elapsed()); - debug!( + eprintln!( "[TEST] Stats: puts={}, WAL flushes={}, WAL bytes={}", stats.put_count, stats.wal_flush_count, stats.wal_flush_bytes ); let rows_per_sec = (num_batches * batch_size) as f64 / write_duration.as_secs_f64(); - debug!("[TEST] Throughput: {:.0} rows/sec", rows_per_sec); + eprintln!("[TEST] Throughput: {:.0} rows/sec", rows_per_sec); } } From 02635bfd451b622ee7ba37bab6636ec0b4559b7a Mon Sep 17 00:00:00 2001 From: Heng Ge Date: Thu, 22 Jan 2026 14:48:57 -0800 Subject: [PATCH 13/20] fix(mem_wal): restore eprintln! debug statements for visibility Restore comprehensive eprintln! statements that were removed in the HNSW removal commit. These debug statements with tags like [FLUSHER], [WAL_FLUSH], [TRIGGER], [FREEZE], [LANCE_FLUSH] are essential for debugging MemWAL operations. Added #![allow(clippy::print_stderr)] to affected modules: - dispatcher.rs - batch_write.rs - flush.rs - wal.rs - writer.rs Co-Authored-By: Jack Ye Co-Authored-By: Claude Opus 4.5 --- docs/src/format/table/mem_wal.md | 17 +++---- rust/lance/src/dataset/mem_wal/dispatcher.rs | 6 ++- .../src/dataset/mem_wal/write/batch_write.rs | 10 ++-- rust/lance/src/dataset/mem_wal/write/flush.rs | 18 +++---- rust/lance/src/dataset/mem_wal/write/wal.rs | 12 +++-- .../lance/src/dataset/mem_wal/write/writer.rs | 48 ++++++++++--------- 6 files changed, 59 insertions(+), 52 deletions(-) diff --git a/docs/src/format/table/mem_wal.md b/docs/src/format/table/mem_wal.md index ef139d049e7..8878aa69e88 100644 --- a/docs/src/format/table/mem_wal.md +++ b/docs/src/format/table/mem_wal.md @@ -63,18 +63,14 @@ Flushed MemTables are then asynchronously **merged** into the base table. ### MemTable -A MemTable logically represents rows inserted into the table before any flush to storage. +A MemTable logically represents rows inserted into the table before flushing to storage. It serves 2 purposes: 1. allow a reader to access data that is not flushed to storage yet -2. build up necessary data and related index during the write process +2. build up necessary data and related index to be flushed to storage -The in-memory representation of a MemTable is implementation-specific. -Conceptually, it contains the same data as the corresponding [**WAL**](#wal) entries. -When a MemTable is flushed, it becomes a [**Flushed MemTable**](#flushed-memtable) persisted to storage. - -A MemTable is optional. Implementation can choose to write to WAL directly, produce flushed MemTable independently. -A MemTable is useful for faster access during read time. +The unit of write into a Lance MemTable is an Apache Arrow record batch following the [Arrow in memory layout spec](https://arrow.apache.org/docs/format/index.html). +The complete in-memory representation of a MemTable is implementation-specific depending on the specific use case. ### WAL @@ -86,8 +82,9 @@ The whole LSM tree's durability is determined by the durability of the WAL. For example, if WAL is stored in Amazon S3, it has the 99.999999999% durability. If it is stored in local disk, the data will be lost if the local disk is damaged. -A WAL consists of an ordered sequence of WAL entries starting from 1. Each entry is a Lance format file. -The writer epoch is stored in the Lance file's schema metadata with key `writer_epoch` for fencing validation during replay. +A WAL consists of an ordered sequence of WAL entries starting from 1. +Each entry is a [Apache Arrow IPC file](https://arrow.apache.org/docs/format/Columnar.html#ipc-file-format). +The writer epoch is stored in the Arrow IPC file schema metadata with key `writer_epoch` for fencing validation during replay. Each WAL entry is stored within the WAL directory of the region located at `_mem_wal/{region_id}/wal`. diff --git a/rust/lance/src/dataset/mem_wal/dispatcher.rs b/rust/lance/src/dataset/mem_wal/dispatcher.rs index 2870ca6f65c..fd515fa0d0f 100644 --- a/rust/lance/src/dataset/mem_wal/dispatcher.rs +++ b/rust/lance/src/dataset/mem_wal/dispatcher.rs @@ -1,6 +1,8 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-FileCopyrightText: Copyright The Lance Authors +#![allow(clippy::print_stderr)] + //! Background task dispatcher with message-driven event handling. //! //! ## Example @@ -101,7 +103,7 @@ impl TaskDispatcher { }) .collect(); - debug!( + eprintln!( "[{}][DISPATCHER] Task '{}' started, has {} tickers", log_ts(), self.name, @@ -250,7 +252,7 @@ impl TaskExecutor { handler: Box>, rx: mpsc::UnboundedReceiver, ) -> Result<()> { - debug!("[{}][EXECUTOR] Adding handler task '{}'", log_ts(), name); + eprintln!("[{}][EXECUTOR] Adding handler task '{}'", log_ts(), name); let dispatcher = TaskDispatcher { handler, rx, diff --git a/rust/lance/src/dataset/mem_wal/write/batch_write.rs b/rust/lance/src/dataset/mem_wal/write/batch_write.rs index f7837ac0c6c..f5f79a83e5d 100644 --- a/rust/lance/src/dataset/mem_wal/write/batch_write.rs +++ b/rust/lance/src/dataset/mem_wal/write/batch_write.rs @@ -1,6 +1,8 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-FileCopyrightText: Copyright The Lance Authors +#![allow(clippy::print_stderr)] + //! Batch write handling with single writer task pattern. use std::sync::atomic::{AtomicU64, Ordering}; @@ -295,7 +297,7 @@ impl BackpressureController { // Determine primary backpressure type (priority: batch_store > imm > bytes) let bp_type = if batch_store_nearly_full { // Trigger memtable flush when batch store is nearly full and WAIT for it - debug!( + eprintln!( "[{}][BP_TRIGGER] iter={} batch_store_nearly_full: remaining={}/{} (<10%), triggering flush and waiting", log_ts(), iteration, remaining_batches, total_batches ); @@ -303,7 +305,7 @@ impl BackpressureController { provider.trigger_memtable_flush_and_wait().await; let wait_ms = start.elapsed().as_millis() as u64; self.stats.record(BackpressureType::BatchStoreFull, wait_ms); - debug!( + eprintln!( "[{}][BP_TRIGGER] flush complete after {}ms, new remaining={}", log_ts(), wait_ms, @@ -313,7 +315,7 @@ impl BackpressureController { iteration += 1; continue; } else if imm_exceeded { - debug!( + eprintln!( "[{}][BP_TRIGGER] iter={} imm_exceeded: imm_count={} >= max={}", log_ts(), iteration, @@ -322,7 +324,7 @@ impl BackpressureController { ); BackpressureType::ImmutableMemtables } else { - debug!( + eprintln!( "[{}][BP_TRIGGER] iter={} bytes_exceeded: unflushed={} >= max={}", log_ts(), iteration, diff --git a/rust/lance/src/dataset/mem_wal/write/flush.rs b/rust/lance/src/dataset/mem_wal/write/flush.rs index 1513d3c62da..501dfdf43ee 100644 --- a/rust/lance/src/dataset/mem_wal/write/flush.rs +++ b/rust/lance/src/dataset/mem_wal/write/flush.rs @@ -1,6 +1,8 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-FileCopyrightText: Copyright The Lance Authors +#![allow(clippy::print_stderr)] + //! MemTable flush to persistent storage. //! //! The flusher persists MemTable data as a flushed generation: @@ -130,7 +132,7 @@ impl MemTableFlusher { memtable: &MemTable, epoch_guard: &EpochGuard, ) -> Result { - debug!( + eprintln!( "[{}] [FLUSHER] flush() called: {} rows, {} batches", log_ts(), memtable.row_count(), @@ -171,7 +173,7 @@ impl MemTableFlusher { memtable.row_count(), memtable.batch_count() ); - debug!( + eprintln!( "[{}] [FLUSHER] Starting flush: gen={}, {} rows, {} batches", log_ts(), generation, @@ -183,7 +185,7 @@ impl MemTableFlusher { // Dataset::write creates the full directory structure including _versions/, data/ let lance_start = std::time::Instant::now(); self.write_data_file(&gen_path, memtable).await?; - debug!( + eprintln!( "[{}] [FLUSHER] write_data_file (Lance) took {}ms", log_ts(), lance_start.elapsed().as_millis() @@ -194,7 +196,7 @@ impl MemTableFlusher { let bloom_path = gen_path.child("bloom_filter.bin"); self.write_bloom_filter(&bloom_path, memtable.bloom_filter()) .await?; - debug!( + eprintln!( "[{}] [FLUSHER] write_bloom_filter took {}ms", log_ts(), bloom_start.elapsed().as_millis() @@ -206,7 +208,7 @@ impl MemTableFlusher { let new_manifest = self .update_manifest(epoch_guard, generation, gen_path.as_ref(), last_wal_id) .await?; - debug!( + eprintln!( "[{}] [FLUSHER] update_manifest took {}ms", log_ts(), manifest_start.elapsed().as_millis() @@ -217,7 +219,7 @@ impl MemTableFlusher { generation, self.region_id, new_manifest.version ); - debug!( + eprintln!( "[{}] [FLUSHER] flush() complete: total={}ms, {} rows", log_ts(), flush_total_start.elapsed().as_millis(), @@ -256,7 +258,7 @@ impl MemTableFlusher { } let num_batches = batches.len(); let total_rows: usize = batches.iter().map(|b| b.num_rows()).sum(); - debug!( + eprintln!( "[{}] [LANCE_WRITE] scan_batches: {}ms, {} batches, {} rows", log_ts(), scan_start.elapsed().as_millis(), @@ -272,7 +274,7 @@ impl MemTableFlusher { let reader = RecordBatchIterator::new(batches.into_iter().map(Ok), memtable.schema().clone()); Dataset::write(reader, &uri, None).await?; - debug!( + eprintln!( "[{}] [LANCE_WRITE] Dataset::write: {}ms, {} rows to {}", log_ts(), write_start.elapsed().as_millis(), diff --git a/rust/lance/src/dataset/mem_wal/write/wal.rs b/rust/lance/src/dataset/mem_wal/write/wal.rs index d667f1cd223..45b436f821a 100644 --- a/rust/lance/src/dataset/mem_wal/write/wal.rs +++ b/rust/lance/src/dataset/mem_wal/write/wal.rs @@ -1,6 +1,8 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-FileCopyrightText: Copyright The Lance Authors +#![allow(clippy::print_stderr)] + //! Write-Ahead Log (WAL) buffer for durability. //! //! The WAL buffer tracks which batches need to be flushed to storage. @@ -697,7 +699,7 @@ impl WalBuffer { let rows_to_index: usize = index_batches.iter().map(|b| b.batch.num_rows()).sum(); - debug!( + eprintln!( "[{}] [WAL_FLUSH] Flushing range {}..{} ({} batches, {} rows) to WAL #{}", log_ts(), flushed_id, @@ -796,7 +798,7 @@ impl WalBuffer { let wal_io_duration = wal_result?; let index_update_duration = index_result?; - debug!( + eprintln!( "[{}] [WAL_FLUSH] WAL #{} complete: S3={}ms, index={}ms, {} batches", log_ts(), wal_id, @@ -914,7 +916,7 @@ impl WalBuffer { } let rows_to_index: usize = index_batches.iter().map(|b| b.batch.num_rows()).sum(); - debug!( + eprintln!( "[{}] [WAL_FLUSH] flush_limited: {} batches (IDs {}..{}), {} rows to index", log_ts(), batches.len(), @@ -961,7 +963,7 @@ impl WalBuffer { } let wal_bytes = buffer.len(); - debug!( + eprintln!( "[{}] [WAL_FLUSH] Serialized {} bytes in {}ms", log_ts(), wal_bytes, @@ -1020,7 +1022,7 @@ impl WalBuffer { // Check for errors let wal_io_duration = wal_result?; let index_update_duration = index_result?; - debug!( + eprintln!( "[{}] [WAL_FLUSH] S3 put: {}ms, index update: {}ms, {} rows", log_ts(), wal_io_duration.as_millis(), diff --git a/rust/lance/src/dataset/mem_wal/write/writer.rs b/rust/lance/src/dataset/mem_wal/write/writer.rs index 577a6829a56..43782e1a2e9 100644 --- a/rust/lance/src/dataset/mem_wal/write/writer.rs +++ b/rust/lance/src/dataset/mem_wal/write/writer.rs @@ -1,6 +1,8 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-FileCopyrightText: Copyright The Lance Authors +#![allow(clippy::print_stderr)] + //! RegionWriter - Main write interface for MemWAL. //! //! The RegionWriter coordinates all write operations: @@ -277,7 +279,7 @@ impl WriterStateOps for Arc { // If time trigger fired, send a flush message if time_trigger.is_some() { - debug!( + eprintln!( "[{}][WAL_TIME_TRIGGER] total_bytes={}, interval elapsed, triggering flush to batch #{}", log_ts(), total_bytes, @@ -326,7 +328,7 @@ impl WriterStateOps for Arc { self.last_wal_flush_trigger_time .store(now_millis(), std::sync::atomic::Ordering::Release); - debug!( + eprintln!( "[{}][WAL_SIZE_TRIGGER] total_bytes={}, threshold #{} crossed ({}MB), triggering flush to batch #{}", log_ts(), total_bytes, @@ -392,7 +394,7 @@ impl BackpressureProvider for SharedWriterState { } async fn trigger_memtable_flush_and_wait(&self) { - debug!( + eprintln!( "[{}][TRIGGER] Sending FlushMemTable message and waiting for completion", log_ts() ); @@ -410,13 +412,13 @@ impl BackpressureProvider for SharedWriterState { // Wait for the flush to complete match rx.await { Ok(Ok(_)) => { - debug!("[{}][TRIGGER] Flush completed successfully", log_ts()); + eprintln!("[{}][TRIGGER] Flush completed successfully", log_ts()); } Ok(Err(e)) => { - debug!("[{}][TRIGGER] Flush failed: {}", log_ts(), e); + eprintln!("[{}][TRIGGER] Flush failed: {}", log_ts(), e); } Err(_) => { - debug!("[{}][TRIGGER] Flush channel closed unexpectedly", log_ts()); + eprintln!("[{}][TRIGGER] Flush channel closed unexpectedly", log_ts()); } } } @@ -603,7 +605,7 @@ impl RegionWriter { // Start background WAL flush handler // The WAL flush handler does parallel WAL I/O + index updates - debug!( + eprintln!( "[{}][WRITER] Creating wal_flusher with flush_interval={:?}", log_ts(), config.max_flush_interval @@ -640,13 +642,13 @@ impl RegionWriter { stats.clone(), flush_requested.clone(), // Share flag with writer ); - debug!("[{}][WRITER] Adding memtable_flusher handler", log_ts()); + eprintln!("[{}][WRITER] Adding memtable_flusher handler", log_ts()); task_executor.add_handler( "memtable_flusher".to_string(), Box::new(memtable_handler), memtable_flush_rx, )?; - debug!("[{}][WRITER] memtable_flusher handler added", log_ts()); + eprintln!("[{}][WRITER] memtable_flusher handler added", log_ts()); let (write_batch_tx, write_batch_rx) = write_batch_channel(); @@ -712,7 +714,7 @@ impl RegionWriter { static PUT_COUNT: std::sync::atomic::AtomicU64 = std::sync::atomic::AtomicU64::new(0); let count = PUT_COUNT.fetch_add(1, std::sync::atomic::Ordering::Relaxed); if count % 100 == 0 { - debug!("[{}][PUT] put #{}", log_ts(), count); + eprintln!("[{}][PUT] put #{}", log_ts(), count); } let num_rows = batch.num_rows(); @@ -1075,7 +1077,7 @@ impl MessageHandler for WalFlushHandler { async fn handle(&mut self, message: WalFlushMsg) -> Result<()> { match message { WalFlushMsg::TriggerWalFlush { end_batch_id, done } => { - debug!( + eprintln!( "[{}][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #{}, starting flush", log_ts(), end_batch_id @@ -1251,7 +1253,7 @@ impl WalFlushHandler { // If we've already flushed past this end, nothing to do if last_flushed >= end_batch_id { - debug!( + eprintln!( "[{}][WAL_FLUSH_HANDLER] Skipping flush to batch #{} - already at #{}", log_ts(), end_batch_id, @@ -1396,7 +1398,7 @@ impl MessageHandler for MemTableFlushHandler { let batch_count = state.memtable.batch_count(); let last_flushed = self.wal_buffer.last_flushed_id(); drop(state); - debug!( + eprintln!( "[{}][FLUSH_HANDLER] Received FlushMemTable: batches={}, remaining={}, pending_batches={}", log_ts(), batch_count, remaining, batch_count.saturating_sub(last_flushed) ); @@ -1425,7 +1427,7 @@ impl MessageHandler for MemTableFlushHandler { (size_exceeded || capacity_reached || batch_store_full) && all_flushed }; if should_flush { - debug!("[{}][FLUSH_HANDLER] Tick triggering flush", log_ts()); + eprintln!("[{}][FLUSH_HANDLER] Tick triggering flush", log_ts()); let _ = self.do_flush().await; } } @@ -1446,7 +1448,7 @@ impl MemTableFlushHandler { /// WAL replay will recover the data on restart. async fn freeze_memtable(&mut self) -> Result { let freeze_start = std::time::Instant::now(); - debug!("[{}][FREEZE] Starting freeze_memtable", log_ts()); + eprintln!("[{}][FREEZE] Starting freeze_memtable", log_ts()); // Get batch_store reference for watermark-based flush let batch_store = { @@ -1454,7 +1456,7 @@ impl MemTableFlushHandler { let remaining = state.memtable.remaining_batch_capacity(); let batch_count = state.memtable.batch_count(); let last_flushed = self.wal_buffer.last_flushed_id(); - debug!( + eprintln!( "[{}][FREEZE] WAL flush: pending_batches={}, remaining_capacity={}", log_ts(), batch_count.saturating_sub(last_flushed), @@ -1469,7 +1471,7 @@ impl MemTableFlushHandler { .wal_buffer .flush_with_index_update(&batch_store, self.indexes.clone()) .await?; - debug!( + eprintln!( "[{}][FREEZE] WAL S3 flush took {}ms", log_ts(), s3_start.elapsed().as_millis() @@ -1491,7 +1493,7 @@ impl MemTableFlushHandler { let last_wal_id = state.last_flushed_wal_id; let old_batch_count = state.memtable.batch_capacity() - state.memtable.remaining_batch_capacity(); - debug!( + eprintln!( "[{}][FREEZE] Swapping memtable: old had {} batches", log_ts(), old_batch_count @@ -1547,7 +1549,7 @@ impl MemTableFlushHandler { state.immutable_memtables.len() ); - debug!( + eprintln!( "[{}][FREEZE] Complete: gen={} imm_queue={} new_capacity={} took={}ms", log_ts(), next_generation - 1, @@ -1562,7 +1564,7 @@ impl MemTableFlushHandler { /// Flush the oldest immutable memtable from the queue. async fn flush_oldest_immutable(&mut self) -> Result> { let start = Instant::now(); - debug!( + eprintln!( "[{}][LANCE_FLUSH] Starting flush_oldest_immutable", log_ts() ); @@ -1574,11 +1576,11 @@ impl MemTableFlushHandler { }; let Some(immutable) = immutable else { - debug!("[{}][LANCE_FLUSH] No immutable memtable in queue", log_ts()); + eprintln!("[{}][LANCE_FLUSH] No immutable memtable in queue", log_ts()); return Ok(None); }; - debug!( + eprintln!( "[{}][LANCE_FLUSH] Flushing memtable with {} rows, {} batches", log_ts(), immutable.memtable().row_count(), @@ -1591,7 +1593,7 @@ impl MemTableFlushHandler { .flusher .flush(immutable.memtable(), &self.epoch_guard) .await?; - debug!( + eprintln!( "[{}][LANCE_FLUSH] flusher.flush() took {}ms", log_ts(), flusher_start.elapsed().as_millis() From bdb742dd38fa77e46bffd8d272d71c608650fd42 Mon Sep 17 00:00:00 2001 From: Heng Ge Date: Thu, 22 Jan 2026 15:53:05 -0800 Subject: [PATCH 14/20] perf(mem_wal): run all index updates in parallel during WAL flush Changed insert_batches_parallel to spawn a thread for each individual index rather than grouping by type. This maximizes parallelism when multiple indexes are maintained. Before: 3 threads max (one per type: BTree, IVF-PQ, FTS) After: N threads (one per index) Co-Authored-By: Jack Ye Co-Authored-By: Claude Opus 4.5 --- .../src/dataset/mem_wal/write/indexes.rs | 119 +++++++----------- 1 file changed, 46 insertions(+), 73 deletions(-) diff --git a/rust/lance/src/dataset/mem_wal/write/indexes.rs b/rust/lance/src/dataset/mem_wal/write/indexes.rs index 05a21d0fbb7..e33598eb0a3 100644 --- a/rust/lance/src/dataset/mem_wal/write/indexes.rs +++ b/rust/lance/src/dataset/mem_wal/write/indexes.rs @@ -1457,8 +1457,8 @@ impl IndexRegistry { /// Insert multiple batches into all indexes in parallel. /// - /// Each index type (BTree, IVF-PQ, FTS) is processed in a separate thread. - /// Within each type, individual indexes are processed sequentially. + /// Each individual index runs in its own thread, regardless of type. + /// This maximizes parallelism when multiple indexes are maintained. /// /// This is used during WAL flush to parallelize index updates with WAL I/O. pub fn insert_batches_parallel(&self, batches: &[BufferedBatch]) -> Result<()> { @@ -1468,86 +1468,59 @@ impl IndexRegistry { // Use std::thread::scope for parallel CPU-bound work std::thread::scope(|scope| { - // Spawn thread for BTree indexes - let btree_handle = if !self.btree_indexes.is_empty() { - Some(scope.spawn(|| -> Result<()> { - for index in self.btree_indexes.values() { - for buffered in batches { - index.insert_with_seq( - &buffered.batch, - buffered.row_offset, - buffered.seq, - )?; - } + let mut handles: Vec<(&str, std::thread::ScopedJoinHandle<'_, Result<()>>)> = Vec::new(); + + // Spawn a thread for each BTree index + for (name, index) in &self.btree_indexes { + let handle = scope.spawn(move || -> Result<()> { + for buffered in batches { + index.insert_with_seq( + &buffered.batch, + buffered.row_offset, + buffered.seq, + )?; } Ok(()) - })) - } else { - None - }; + }); + handles.push((name.as_str(), handle)); + } - // Spawn thread for IVF-PQ indexes - let ivfpq_handle = if !self.ivf_pq_indexes.is_empty() { - Some(scope.spawn(|| -> Result<()> { - for index in self.ivf_pq_indexes.values() { - index.insert_batches(batches)?; - } + // Spawn a thread for each IVF-PQ index + for (name, index) in &self.ivf_pq_indexes { + let handle = scope.spawn(move || -> Result<()> { + index.insert_batches(batches)?; Ok(()) - })) - } else { - None - }; + }); + handles.push((name.as_str(), handle)); + } - // Spawn thread for FTS indexes - let fts_handle = if !self.fts_indexes.is_empty() { - Some(scope.spawn(|| -> Result<()> { - for index in self.fts_indexes.values() { - for buffered in batches { - index.insert_with_seq( - &buffered.batch, - buffered.row_offset, - buffered.seq, - )?; - } + // Spawn a thread for each FTS index + for (name, index) in &self.fts_indexes { + let handle = scope.spawn(move || -> Result<()> { + for buffered in batches { + index.insert_with_seq( + &buffered.batch, + buffered.row_offset, + buffered.seq, + )?; } Ok(()) - })) - } else { - None - }; - - // Collect results - let btree_result = btree_handle.map(|h| h.join()); - let ivfpq_result = ivfpq_handle.map(|h| h.join()); - let fts_result = fts_handle.map(|h| h.join()); - - // Check for errors (thread panic or index error) - if let Some(Ok(Err(e))) = btree_result { - return Err(e); - } - if let Some(Ok(Err(e))) = ivfpq_result { - return Err(e); - } - if let Some(Ok(Err(e))) = fts_result { - return Err(e); - } - if let Some(Err(_)) = btree_result { - return Err(Error::Internal { - message: "BTree index thread panicked".to_string(), - location: location!(), - }); - } - if let Some(Err(_)) = ivfpq_result { - return Err(Error::Internal { - message: "IVF-PQ index thread panicked".to_string(), - location: location!(), }); + handles.push((name.as_str(), handle)); } - if let Some(Err(_)) = fts_result { - return Err(Error::Internal { - message: "FTS index thread panicked".to_string(), - location: location!(), - }); + + // Collect results and check for errors + for (name, handle) in handles { + match handle.join() { + Ok(Ok(())) => {} + Ok(Err(e)) => return Err(e), + Err(_) => { + return Err(Error::Internal { + message: format!("Index '{}' thread panicked", name), + location: location!(), + }); + } + } } Ok(()) From ca2f2f109b927db8a36648528e417b31e6c1772e Mon Sep 17 00:00:00 2001 From: Heng Ge Date: Thu, 22 Jan 2026 15:57:56 -0800 Subject: [PATCH 15/20] feat(mem_wal): add per-index timing logs during WAL flush Log individual index update times to identify slow indexes: [INDEX_UPDATE] 3140 rows, 157 batches: id_btree(btree)=5ms, text_fts(fts)=12ms, vector_idx(ivfpq)=280ms This helps diagnose which index type is the bottleneck during high-throughput writes. Co-Authored-By: Jack Ye Co-Authored-By: Claude Opus 4.5 --- .../src/dataset/mem_wal/write/indexes.rs | 117 +++++++++++++----- 1 file changed, 84 insertions(+), 33 deletions(-) diff --git a/rust/lance/src/dataset/mem_wal/write/indexes.rs b/rust/lance/src/dataset/mem_wal/write/indexes.rs index e33598eb0a3..06fc83d6527 100644 --- a/rust/lance/src/dataset/mem_wal/write/indexes.rs +++ b/rust/lance/src/dataset/mem_wal/write/indexes.rs @@ -1,6 +1,9 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-FileCopyrightText: Copyright The Lance Authors +#![allow(clippy::print_stderr)] +#![allow(clippy::type_complexity)] + //! Index registry for MemTable write path. //! //! Maintains in-memory indexes that are updated synchronously with writes: @@ -1462,67 +1465,115 @@ impl IndexRegistry { /// /// This is used during WAL flush to parallelize index updates with WAL I/O. pub fn insert_batches_parallel(&self, batches: &[BufferedBatch]) -> Result<()> { + use std::time::Instant; + if batches.is_empty() { return Ok(()); } + let total_rows: usize = batches.iter().map(|b| b.batch.num_rows()).sum(); + // Use std::thread::scope for parallel CPU-bound work std::thread::scope(|scope| { - let mut handles: Vec<(&str, std::thread::ScopedJoinHandle<'_, Result<()>>)> = Vec::new(); + // Each handle returns (index_name, index_type, duration, Result) + let mut handles: Vec<( + &str, + &str, + std::thread::ScopedJoinHandle<'_, (std::time::Duration, Result<()>)>, + )> = Vec::new(); // Spawn a thread for each BTree index for (name, index) in &self.btree_indexes { - let handle = scope.spawn(move || -> Result<()> { - for buffered in batches { - index.insert_with_seq( - &buffered.batch, - buffered.row_offset, - buffered.seq, - )?; - } - Ok(()) + let handle = scope.spawn(move || -> (std::time::Duration, Result<()>) { + let start = Instant::now(); + let result = (|| { + for buffered in batches { + index.insert_with_seq( + &buffered.batch, + buffered.row_offset, + buffered.seq, + )?; + } + Ok(()) + })(); + (start.elapsed(), result) }); - handles.push((name.as_str(), handle)); + handles.push((name.as_str(), "btree", handle)); } // Spawn a thread for each IVF-PQ index for (name, index) in &self.ivf_pq_indexes { - let handle = scope.spawn(move || -> Result<()> { - index.insert_batches(batches)?; - Ok(()) + let handle = scope.spawn(move || -> (std::time::Duration, Result<()>) { + let start = Instant::now(); + let result = index.insert_batches(batches); + (start.elapsed(), result) }); - handles.push((name.as_str(), handle)); + handles.push((name.as_str(), "ivfpq", handle)); } // Spawn a thread for each FTS index for (name, index) in &self.fts_indexes { - let handle = scope.spawn(move || -> Result<()> { - for buffered in batches { - index.insert_with_seq( - &buffered.batch, - buffered.row_offset, - buffered.seq, - )?; - } - Ok(()) + let handle = scope.spawn(move || -> (std::time::Duration, Result<()>) { + let start = Instant::now(); + let result = (|| { + for buffered in batches { + index.insert_with_seq( + &buffered.batch, + buffered.row_offset, + buffered.seq, + )?; + } + Ok(()) + })(); + (start.elapsed(), result) }); - handles.push((name.as_str(), handle)); + handles.push((name.as_str(), "fts", handle)); } - // Collect results and check for errors - for (name, handle) in handles { + // Collect results, log timing, and check for errors + let mut first_error: Option = None; + let mut timings: Vec<(&str, &str, u128)> = Vec::new(); + + for (name, idx_type, handle) in handles { match handle.join() { - Ok(Ok(())) => {} - Ok(Err(e)) => return Err(e), + Ok((duration, Ok(()))) => { + timings.push((name, idx_type, duration.as_millis())); + } + Ok((duration, Err(e))) => { + timings.push((name, idx_type, duration.as_millis())); + if first_error.is_none() { + first_error = Some(e); + } + } Err(_) => { - return Err(Error::Internal { - message: format!("Index '{}' thread panicked", name), - location: location!(), - }); + if first_error.is_none() { + first_error = Some(Error::Internal { + message: format!("Index '{}' thread panicked", name), + location: location!(), + }); + } } } } + // Log individual index timings + if !timings.is_empty() { + let timing_str: Vec = timings + .iter() + .map(|(name, idx_type, ms)| format!("{}({})={}ms", name, idx_type, ms)) + .collect(); + eprintln!( + "[INDEX_UPDATE] {} rows, {} batches: {}", + total_rows, + batches.len(), + timing_str.join(", ") + ); + } + + if let Some(e) = first_error { + return Err(e); + } + Ok(()) }) } From ef9819dfa22b55a27316b97c5115e110af498acc Mon Sep 17 00:00:00 2001 From: Heng Ge Date: Thu, 22 Jan 2026 16:35:06 -0800 Subject: [PATCH 16/20] refactor(mem_wal): per-memtable WAL watermarks and instant freeze - Move WAL flush watermark from global WalBuffer to per-memtable LockFreeBatchStore. Each memtable now tracks its own wal_flushed_batch_id independently. - Make freeze_memtable instant (sub-millisecond) by removing synchronous WAL flush. Freeze now just swaps memtables and marks the old one as frozen. - Remove ImmutableMemTable wrapper entirely. Durability is guaranteed by WAL, not by Lance flush. Use Arc directly in frozen_memtables queue. - Add freeze(wal_id), frozen_at_wal_id(), is_frozen() methods to MemTable for tracking frozen state. - Update flush_oldest_immutable to finish WAL flush for the frozen memtable before Lance flush, using the memtable's own batch_store and indexes. This allows writes to continue immediately after freeze while background processing handles WAL and Lance flushes independently. Co-Authored-By: Jack Ye Co-Authored-By: Claude --- rust/lance/src/dataset/mem_wal/write.rs | 2 - .../src/dataset/mem_wal/write/batch_store.rs | 52 ++++ .../src/dataset/mem_wal/write/immutable.rs | 268 ------------------ .../src/dataset/mem_wal/write/memtable.rs | 30 ++ rust/lance/src/dataset/mem_wal/write/wal.rs | 30 +- .../lance/src/dataset/mem_wal/write/writer.rs | 199 ++++++------- 6 files changed, 191 insertions(+), 390 deletions(-) delete mode 100644 rust/lance/src/dataset/mem_wal/write/immutable.rs diff --git a/rust/lance/src/dataset/mem_wal/write.rs b/rust/lance/src/dataset/mem_wal/write.rs index b456e694e7e..5e8cc69f2f5 100644 --- a/rust/lance/src/dataset/mem_wal/write.rs +++ b/rust/lance/src/dataset/mem_wal/write.rs @@ -13,7 +13,6 @@ mod batch_store; mod batch_write; mod flush; -mod immutable; mod indexes; mod memtable; #[cfg(test)] @@ -30,7 +29,6 @@ pub use batch_write::{ WriteBatchReceiver, WriteBatchResult, WriteBatchSender, WriterStateOps, WRITE_BATCH_TASK_NAME, }; pub use flush::MemTableFlusher; -pub use immutable::{ImmutableMemTable, ImmutableMemTableQueue}; pub use indexes::{ BTreeIndexConfig, BTreeMemIndex, CoverageResult, FtsIndexConfig, IndexCoverageInfo, IndexRegistry, IndexUpdateHandler, IndexUpdateMsg, IvfPqIndexConfig, MemIndexConfig, diff --git a/rust/lance/src/dataset/mem_wal/write/batch_store.rs b/rust/lance/src/dataset/mem_wal/write/batch_store.rs index 749768ca47f..0e84d86a773 100644 --- a/rust/lance/src/dataset/mem_wal/write/batch_store.rs +++ b/rust/lance/src/dataset/mem_wal/write/batch_store.rs @@ -124,6 +124,10 @@ pub struct LockFreeBatchStore { /// Estimated size in bytes (for flush threshold). estimated_bytes: AtomicUsize, + + /// WAL flush watermark: batches [0, wal_flushed_batch_id) have been flushed to WAL. + /// This is per-memtable tracking, not global. + wal_flushed_batch_id: AtomicUsize, } // SAFETY: Safe to share across threads because: @@ -161,6 +165,7 @@ impl LockFreeBatchStore { max_seq: AtomicU64::new(0), total_rows: AtomicUsize::new(0), estimated_bytes: AtomicUsize::new(0), + wal_flushed_batch_id: AtomicUsize::new(0), } } @@ -293,6 +298,53 @@ impl LockFreeBatchStore { self.estimated_bytes.load(Ordering::Relaxed) } + // ========================================================================= + // WAL Flush Tracking API + // ========================================================================= + + /// Get the WAL flush watermark (batches [0, watermark) have been WAL-flushed). + #[inline] + pub fn wal_flushed_batch_id(&self) -> usize { + self.wal_flushed_batch_id.load(Ordering::Acquire) + } + + /// Update the WAL flush watermark after successful WAL flush. + /// + /// # Arguments + /// + /// * `batch_id` - The new watermark (exclusive upper bound) + #[inline] + pub fn set_wal_flushed_batch_id(&self, batch_id: usize) { + self.wal_flushed_batch_id.store(batch_id, Ordering::Release); + } + + /// Get the number of batches pending WAL flush. + #[inline] + pub fn pending_wal_flush_count(&self) -> usize { + let committed = self.committed_len.load(Ordering::Acquire); + let flushed = self.wal_flushed_batch_id.load(Ordering::Acquire); + committed.saturating_sub(flushed) + } + + /// Check if all committed batches have been WAL-flushed. + #[inline] + pub fn is_wal_flush_complete(&self) -> bool { + self.pending_wal_flush_count() == 0 + } + + /// Get the range of batch IDs pending WAL flush: [start, end). + /// Returns None if nothing pending. + #[inline] + pub fn pending_wal_flush_range(&self) -> Option<(usize, usize)> { + let committed = self.committed_len.load(Ordering::Acquire); + let flushed = self.wal_flushed_batch_id.load(Ordering::Acquire); + if committed > flushed { + Some((flushed, committed)) + } else { + None + } + } + /// Get a reference to a batch by index. /// /// Returns `None` if index >= committed length. diff --git a/rust/lance/src/dataset/mem_wal/write/immutable.rs b/rust/lance/src/dataset/mem_wal/write/immutable.rs deleted file mode 100644 index 2330f08d671..00000000000 --- a/rust/lance/src/dataset/mem_wal/write/immutable.rs +++ /dev/null @@ -1,268 +0,0 @@ -// SPDX-License-Identifier: Apache-2.0 -// SPDX-FileCopyrightText: Copyright The Lance Authors - -//! Immutable MemTable for the freeze-and-queue pattern. - -use std::sync::Arc; - -use super::memtable::MemTable; -use super::watchable_cell::WatchableOnceCell; -use super::DurabilityResult; - -/// An immutable (frozen) MemTable waiting to be flushed to storage. -/// -/// Once a MemTable is frozen: -/// - No new writes can be added -/// - Reads continue to work (including index queries) -/// - Background flusher will write contents to storage -/// - `flushed` cell is written when flush completes -pub struct ImmutableMemTable { - /// The frozen MemTable. - memtable: MemTable, - /// The last flushed WAL ID when this memtable was frozen. - /// Used to determine WAL replay starting point during recovery. - last_wal_id: u64, - /// The maximum sequence number in this memtable. - /// Used for MVCC visibility filtering. - max_seq: u64, - /// Durability notification cell. - /// Written when the memtable is successfully flushed to storage. - flushed: WatchableOnceCell, -} - -impl ImmutableMemTable { - /// Create a new immutable memtable from a frozen MemTable. - /// - /// # Arguments - /// - /// * `memtable` - The frozen MemTable - /// * `last_wal_id` - The last WAL ID flushed before freezing - /// * `max_seq` - The maximum sequence number in this memtable - pub fn new(memtable: MemTable, last_wal_id: u64, max_seq: u64) -> Self { - Self { - memtable, - last_wal_id, - max_seq, - flushed: WatchableOnceCell::new(), - } - } - - /// Get the underlying MemTable. - pub fn memtable(&self) -> &MemTable { - &self.memtable - } - - /// Get the last WAL ID when this memtable was frozen. - pub fn last_wal_id(&self) -> u64 { - self.last_wal_id - } - - /// Get the maximum sequence number in this memtable. - pub fn max_seq(&self) -> u64 { - self.max_seq - } - - /// Get the generation of this memtable. - pub fn generation(&self) -> u64 { - self.memtable.generation() - } - - /// Get estimated size in bytes. - pub fn estimated_size(&self) -> usize { - self.memtable.estimated_size() - } - - /// Get row count. - pub fn row_count(&self) -> usize { - self.memtable.row_count() - } - - /// Wait for this memtable to be flushed to storage. - /// - /// Returns when the flush completes, either successfully or with an error. - pub async fn await_flush(&self) -> DurabilityResult { - self.flushed.reader().await_value().await - } - - /// Get a watcher to await flush completion. - pub fn flush_watcher(&self) -> super::DurabilityWatcher { - self.flushed.reader() - } - - /// Notify that this memtable has been flushed to storage. - /// - /// Called by the background flusher when flush completes. - pub fn notify_flushed(&self, result: DurabilityResult) { - self.flushed.write(result); - } -} - -impl std::fmt::Debug for ImmutableMemTable { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - f.debug_struct("ImmutableMemTable") - .field("generation", &self.generation()) - .field("last_wal_id", &self.last_wal_id) - .field("max_seq", &self.max_seq) - .field("row_count", &self.row_count()) - .field("estimated_size", &self.estimated_size()) - .finish() - } -} - -/// Queue of immutable memtables waiting to be flushed. -/// -/// This queue maintains ordering: oldest memtables are at the front -/// and should be flushed first. -#[derive(Default)] -pub struct ImmutableMemTableQueue { - queue: Vec>, -} - -impl ImmutableMemTableQueue { - /// Create an empty queue. - pub fn new() -> Self { - Self { queue: Vec::new() } - } - - /// Add a new immutable memtable to the back of the queue. - pub fn push(&mut self, imm: Arc) { - self.queue.push(imm); - } - - /// Get the oldest immutable memtable (front of queue) without removing it. - pub fn front(&self) -> Option<&Arc> { - self.queue.first() - } - - /// Remove and return the oldest immutable memtable. - pub fn pop_front(&mut self) -> Option> { - if self.queue.is_empty() { - None - } else { - Some(self.queue.remove(0)) - } - } - - /// Get the number of immutable memtables in the queue. - pub fn len(&self) -> usize { - self.queue.len() - } - - /// Check if the queue is empty. - pub fn is_empty(&self) -> bool { - self.queue.is_empty() - } - - /// Get total estimated size of all immutable memtables. - pub fn total_bytes(&self) -> usize { - self.queue.iter().map(|imm| imm.estimated_size()).sum() - } - - /// Get an iterator over the queue (oldest to newest). - pub fn iter(&self) -> impl Iterator> { - self.queue.iter() - } - - /// Get the oldest immutable memtable's flush watcher (for backpressure). - pub fn oldest_watcher(&self) -> Option { - self.front().map(|imm| imm.flush_watcher()) - } -} - -#[cfg(test)] -mod tests { - use super::*; - use arrow_schema::{DataType, Field, Schema as ArrowSchema}; - - fn create_test_memtable(generation: u64) -> MemTable { - let schema = Arc::new(ArrowSchema::new(vec![Field::new( - "id", - DataType::Int32, - false, - )])); - MemTable::new(schema, generation, vec![]).unwrap() - } - - #[tokio::test] - async fn test_immutable_memtable_basic() { - let memtable = create_test_memtable(1); - let imm = ImmutableMemTable::new(memtable, 5, 100); - - assert_eq!(imm.generation(), 1); - assert_eq!(imm.last_wal_id(), 5); - assert_eq!(imm.max_seq(), 100); - assert_eq!(imm.row_count(), 0); - } - - #[tokio::test] - async fn test_immutable_memtable_flush_notification() { - let memtable = create_test_memtable(1); - let imm = Arc::new(ImmutableMemTable::new(memtable, 5, 100)); - - // Spawn a task that waits for flush - let imm_clone = imm.clone(); - let handle = tokio::spawn(async move { imm_clone.await_flush().await }); - - // Brief delay to ensure task is waiting - tokio::time::sleep(std::time::Duration::from_millis(10)).await; - - // Notify flush complete - imm.notify_flushed(DurabilityResult::ok()); - - // Task should complete with success - let result = handle.await.unwrap(); - assert!(result.is_ok()); - } - - #[tokio::test] - async fn test_immutable_queue() { - let mut queue = ImmutableMemTableQueue::new(); - assert!(queue.is_empty()); - assert_eq!(queue.len(), 0); - - // Add some immutable memtables - for i in 1..=3 { - let memtable = create_test_memtable(i); - let imm = Arc::new(ImmutableMemTable::new(memtable, i * 10, i * 100)); - queue.push(imm); - } - - assert_eq!(queue.len(), 3); - assert!(!queue.is_empty()); - - // Front should be the oldest (generation 1) - assert_eq!(queue.front().unwrap().generation(), 1); - - // Pop front should remove oldest - let popped = queue.pop_front().unwrap(); - assert_eq!(popped.generation(), 1); - assert_eq!(queue.len(), 2); - - // Next front should be generation 2 - assert_eq!(queue.front().unwrap().generation(), 2); - } - - #[tokio::test] - async fn test_immutable_queue_ordering() { - let mut queue = ImmutableMemTableQueue::new(); - - // Add in order - for i in 1..=5 { - let memtable = create_test_memtable(i); - let imm = Arc::new(ImmutableMemTable::new(memtable, i, i)); - queue.push(imm); - } - - // Verify iteration order (oldest to newest) - let generations: Vec = queue.iter().map(|imm| imm.generation()).collect(); - assert_eq!(generations, vec![1, 2, 3, 4, 5]); - - // Pop all and verify FIFO order - for expected_gen in 1..=5 { - let popped = queue.pop_front().unwrap(); - assert_eq!(popped.generation(), expected_gen); - } - - assert!(queue.is_empty()); - } -} diff --git a/rust/lance/src/dataset/mem_wal/write/memtable.rs b/rust/lance/src/dataset/mem_wal/write/memtable.rs index 010c68788ef..041bd622079 100644 --- a/rust/lance/src/dataset/mem_wal/write/memtable.rs +++ b/rust/lance/src/dataset/mem_wal/write/memtable.rs @@ -88,6 +88,11 @@ pub struct MemTable { /// Index registry (optional, for indexed writes). /// Wrapped in Arc for sharing with async index handler. indexes: Option>, + + /// WAL ID when this memtable was frozen. + /// Used for WAL replay starting point during recovery. + /// None means the memtable is still active (not frozen). + frozen_at_wal_id: Option, } /// Cached Dataset with timestamp for eventual consistency. @@ -195,6 +200,7 @@ impl MemTable { pk_bloom_filter, pk_field_ids, indexes: None, + frozen_at_wal_id: None, }) } @@ -208,6 +214,30 @@ impl MemTable { self.indexes = Some(indexes); } + /// Mark this memtable as frozen with the given WAL ID. + /// + /// Once frozen, no new writes should be added. The memtable will be + /// added to the immutable queue for flushing to Lance storage. + /// + /// # Arguments + /// + /// * `wal_id` - The last WAL ID when this memtable was frozen + pub fn freeze(&mut self, wal_id: u64) { + self.frozen_at_wal_id = Some(wal_id); + } + + /// Get the WAL ID when this memtable was frozen. + /// + /// Returns `None` if the memtable is still active (not frozen). + pub fn frozen_at_wal_id(&self) -> Option { + self.frozen_at_wal_id + } + + /// Check if this memtable has been frozen. + pub fn is_frozen(&self) -> bool { + self.frozen_at_wal_id.is_some() + } + /// Insert a record batch into the MemTable. /// /// O(1) append. diff --git a/rust/lance/src/dataset/mem_wal/write/wal.rs b/rust/lance/src/dataset/mem_wal/write/wal.rs index 45b436f821a..574fee1fc75 100644 --- a/rust/lance/src/dataset/mem_wal/write/wal.rs +++ b/rust/lance/src/dataset/mem_wal/write/wal.rs @@ -440,8 +440,8 @@ impl WalBuffer { batch_store: &LockFreeBatchStore, indexes: Option>, ) -> Result { - // Get pending batch range - let flushed_id = self.last_flushed_id.load(Ordering::Acquire); + // Get pending batch range from per-memtable watermark + let flushed_id = batch_store.wal_flushed_batch_id(); let current_count = batch_store.len(); if current_count <= flushed_id { @@ -595,10 +595,10 @@ impl WalBuffer { let wal_io_duration = wal_result?; let index_update_duration = index_result?; - // Update watermarks - self.last_flushed_id.store(current_count, Ordering::Release); + // Update per-memtable watermark + batch_store.set_wal_flushed_batch_id(current_count); - // Notify durability waiters + // Notify durability waiters (global channel) let _ = self.durable_watermark_tx.send(current_count); let entry = WalEntry { @@ -642,8 +642,8 @@ impl WalBuffer { end_batch_id: usize, indexes: Option>, ) -> Result { - // Get current flush position - let flushed_id = self.last_flushed_id.load(Ordering::Acquire); + // Get current flush position from per-memtable watermark + let flushed_id = batch_store.wal_flushed_batch_id(); // If we've already flushed past this end, nothing to do if flushed_id >= end_batch_id { @@ -807,10 +807,10 @@ impl WalBuffer { batches.len() ); - // Update watermarks - self.last_flushed_id.store(end_batch_id, Ordering::Release); + // Update per-memtable watermark + batch_store.set_wal_flushed_batch_id(end_batch_id); - // Notify durability waiters + // Notify durability waiters (global channel) let _ = self.durable_watermark_tx.send(end_batch_id); let entry = WalEntry { @@ -857,8 +857,8 @@ impl WalBuffer { limit: usize, indexes: Option>, ) -> Result { - // Get pending batch range - let flushed_id = self.last_flushed_id.load(Ordering::Acquire); + // Get pending batch range from per-memtable watermark + let flushed_id = batch_store.wal_flushed_batch_id(); let current_count = batch_store.len(); if current_count <= flushed_id { @@ -1030,10 +1030,10 @@ impl WalBuffer { rows_to_index ); - // Update watermarks - only advance to the batches we actually flushed - self.last_flushed_id.store(flush_end, Ordering::Release); + // Update per-memtable watermark - only advance to the batches we actually flushed + batch_store.set_wal_flushed_batch_id(flush_end); - // Notify durability waiters + // Notify durability waiters (global channel) let _ = self.durable_watermark_tx.send(flush_end); let entry = WalEntry { diff --git a/rust/lance/src/dataset/mem_wal/write/writer.rs b/rust/lance/src/dataset/mem_wal/write/writer.rs index 43782e1a2e9..fe12d19368c 100644 --- a/rust/lance/src/dataset/mem_wal/write/writer.rs +++ b/rust/lance/src/dataset/mem_wal/write/writer.rs @@ -12,6 +12,7 @@ //! - Updates indexes synchronously (if configured) //! - Manages background tasks for WAL and MemTable flush +use std::collections::VecDeque; use std::sync::Arc; use std::time::Duration; @@ -42,7 +43,6 @@ use super::batch_write::{ WriterStateOps, WRITE_BATCH_TASK_NAME, }; use super::flush::{FlushMessage, FlushResult, MemTableFlusher}; -use super::immutable::ImmutableMemTableQueue; use super::indexes::{IndexRegistry, MemIndexConfig}; use super::memtable::MemTable; use super::stats::{new_shared_stats, SharedWriteStats, WriteStatsSnapshot}; @@ -68,8 +68,9 @@ pub struct WriteResult { struct WriterState { /// Current active (mutable) memtable. memtable: MemTable, - /// Queue of immutable memtables waiting to be flushed. - immutable_memtables: ImmutableMemTableQueue, + /// Queue of frozen memtables waiting to be flushed. + /// These are immutable (frozen) and will be flushed to Lance storage. + frozen_memtables: VecDeque>, /// Last WAL ID that was flushed. #[allow(dead_code)] // Will be used for WAL freeze pattern in Phase 3.1 last_flushed_wal_id: u64, @@ -365,7 +366,12 @@ impl BackpressureProvider for SharedWriterState { self.state .try_read() .ok() - .map(|s| s.immutable_memtables.total_bytes()) + .map(|s| { + s.frozen_memtables + .iter() + .map(|m| m.estimated_size()) + .sum() + }) .unwrap_or(0) } @@ -373,7 +379,7 @@ impl BackpressureProvider for SharedWriterState { self.state .try_read() .ok() - .map(|s| s.immutable_memtables.len()) + .map(|s| s.frozen_memtables.len()) .unwrap_or(0) } @@ -429,10 +435,9 @@ impl BackpressureProvider for SharedWriterState { } fn oldest_memtable_watcher(&self) -> Option { - self.state - .try_read() - .ok() - .and_then(|s| s.immutable_memtables.oldest_watcher()) + // Durability is guaranteed by WAL, not by memtable flush. + // Memtable flush is for query performance and WAL truncation. + None } } @@ -553,7 +558,7 @@ impl RegionWriter { let state = Arc::new(RwLock::new(WriterState { memtable, - immutable_memtables: ImmutableMemTableQueue::new(), + frozen_memtables: VecDeque::new(), last_flushed_wal_id: manifest.wal_id_last_seen, })); @@ -871,22 +876,17 @@ impl RegionWriter { } // Swap memtables and freeze the old one - let old_memtable = std::mem::replace(&mut state.memtable, new_memtable); + let mut old_memtable = std::mem::replace(&mut state.memtable, new_memtable); - // Get max sequence from the old memtable - let max_seq = old_memtable.row_count() as u64; + // Mark the old memtable as frozen with the WAL ID + old_memtable.freeze(wal_id); - // Wrap in ImmutableMemTable and add to queue - let immutable = Arc::new(super::immutable::ImmutableMemTable::new( - old_memtable, - wal_id, - max_seq, - )); - state.immutable_memtables.push(immutable); + // Add to the frozen queue + state.frozen_memtables.push_back(Arc::new(old_memtable)); state.last_flushed_wal_id = wal_id; - // Reset WAL watermarks for new memtable (batch IDs start from 0) - self.wal_buffer.reset_for_new_memtable(); + // Note: No need to reset WAL watermarks - each memtable tracks its own + // watermark in its batch_store. The new memtable starts with watermark=0. wal_id }; @@ -898,25 +898,25 @@ impl RegionWriter { ); // Flush from queue - let immutable = { + let frozen = { let mut state = self.state.write().await; - state.immutable_memtables.pop_front() + state.frozen_memtables.pop_front() }; - let Some(immutable) = immutable else { + let Some(frozen) = frozen else { return Err(Error::Internal { - message: "No immutable memtable to flush after freeze".to_string(), + message: "No frozen memtable to flush after freeze".to_string(), location: location!(), }); }; let result = self .flusher - .flush(immutable.memtable(), &self.epoch_guard) + .flush(&frozen, &self.epoch_guard) .await?; - // Notify durability watchers - immutable.notify_flushed(super::batch_write::DurabilityResult::ok()); + // Note: Durability is guaranteed by WAL, not by this flush. + // This flush is for query performance and WAL truncation. info!( "Flushed memtable generation {}, created new generation {} ({} rows, {} fragments in {:?})", @@ -1439,64 +1439,33 @@ impl MessageHandler for MemTableFlushHandler { impl MemTableFlushHandler { /// Freeze the current memtable and add it to the immutable queue. /// - /// This method uses a lock-free approach for S3 I/O: - /// 1. Get batch_store reference (brief read lock) - /// 2. Write to S3 WITHOUT holding lock (watermark-based) - /// 3. Acquire write lock to update state and swap memtables + /// This method is designed to be instant (sub-millisecond): + /// 1. Acquire write lock and swap memtables + /// 2. Each memtable tracks its own WAL flush watermark in batch_store + /// 3. WAL flush + index updates happen via WalFlushHandler (for old memtable) + /// 4. Lance flush happens in flush_oldest_immutable after WAL is complete /// - /// If state update fails after S3 write, the writer should crash and - /// WAL replay will recover the data on restart. + /// This allows writes to continue immediately on the new memtable + /// while background processing handles WAL and Lance flushes. async fn freeze_memtable(&mut self) -> Result { let freeze_start = std::time::Instant::now(); eprintln!("[{}][FREEZE] Starting freeze_memtable", log_ts()); - // Get batch_store reference for watermark-based flush - let batch_store = { - let state = self.state.read().await; - let remaining = state.memtable.remaining_batch_capacity(); - let batch_count = state.memtable.batch_count(); - let last_flushed = self.wal_buffer.last_flushed_id(); - eprintln!( - "[{}][FREEZE] WAL flush: pending_batches={}, remaining_capacity={}", - log_ts(), - batch_count.saturating_sub(last_flushed), - remaining - ); - state.memtable.batch_store() - }; // Read lock released here - - // Flush all pending batches using watermark-based approach - let s3_start = std::time::Instant::now(); - let flush_result = self - .wal_buffer - .flush_with_index_update(&batch_store, self.indexes.clone()) - .await?; - eprintln!( - "[{}][FREEZE] WAL S3 flush took {}ms", - log_ts(), - s3_start.elapsed().as_millis() - ); + // Acquire write lock for the memtable swap + let mut state = self.state.write().await; - // Update state with WAL mapping - if let Some(ref entry) = flush_result.entry { - let mut state = self.state.write().await; - let batch_ids: Vec = entry.batch_positions.iter().map(|(id, _)| *id).collect(); - let positions: Vec = entry.batch_positions.iter().map(|(_, pos)| *pos).collect(); - state - .memtable - .mark_wal_flushed(&batch_ids, entry.id, &positions); - state.last_flushed_wal_id = entry.id; - } + // Get pending WAL flush info from the memtable's own batch_store + let pending_wal_range = state.memtable.batch_store().pending_wal_flush_range(); - // Now acquire write lock for the memtable swap - let mut state = self.state.write().await; let last_wal_id = state.last_flushed_wal_id; let old_batch_count = state.memtable.batch_capacity() - state.memtable.remaining_batch_capacity(); + eprintln!( - "[{}][FREEZE] Swapping memtable: old had {} batches", + "[{}][FREEZE] Swapping memtable: old had {} batches, pending_wal_range={:?}", log_ts(), - old_batch_count + old_batch_count, + pending_wal_range ); // Create a new empty memtable with the next generation @@ -1522,38 +1491,33 @@ impl MemTableFlushHandler { None }; - // Update our indexes reference for future WAL flushes + // Update our indexes reference for future WAL flushes on new memtable self.indexes = new_indexes; // Swap memtables and freeze the old one - let old_memtable = std::mem::replace(&mut state.memtable, new_memtable); + let mut old_memtable = std::mem::replace(&mut state.memtable, new_memtable); - // Get max sequence from the old memtable (for MVCC visibility) - let max_seq = old_memtable.row_count() as u64; + // Mark the old memtable as frozen with the WAL ID + old_memtable.freeze(last_wal_id); - // Wrap in ImmutableMemTable and add to queue - let immutable = Arc::new(super::immutable::ImmutableMemTable::new( - old_memtable, - last_wal_id, - max_seq, - )); - state.immutable_memtables.push(immutable); + // Add to the frozen queue as Arc + state.frozen_memtables.push_back(Arc::new(old_memtable)); state.last_flushed_wal_id = last_wal_id; - // Reset WAL watermarks for new memtable (batch IDs start from 0) - self.wal_buffer.reset_for_new_memtable(); + // Note: No need to reset WAL watermarks - each memtable tracks its own + // watermark in its batch_store. The new memtable starts with watermark=0. debug!( "Frozen memtable generation {}, queue size = {}", next_generation - 1, - state.immutable_memtables.len() + state.frozen_memtables.len() ); eprintln!( - "[{}][FREEZE] Complete: gen={} imm_queue={} new_capacity={} took={}ms", + "[{}][FREEZE] Complete: gen={} frozen_queue={} new_capacity={} took={}ms", log_ts(), next_generation - 1, - state.immutable_memtables.len(), + state.frozen_memtables.len(), state.memtable.remaining_batch_capacity(), freeze_start.elapsed().as_millis() ); @@ -1561,7 +1525,10 @@ impl MemTableFlushHandler { Ok(next_generation) } - /// Flush the oldest immutable memtable from the queue. + /// Flush the oldest frozen memtable from the queue. + /// + /// This method first ensures all WAL batches are flushed for the frozen + /// memtable, then flushes to Lance storage. async fn flush_oldest_immutable(&mut self) -> Result> { let start = Instant::now(); eprintln!( @@ -1569,29 +1536,51 @@ impl MemTableFlushHandler { log_ts() ); - // Pop the oldest immutable memtable from the queue - let immutable = { + // Pop the oldest frozen memtable from the queue + let frozen = { let mut state = self.state.write().await; - state.immutable_memtables.pop_front() + state.frozen_memtables.pop_front() }; - let Some(immutable) = immutable else { - eprintln!("[{}][LANCE_FLUSH] No immutable memtable in queue", log_ts()); + let Some(frozen) = frozen else { + eprintln!("[{}][LANCE_FLUSH] No frozen memtable in queue", log_ts()); return Ok(None); }; + let batch_store = frozen.batch_store(); + let pending_wal = batch_store.pending_wal_flush_range(); + eprintln!( - "[{}][LANCE_FLUSH] Flushing memtable with {} rows, {} batches", + "[{}][LANCE_FLUSH] Frozen memtable: {} rows, {} batches, pending_wal={:?}", log_ts(), - immutable.memtable().row_count(), - immutable.memtable().batch_count() + frozen.row_count(), + frozen.batch_count(), + pending_wal ); - // Flush the memtable + // Step 1: Flush any remaining WAL batches for this frozen memtable + if pending_wal.is_some() { + let wal_start = std::time::Instant::now(); + let indexes = frozen.indexes_arc(); + let wal_result = self + .wal_buffer + .flush_with_index_update(&batch_store, indexes) + .await?; + eprintln!( + "[{}][LANCE_FLUSH] WAL flush took {}ms (S3={}ms, index={}ms, {} rows)", + log_ts(), + wal_start.elapsed().as_millis(), + wal_result.wal_io_duration.as_millis(), + wal_result.index_update_duration.as_millis(), + wal_result.rows_indexed + ); + } + + // Step 2: Flush the memtable to Lance storage let flusher_start = std::time::Instant::now(); let result = self .flusher - .flush(immutable.memtable(), &self.epoch_guard) + .flush(&frozen, &self.epoch_guard) .await?; eprintln!( "[{}][LANCE_FLUSH] flusher.flush() took {}ms", @@ -1606,11 +1595,11 @@ impl MemTableFlushHandler { result.fragments_created, ); - // Notify durability watchers - immutable.notify_flushed(super::batch_write::DurabilityResult::ok()); + // Note: Durability is guaranteed by WAL, not by this flush. + // This flush is for query performance and WAL truncation. info!( - "Flushed immutable memtable generation {} ({} rows, {} fragments in {:?})", + "Flushed frozen memtable generation {} ({} rows, {} fragments in {:?})", result.generation.generation, result.rows_flushed, result.fragments_created, From 051619cd36682f49c95ec5a3f0b481ba8d0a6f56 Mon Sep 17 00:00:00 2001 From: Heng Ge Date: Thu, 22 Jan 2026 17:44:31 -0800 Subject: [PATCH 17/20] better stats --- rust/lance/src/dataset/mem_wal/write.rs | 5 +- .../src/dataset/mem_wal/write/indexes.rs | 23 ++- .../src/dataset/mem_wal/write/memtable.rs | 40 +++++ rust/lance/src/dataset/mem_wal/write/wal.rs | 137 ++++++++++++--- .../lance/src/dataset/mem_wal/write/writer.rs | 163 ++++++++++++++---- 5 files changed, 305 insertions(+), 63 deletions(-) diff --git a/rust/lance/src/dataset/mem_wal/write.rs b/rust/lance/src/dataset/mem_wal/write.rs index 5e8cc69f2f5..840405f3d75 100644 --- a/rust/lance/src/dataset/mem_wal/write.rs +++ b/rust/lance/src/dataset/mem_wal/write.rs @@ -248,7 +248,10 @@ mod region_writer_tests { ) .await .expect("Failed to create BTree index"); - eprintln!("[TEST] BTree index creation took {:?}", btree_start.elapsed()); + eprintln!( + "[TEST] BTree index creation took {:?}", + btree_start.elapsed() + ); // Create FTS index on text column eprintln!("[TEST] Creating FTS index on text column..."); diff --git a/rust/lance/src/dataset/mem_wal/write/indexes.rs b/rust/lance/src/dataset/mem_wal/write/indexes.rs index 06fc83d6527..abd2e3d1b17 100644 --- a/rust/lance/src/dataset/mem_wal/write/indexes.rs +++ b/rust/lance/src/dataset/mem_wal/write/indexes.rs @@ -1464,11 +1464,17 @@ impl IndexRegistry { /// This maximizes parallelism when multiple indexes are maintained. /// /// This is used during WAL flush to parallelize index updates with WAL I/O. - pub fn insert_batches_parallel(&self, batches: &[BufferedBatch]) -> Result<()> { + /// Insert batches into all indexes in parallel. + /// + /// Returns a map of index names to their update durations for performance tracking. + pub fn insert_batches_parallel( + &self, + batches: &[BufferedBatch], + ) -> Result> { use std::time::Instant; if batches.is_empty() { - return Ok(()); + return Ok(std::collections::HashMap::new()); } let total_rows: usize = batches.iter().map(|b| b.batch.num_rows()).sum(); @@ -1574,7 +1580,18 @@ impl IndexRegistry { return Err(e); } - Ok(()) + // Convert timings to HashMap + let duration_map: std::collections::HashMap = timings + .into_iter() + .map(|(name, _idx_type, ms)| { + ( + name.to_string(), + std::time::Duration::from_millis(ms as u64), + ) + }) + .collect(); + + Ok(duration_map) }) } diff --git a/rust/lance/src/dataset/mem_wal/write/memtable.rs b/rust/lance/src/dataset/mem_wal/write/memtable.rs index 041bd622079..67c68b28cb2 100644 --- a/rust/lance/src/dataset/mem_wal/write/memtable.rs +++ b/rust/lance/src/dataset/mem_wal/write/memtable.rs @@ -19,6 +19,8 @@ use uuid::Uuid; use super::batch_store::LockFreeBatchStore; use super::indexes::IndexRegistry; +use super::wal::WalFlushResult; +use super::watchable_cell::WatchableOnceCellReader; use crate::Dataset; /// Default batch store capacity when not specified. @@ -93,6 +95,15 @@ pub struct MemTable { /// Used for WAL replay starting point during recovery. /// None means the memtable is still active (not frozen). frozen_at_wal_id: Option, + + /// Reader for WAL flush completion notification. + /// Set when the memtable is frozen and a WAL flush request is sent. + /// The reader can be awaited to know when WAL flush is complete. + /// Uses Mutex for interior mutability since the MemTable is wrapped in Arc when frozen. + /// Uses Result since lance_core::Error doesn't implement Clone. + wal_flush_completion: std::sync::Mutex< + Option>>, + >, } /// Cached Dataset with timestamp for eventual consistency. @@ -201,6 +212,7 @@ impl MemTable { pk_field_ids, indexes: None, frozen_at_wal_id: None, + wal_flush_completion: std::sync::Mutex::new(None), }) } @@ -226,6 +238,34 @@ impl MemTable { self.frozen_at_wal_id = Some(wal_id); } + /// Set the WAL flush completion reader. + /// + /// Called when a WAL flush request is sent at freeze time. + /// The reader can be awaited by flush_oldest_immutable to know when + /// the WAL flush is complete. + pub fn set_wal_flush_completion( + &self, + reader: WatchableOnceCellReader>, + ) { + *self.wal_flush_completion.lock().unwrap() = Some(reader); + } + + /// Take the WAL flush completion reader. + /// + /// Returns the reader if set, consuming it. Used by flush_oldest_immutable + /// to await WAL flush completion before proceeding with Lance flush. + /// Thread-safe via interior mutability. + pub fn take_wal_flush_completion( + &self, + ) -> Option>> { + self.wal_flush_completion.lock().unwrap().take() + } + + /// Check if this memtable has a pending WAL flush completion to await. + pub fn has_pending_wal_flush(&self) -> bool { + self.wal_flush_completion.lock().unwrap().is_some() + } + /// Get the WAL ID when this memtable was frozen. /// /// Returns `None` if the memtable is still active (not frozen). diff --git a/rust/lance/src/dataset/mem_wal/write/wal.rs b/rust/lance/src/dataset/mem_wal/write/wal.rs index 574fee1fc75..f6151522c1c 100644 --- a/rust/lance/src/dataset/mem_wal/write/wal.rs +++ b/rust/lance/src/dataset/mem_wal/write/wal.rs @@ -46,6 +46,8 @@ use lance_io::object_store::ObjectStore; use object_store::path::Path; use snafu::location; use tokio::sync::{mpsc, oneshot, watch}; + +use super::watchable_cell::WatchableOnceCell; use tracing::debug; use uuid::Uuid; @@ -111,7 +113,7 @@ impl std::fmt::Debug for BatchDurableWatcher { } /// A single WAL entry representing a batch of batches. -#[derive(Debug)] +#[derive(Debug, Clone)] pub struct WalEntry { /// WAL entry ID (sequential, starting from 1). pub id: u64, @@ -122,14 +124,17 @@ pub struct WalEntry { } /// Result of a parallel WAL flush with index update. -#[derive(Debug)] +#[derive(Debug, Clone)] pub struct WalFlushResult { /// WAL entry that was written (if any). pub entry: Option, /// Duration of WAL I/O operation. pub wal_io_duration: std::time::Duration, - /// Duration of index update operation. + /// Overall wall-clock duration of the index update operation. + /// This includes any overhead from thread scheduling and context switching. pub index_update_duration: std::time::Duration, + /// Per-index update durations. Key is index name, value is duration. + pub index_update_duration_breakdown: std::collections::HashMap, /// Number of rows indexed. pub rows_indexed: usize, /// Size of WAL data written in bytes. @@ -137,7 +142,6 @@ pub struct WalFlushResult { } /// WAL flush message sent to background flush handler. -#[derive(Debug)] pub enum WalFlushMsg { /// Trigger an immediate flush up to a specific batch ID. /// The end_batch_id is captured at trigger time to ensure each flush @@ -149,10 +153,38 @@ pub enum WalFlushMsg { /// Optional channel to send result. done: Option>>, }, + /// Flush a frozen memtable's remaining WAL batches. + /// Sent at freeze time to ensure ordering before any new memtable flushes. + FlushFrozenMemTable { + /// The frozen memtable's batch store. + batch_store: Arc, + /// The frozen memtable's indexes (for parallel index update). + indexes: Option>, + /// Cell to write completion result. + /// The reader is stored in the frozen MemTable for flush_oldest_immutable to await. + /// Uses Result since Error doesn't implement Clone. + done: WatchableOnceCell>, + }, /// Periodic tick to check for flush. Tick, } +impl std::fmt::Debug for WalFlushMsg { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + match self { + Self::TriggerWalFlush { end_batch_id, .. } => f + .debug_struct("TriggerWalFlush") + .field("end_batch_id", end_batch_id) + .finish(), + Self::FlushFrozenMemTable { batch_store, .. } => f + .debug_struct("FlushFrozenMemTable") + .field("pending_batches", &batch_store.pending_wal_flush_count()) + .finish(), + Self::Tick => write!(f, "Tick"), + } + } +} + /// Buffer for tracking batches that need to be flushed to WAL. /// /// Uses a watermark-based approach instead of a pending list: @@ -283,6 +315,34 @@ impl WalBuffer { Ok(()) } + /// Send a flush request for a frozen memtable. + /// + /// This message is sent at freeze time to ensure the WAL flush for this + /// memtable happens before any WAL flushes for the new memtable, preserving + /// strict write-time ordering of WAL entries. + /// + /// # Arguments + /// + /// * `batch_store` - The frozen memtable's batch store + /// * `indexes` - The frozen memtable's indexes (for parallel index update) + /// * `done` - Cell to write completion result (reader stored in frozen MemTable) + pub fn trigger_frozen_memtable_flush( + &self, + batch_store: Arc, + indexes: Option>, + done: WatchableOnceCell>, + ) -> Result<()> { + if let Some(tx) = &self.flush_tx { + tx.send(WalFlushMsg::FlushFrozenMemTable { + batch_store, + indexes, + done, + }) + .map_err(|_| Error::io("WAL flush channel closed", location!()))?; + } + Ok(()) + } + /// Flush pending batches to WAL using watermark-based tracking. /// /// This method: @@ -449,6 +509,7 @@ impl WalBuffer { entry: None, wal_io_duration: std::time::Duration::ZERO, index_update_duration: std::time::Duration::ZERO, + index_update_duration_breakdown: std::collections::HashMap::new(), rows_indexed: 0, wal_bytes: 0, }); @@ -495,6 +556,7 @@ impl WalBuffer { entry: None, wal_io_duration: std::time::Duration::ZERO, index_update_duration: std::time::Duration::ZERO, + index_update_duration_breakdown: std::collections::HashMap::new(), rows_indexed: 0, wal_bytes: 0, }); @@ -546,6 +608,7 @@ impl WalBuffer { let store = object_store.clone(); // Index update task (runs in parallel via tokio::join!) + // Returns (overall_duration, per_index_durations) let (wal_result, index_result) = if let Some(idx_registry) = indexes { // Run both in parallel let wal_future = async { @@ -562,7 +625,7 @@ impl WalBuffer { let index_future = async { let start = Instant::now(); - tokio::task::spawn_blocking(move || { + let per_index = tokio::task::spawn_blocking(move || { idx_registry.insert_batches_parallel(&index_batches) }) .await @@ -570,7 +633,8 @@ impl WalBuffer { message: format!("Index update task panicked: {}", e), location: location!(), })??; - Ok::<_, Error>(start.elapsed()) + // Return both overall duration and per-index durations + Ok::<_, Error>((start.elapsed(), per_index)) }; tokio::join!(wal_future, index_future) @@ -588,12 +652,15 @@ impl WalBuffer { Ok::<_, Error>(start.elapsed()) }; - (wal_future.await, Ok(std::time::Duration::ZERO)) + ( + wal_future.await, + Ok((std::time::Duration::ZERO, std::collections::HashMap::new())), + ) }; // Check for errors let wal_io_duration = wal_result?; - let index_update_duration = index_result?; + let (index_update_duration, index_update_duration_breakdown) = index_result?; // Update per-memtable watermark batch_store.set_wal_flushed_batch_id(current_count); @@ -608,14 +675,15 @@ impl WalBuffer { }; debug!( - "WAL entry {} written: wal_io={:?}, index={:?}, {} rows", - wal_id, wal_io_duration, index_update_duration, rows_to_index + "WAL entry {} written: wal_io={:?}, index={:?} ({:?}), {} rows", + wal_id, wal_io_duration, index_update_duration, index_update_duration_breakdown, rows_to_index ); Ok(WalFlushResult { entry: Some(entry), wal_io_duration, index_update_duration, + index_update_duration_breakdown, rows_indexed: rows_to_index, wal_bytes, }) @@ -651,6 +719,7 @@ impl WalBuffer { entry: None, wal_io_duration: std::time::Duration::ZERO, index_update_duration: std::time::Duration::ZERO, + index_update_duration_breakdown: std::collections::HashMap::new(), rows_indexed: 0, wal_bytes: 0, }); @@ -692,6 +761,7 @@ impl WalBuffer { entry: None, wal_io_duration: std::time::Duration::ZERO, index_update_duration: std::time::Duration::ZERO, + index_update_duration_breakdown: std::collections::HashMap::new(), rows_indexed: 0, wal_bytes: 0, }); @@ -752,6 +822,7 @@ impl WalBuffer { let wal_data = Bytes::from(buffer); let store = object_store.clone(); + // Returns (overall_duration, per_index_durations) let (wal_result, index_result) = if let Some(idx_registry) = indexes { let wal_future = async { let start = Instant::now(); @@ -767,7 +838,7 @@ impl WalBuffer { let index_future = async { let start = Instant::now(); - tokio::task::spawn_blocking(move || { + let per_index = tokio::task::spawn_blocking(move || { idx_registry.insert_batches_parallel(&index_batches) }) .await @@ -775,7 +846,7 @@ impl WalBuffer { message: format!("Index update task panicked: {}", e), location: location!(), })??; - Ok::<_, Error>(start.elapsed()) + Ok::<_, Error>((start.elapsed(), per_index)) }; tokio::join!(wal_future, index_future) @@ -792,18 +863,22 @@ impl WalBuffer { Ok::<_, Error>(start.elapsed()) }; - (wal_future.await, Ok(std::time::Duration::ZERO)) + ( + wal_future.await, + Ok((std::time::Duration::ZERO, std::collections::HashMap::new())), + ) }; let wal_io_duration = wal_result?; - let index_update_duration = index_result?; + let (index_update_duration, index_update_duration_breakdown) = index_result?; eprintln!( - "[{}] [WAL_FLUSH] WAL #{} complete: S3={}ms, index={}ms, {} batches", + "[{}] [WAL_FLUSH] WAL #{} complete: S3={}ms, index={}ms ({:?}), {} batches", log_ts(), wal_id, wal_io_duration.as_millis(), index_update_duration.as_millis(), + index_update_duration_breakdown, batches.len() ); @@ -823,6 +898,7 @@ impl WalBuffer { entry: Some(entry), wal_io_duration, index_update_duration, + index_update_duration_breakdown, rows_indexed: rows_to_index, wal_bytes, }) @@ -866,6 +942,7 @@ impl WalBuffer { entry: None, wal_io_duration: std::time::Duration::ZERO, index_update_duration: std::time::Duration::ZERO, + index_update_duration_breakdown: std::collections::HashMap::new(), rows_indexed: 0, wal_bytes: 0, }); @@ -910,6 +987,7 @@ impl WalBuffer { entry: None, wal_io_duration: std::time::Duration::ZERO, index_update_duration: std::time::Duration::ZERO, + index_update_duration_breakdown: std::collections::HashMap::new(), rows_indexed: 0, wal_bytes: 0, }); @@ -976,6 +1054,7 @@ impl WalBuffer { let store = object_store.clone(); // Index update task (runs in parallel via tokio::join!) + // Returns (overall_duration, per_index_durations) let (wal_result, index_result) = if let Some(idx_registry) = indexes { let wal_future = async { let start = Instant::now(); @@ -991,7 +1070,7 @@ impl WalBuffer { let index_future = async { let start = Instant::now(); - tokio::task::spawn_blocking(move || { + let per_index = tokio::task::spawn_blocking(move || { idx_registry.insert_batches_parallel(&index_batches) }) .await @@ -999,7 +1078,7 @@ impl WalBuffer { message: format!("Index update task panicked: {}", e), location: location!(), })??; - Ok::<_, Error>(start.elapsed()) + Ok::<_, Error>((start.elapsed(), per_index)) }; tokio::join!(wal_future, index_future) @@ -1016,17 +1095,21 @@ impl WalBuffer { Ok::<_, Error>(start.elapsed()) }; - (wal_future.await, Ok(std::time::Duration::ZERO)) + ( + wal_future.await, + Ok((std::time::Duration::ZERO, std::collections::HashMap::new())), + ) }; // Check for errors let wal_io_duration = wal_result?; - let index_update_duration = index_result?; + let (index_update_duration, index_update_duration_breakdown) = index_result?; eprintln!( - "[{}] [WAL_FLUSH] S3 put: {}ms, index update: {}ms, {} rows", + "[{}] [WAL_FLUSH] S3 put: {}ms, index update: {}ms ({:?}), {} rows", log_ts(), wal_io_duration.as_millis(), index_update_duration.as_millis(), + index_update_duration_breakdown, rows_to_index ); @@ -1043,14 +1126,15 @@ impl WalBuffer { }; debug!( - "WAL entry {} written: wal_io={:?}, index={:?}, {} rows", - wal_id, wal_io_duration, index_update_duration, rows_to_index + "WAL entry {} written: wal_io={:?}, index={:?} ({:?}), {} rows", + wal_id, wal_io_duration, index_update_duration, index_update_duration_breakdown, rows_to_index ); Ok(WalFlushResult { entry: Some(entry), wal_io_duration, index_update_duration, + index_update_duration_breakdown, rows_indexed: rows_to_index, wal_bytes, }) @@ -1282,19 +1366,22 @@ mod tests { let result1 = buffer.flush_limited(&batch_store, 2, None).await.unwrap(); let entry1 = result1.entry.unwrap(); assert_eq!(entry1.batch_positions.len(), 2); - assert_eq!(buffer.last_flushed_id(), 2); + // Check per-memtable watermark (not global) + assert_eq!(batch_store.wal_flushed_batch_id(), 2); // Flush next 2 let result2 = buffer.flush_limited(&batch_store, 2, None).await.unwrap(); let entry2 = result2.entry.unwrap(); assert_eq!(entry2.batch_positions.len(), 2); - assert_eq!(buffer.last_flushed_id(), 4); + // Check per-memtable watermark (not global) + assert_eq!(batch_store.wal_flushed_batch_id(), 4); // Flush remaining 1 let result3 = buffer.flush_limited(&batch_store, 2, None).await.unwrap(); let entry3 = result3.entry.unwrap(); assert_eq!(entry3.batch_positions.len(), 1); - assert_eq!(buffer.last_flushed_id(), 5); + // Check per-memtable watermark (not global) + assert_eq!(batch_store.wal_flushed_batch_id(), 5); // No more pending let result4 = buffer.flush_limited(&batch_store, 2, None).await.unwrap(); diff --git a/rust/lance/src/dataset/mem_wal/write/writer.rs b/rust/lance/src/dataset/mem_wal/write/writer.rs index fe12d19368c..b44b933b572 100644 --- a/rust/lance/src/dataset/mem_wal/write/writer.rs +++ b/rust/lance/src/dataset/mem_wal/write/writer.rs @@ -37,6 +37,7 @@ fn log_ts() -> String { chrono::Local::now().format("%H:%M:%S%.3f").to_string() } +use super::batch_store::LockFreeBatchStore; use super::batch_write::{ write_batch_channel, BackpressureController, BackpressureProvider, DurabilityResult, DurabilityWatcher, InsertBatchResult, WriteBatchHandler, WriteBatchMessage, WriteBatchSender, @@ -46,7 +47,7 @@ use super::flush::{FlushMessage, FlushResult, MemTableFlusher}; use super::indexes::{IndexRegistry, MemIndexConfig}; use super::memtable::MemTable; use super::stats::{new_shared_stats, SharedWriteStats, WriteStatsSnapshot}; -use super::wal::{WalBuffer, WalEntry, WalFlushMsg}; +use super::wal::{WalBuffer, WalEntry, WalFlushMsg, WalFlushResult}; use super::watchable_cell::WatchableOnceCell; use crate::dataset::mem_wal::config::RegionWriterConfig; use crate::dataset::mem_wal::dispatcher::{ @@ -366,12 +367,7 @@ impl BackpressureProvider for SharedWriterState { self.state .try_read() .ok() - .map(|s| { - s.frozen_memtables - .iter() - .map(|m| m.estimated_size()) - .sum() - }) + .map(|s| s.frozen_memtables.iter().map(|m| m.estimated_size()).sum()) .unwrap_or(0) } @@ -910,10 +906,7 @@ impl RegionWriter { }); }; - let result = self - .flusher - .flush(&frozen, &self.epoch_guard) - .await?; + let result = self.flusher.flush(&frozen, &self.epoch_guard).await?; // Note: Durability is guaranteed by WAL, not by this flush. // This flush is for query performance and WAL truncation. @@ -1087,6 +1080,27 @@ impl MessageHandler for WalFlushHandler { let _ = tx.send(result.map(|entry| entry.map(|e| e.id).unwrap_or(0))); } } + WalFlushMsg::FlushFrozenMemTable { + batch_store, + indexes, + done, + } => { + // Flush all remaining WAL batches for a frozen memtable. + // This message is sent at freeze time to ensure strict ordering: + // all WAL entries for the old memtable are flushed before any + // WAL entries for the new memtable. + let pending_count = batch_store.pending_wal_flush_count(); + eprintln!( + "[{}][WAL_FLUSH_HANDLER] Received FlushFrozenMemTable with {} pending batches", + log_ts(), + pending_count + ); + + let result = self.do_flush_frozen_memtable(&batch_store, indexes).await; + // Convert Result to Result + // since lance_core::Error doesn't implement Clone + done.write(result.map_err(|e| e.to_string())); + } WalFlushMsg::Tick => { // Tick is deprecated - time-based flush is now handled in maybe_trigger_wal_flush() // This code path should not be hit in normal operation @@ -1317,6 +1331,52 @@ impl WalFlushHandler { let _ = self.memtable_flush_tx.send(FlushMessage::Tick); } } + + /// Flush all remaining WAL batches for a frozen memtable. + /// + /// This method is called when processing `FlushFrozenMemTable` messages, + /// which are sent at freeze time to ensure strict ordering of WAL entries. + async fn do_flush_frozen_memtable( + &self, + batch_store: &LockFreeBatchStore, + indexes: Option>, + ) -> Result { + let start = Instant::now(); + + // Flush all pending batches for this frozen memtable + let flush_result = self + .wal_buffer + .flush_with_index_update(batch_store, indexes) + .await?; + + let batches_flushed = flush_result + .entry + .as_ref() + .map(|e| e.batch_positions.len()) + .unwrap_or(0); + + // Record WAL flush stats + if batches_flushed > 0 { + self.stats + .record_wal_flush(start.elapsed(), flush_result.wal_bytes, batches_flushed); + self.stats.record_wal_io(flush_result.wal_io_duration); + self.stats.record_index_update( + flush_result.index_update_duration, + flush_result.rows_indexed, + ); + } + + eprintln!( + "[{}][WAL_FLUSH_HANDLER] FlushFrozenMemTable complete: {} batches, {}ms (S3={}ms, index={:?})", + log_ts(), + batches_flushed, + start.elapsed().as_millis(), + flush_result.wal_io_duration.as_millis(), + flush_result.index_update_duration_breakdown + ); + + Ok(flush_result) + } } /// Background handler for MemTable flush operations. @@ -1441,9 +1501,12 @@ impl MemTableFlushHandler { /// /// This method is designed to be instant (sub-millisecond): /// 1. Acquire write lock and swap memtables - /// 2. Each memtable tracks its own WAL flush watermark in batch_store - /// 3. WAL flush + index updates happen via WalFlushHandler (for old memtable) - /// 4. Lance flush happens in flush_oldest_immutable after WAL is complete + /// 2. Send WAL flush request for the frozen memtable (ensures ordering) + /// 3. Lance flush happens in flush_oldest_immutable after WAL is complete + /// + /// The WAL flush request is sent at freeze time to ensure strict ordering: + /// all WAL entries for this memtable are flushed before any WAL entries + /// for the new memtable. This guarantees WAL entries are ordered by write time. /// /// This allows writes to continue immediately on the new memtable /// while background processing handles WAL and Lance flushes. @@ -1468,6 +1531,10 @@ impl MemTableFlushHandler { pending_wal_range ); + // Capture batch_store and indexes from old memtable BEFORE swap + let old_batch_store = state.memtable.batch_store(); + let old_indexes = state.memtable.indexes_arc(); + // Create a new empty memtable with the next generation let next_generation = state.memtable.generation() + 1; let mut new_memtable = MemTable::with_capacity( @@ -1500,6 +1567,29 @@ impl MemTableFlushHandler { // Mark the old memtable as frozen with the WAL ID old_memtable.freeze(last_wal_id); + // Create WAL flush completion cell if there are pending batches + if pending_wal_range.is_some() { + let completion_cell: WatchableOnceCell> = + WatchableOnceCell::new(); + let completion_reader = completion_cell.reader(); + + // Store the reader in the old memtable so flush_oldest_immutable can await it + old_memtable.set_wal_flush_completion(completion_reader); + + // Send WAL flush request for this frozen memtable. + // This goes into the WAL flush queue BEFORE any new writes to the new memtable, + // ensuring strict write-time ordering of WAL entries. + eprintln!( + "[{}][FREEZE] Sending FlushFrozenMemTable to WAL handler queue", + log_ts() + ); + self.wal_buffer.trigger_frozen_memtable_flush( + old_batch_store, + old_indexes, + completion_cell, + )?; + } + // Add to the frozen queue as Arc state.frozen_memtables.push_back(Arc::new(old_memtable)); state.last_flushed_wal_id = last_wal_id; @@ -1527,8 +1617,9 @@ impl MemTableFlushHandler { /// Flush the oldest frozen memtable from the queue. /// - /// This method first ensures all WAL batches are flushed for the frozen - /// memtable, then flushes to Lance storage. + /// This method waits for the WAL flush to complete (sent at freeze time), + /// then flushes to Lance storage. The WAL flush is already queued by + /// freeze_memtable to ensure strict ordering of WAL entries. async fn flush_oldest_immutable(&mut self) -> Result> { let start = Instant::now(); eprintln!( @@ -1547,41 +1638,45 @@ impl MemTableFlushHandler { return Ok(None); }; - let batch_store = frozen.batch_store(); - let pending_wal = batch_store.pending_wal_flush_range(); - eprintln!( - "[{}][LANCE_FLUSH] Frozen memtable: {} rows, {} batches, pending_wal={:?}", + "[{}][LANCE_FLUSH] Frozen memtable: {} rows, {} batches, has_pending_wal={}", log_ts(), frozen.row_count(), frozen.batch_count(), - pending_wal + frozen.has_pending_wal_flush() ); - // Step 1: Flush any remaining WAL batches for this frozen memtable - if pending_wal.is_some() { + // Step 1: Wait for WAL flush completion (already queued at freeze time) + // The FlushFrozenMemTable message was sent by freeze_memtable to ensure + // strict ordering of WAL entries. + if let Some(mut completion_reader) = frozen.take_wal_flush_completion() { let wal_start = std::time::Instant::now(); - let indexes = frozen.indexes_arc(); - let wal_result = self - .wal_buffer - .flush_with_index_update(&batch_store, indexes) - .await?; eprintln!( - "[{}][LANCE_FLUSH] WAL flush took {}ms (S3={}ms, index={}ms, {} rows)", + "[{}][LANCE_FLUSH] Awaiting WAL flush completion...", + log_ts() + ); + let wal_result = completion_reader + .await_value() + .await + .map_err(|e| Error::io(format!("WAL flush failed: {}", e), snafu::location!()))?; + eprintln!( + "[{}][LANCE_FLUSH] WAL flush completed in {}ms (S3={}ms, index={:?}, {} rows)", log_ts(), wal_start.elapsed().as_millis(), wal_result.wal_io_duration.as_millis(), - wal_result.index_update_duration.as_millis(), + wal_result.index_update_duration_breakdown, wal_result.rows_indexed ); + } else { + eprintln!( + "[{}][LANCE_FLUSH] No pending WAL flush to wait for", + log_ts() + ); } // Step 2: Flush the memtable to Lance storage let flusher_start = std::time::Instant::now(); - let result = self - .flusher - .flush(&frozen, &self.epoch_guard) - .await?; + let result = self.flusher.flush(&frozen, &self.epoch_guard).await?; eprintln!( "[{}][LANCE_FLUSH] flusher.flush() took {}ms", log_ts(), From 6d2145bd6b73bcd998f1140cf10155780f954f92 Mon Sep 17 00:00:00 2001 From: Heng Ge Date: Thu, 22 Jan 2026 20:17:53 -0800 Subject: [PATCH 18/20] fix: set memtable batch capacity dynamically in read benchmark Set batch_capacity based on actual number of batches (with 10% buffer) to avoid "batch store is full" errors when running with large batch counts. Co-Authored-By: Claude Opus 4.5 --- rust/lance/benches/memtable_read.rs | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/rust/lance/benches/memtable_read.rs b/rust/lance/benches/memtable_read.rs index 9acd78495dc..b2a0c8ce512 100644 --- a/rust/lance/benches/memtable_read.rs +++ b/rust/lance/benches/memtable_read.rs @@ -36,7 +36,7 @@ use arrow_array::{ use arrow_schema::{DataType, Field, Schema as ArrowSchema}; use criterion::{criterion_group, criterion_main, BenchmarkId, Criterion, Throughput}; use futures::TryStreamExt; -use lance::dataset::mem_wal::write::{IndexRegistry, MemTable}; +use lance::dataset::mem_wal::write::{CacheConfig, IndexRegistry, MemTable}; use lance::dataset::{Dataset, WriteParams}; use lance::index::vector::VectorIndexParams; use lance_arrow::FixedSizeListArrayExt; @@ -242,6 +242,7 @@ async fn setup_memtable( num_sub_vectors: usize, ) -> MemTable { let schema = batches[0].schema(); + let num_batches = batches.len(); // Train IVF-PQ models from the data let (ivf_model, pq) = train_ivf_pq_models( @@ -264,8 +265,16 @@ async fn setup_memtable( DistanceType::L2, ); - // Create MemTable - let mut memtable = MemTable::new(schema, 1, vec![0]).unwrap(); + // Create MemTable with capacity for all batches (add 10% buffer) + let batch_capacity = ((num_batches as f64) * 1.1) as usize; + let mut memtable = MemTable::with_capacity( + schema, + 1, + vec![0], + CacheConfig::default(), + batch_capacity, + ) + .unwrap(); memtable.set_indexes(registry); // Insert batches with sequence numbers From 1e8904746fe0b36b32ad32c678863a8483d537e6 Mon Sep 17 00:00:00 2001 From: Heng Ge Date: Fri, 23 Jan 2026 00:29:13 -0800 Subject: [PATCH 19/20] feat(mem_wal): optimize IVF-PQ index with hybrid storage and MVCC visibility - Add LockFreeIvfPqPartitionStore with pre-transposed PQ codes for zero-cost search-time access - Implement hybrid storage: primary (pre-allocated, fast) + overflow (SkipMap, graceful degradation when primary full) - Update IvfPqMemIndex to use partition-based storage instead of SkipMap - Fix MVCC visibility filtering for all index types (IVF-PQ, BTree, FTS): - Push max_row_position into search to filter before top-k truncation - Remove invalid seq==0 visibility check - Use Option for max_visible_row to handle empty visibility Co-Authored-By: Jack Ye Co-Authored-By: Claude --- rust/lance/benches/memtable_read.rs | 11 +- .../mem_wal/read/memtable/exec/btree.rs | 46 +- .../dataset/mem_wal/read/memtable/exec/fts.rs | 32 +- .../mem_wal/read/memtable/exec/vector.rs | 67 +- rust/lance/src/dataset/mem_wal/write.rs | 1 + .../src/dataset/mem_wal/write/indexes.rs | 414 ++++++------ .../src/dataset/mem_wal/write/ivfpq_store.rs | 608 ++++++++++++++++++ rust/lance/src/dataset/mem_wal/write/wal.rs | 12 +- .../lance/src/dataset/mem_wal/write/writer.rs | 33 +- 9 files changed, 946 insertions(+), 278 deletions(-) create mode 100644 rust/lance/src/dataset/mem_wal/write/ivfpq_store.rs diff --git a/rust/lance/benches/memtable_read.rs b/rust/lance/benches/memtable_read.rs index b2a0c8ce512..cd9564dad97 100644 --- a/rust/lance/benches/memtable_read.rs +++ b/rust/lance/benches/memtable_read.rs @@ -267,14 +267,9 @@ async fn setup_memtable( // Create MemTable with capacity for all batches (add 10% buffer) let batch_capacity = ((num_batches as f64) * 1.1) as usize; - let mut memtable = MemTable::with_capacity( - schema, - 1, - vec![0], - CacheConfig::default(), - batch_capacity, - ) - .unwrap(); + let mut memtable = + MemTable::with_capacity(schema, 1, vec![0], CacheConfig::default(), batch_capacity) + .unwrap(); memtable.set_indexes(registry); // Insert batches with sequence numbers diff --git a/rust/lance/src/dataset/mem_wal/read/memtable/exec/btree.rs b/rust/lance/src/dataset/mem_wal/read/memtable/exec/btree.rs index c038a1d8c21..a164d75e42d 100644 --- a/rust/lance/src/dataset/mem_wal/read/memtable/exec/btree.rs +++ b/rust/lance/src/dataset/mem_wal/read/memtable/exec/btree.rs @@ -109,13 +109,38 @@ impl BTreeIndexExec { }) } - /// Query the index and return matching row positions. + /// Compute the maximum visible row position based on visibility_seq. + /// Returns None if no batches are visible. + fn compute_max_visible_row(&self) -> Option { + let mut max_visible_row_exclusive: u64 = 0; + let mut current_row: u64 = 0; + + for stored_batch in self.batch_store.iter() { + let batch_end = current_row + stored_batch.num_rows as u64; + if stored_batch.seq <= self.visibility_seq { + max_visible_row_exclusive = batch_end; + } + current_row = batch_end; + } + + if max_visible_row_exclusive > 0 { + Some(max_visible_row_exclusive - 1) + } else { + None + } + } + + /// Query the index and return matching row positions filtered by visibility. fn query_index(&self) -> Vec { let Some(index) = self.indexes.get_btree(&self.index_name) else { return vec![]; }; - match &self.predicate { + let Some(max_visible_row) = self.compute_max_visible_row() else { + return vec![]; + }; + + let positions = match &self.predicate { ScalarPredicate::Eq { value, .. } => index.get(value), ScalarPredicate::Range { lower, upper, .. } => { // For range queries, use a range scan approach @@ -144,7 +169,13 @@ impl BTreeIndexExec { } results } - } + }; + + // Filter by visibility + positions + .into_iter() + .filter(|&pos| pos <= max_visible_row) + .collect() } /// Convert row positions to batch_id and row_within_batch pairs. @@ -156,7 +187,7 @@ impl BTreeIndexExec { for stored_batch in self.batch_store.iter() { let batch_start = current_row; let batch_end = current_row + stored_batch.num_rows; - batch_ranges.push((batch_start, batch_end, stored_batch.seq)); + batch_ranges.push((batch_start, batch_end)); current_row = batch_end; } @@ -164,12 +195,9 @@ impl BTreeIndexExec { let mut result = Vec::new(); for &pos in positions { let pos = pos as usize; - for (batch_id, &(start, end, seq)) in batch_ranges.iter().enumerate() { + for (batch_id, &(start, end)) in batch_ranges.iter().enumerate() { if pos >= start && pos < end { - // Check visibility - if seq == 0 || seq <= self.visibility_seq { - result.push((batch_id, pos - start)); - } + result.push((batch_id, pos - start)); break; } } diff --git a/rust/lance/src/dataset/mem_wal/read/memtable/exec/fts.rs b/rust/lance/src/dataset/mem_wal/read/memtable/exec/fts.rs index 8139a33590a..e105ff7a4d1 100644 --- a/rust/lance/src/dataset/mem_wal/read/memtable/exec/fts.rs +++ b/rust/lance/src/dataset/mem_wal/read/memtable/exec/fts.rs @@ -35,7 +35,6 @@ pub const SCORE_COLUMN: &str = "_score"; struct BatchRange { start: usize, end: usize, - seq: u64, batch_id: usize, } @@ -52,6 +51,8 @@ pub struct FtsIndexExec { index_name: String, /// Pre-computed batch ranges for O(log n) lookup. batch_ranges: Vec, + /// Maximum visible row position based on visibility_seq (None if nothing visible). + max_visible_row: Option, } impl Debug for FtsIndexExec { @@ -119,21 +120,32 @@ impl FtsIndexExec { Boundedness::Bounded, ); - // Pre-compute batch ranges for O(log n) lookup + // Pre-compute batch ranges for O(log n) lookup and max visible row let mut batch_ranges = Vec::new(); let mut current_row = 0usize; + let mut max_visible_row_exclusive: u64 = 0; + for (batch_id, stored_batch) in batch_store.iter().enumerate() { let batch_start = current_row; let batch_end = current_row + stored_batch.num_rows; batch_ranges.push(BatchRange { start: batch_start, end: batch_end, - seq: stored_batch.seq, batch_id, }); + if stored_batch.seq <= visibility_seq { + max_visible_row_exclusive = batch_end as u64; + } current_row = batch_end; } + // Convert exclusive end to inclusive last position, or None if nothing visible + let max_visible_row = if max_visible_row_exclusive > 0 { + Some(max_visible_row_exclusive - 1) + } else { + None + }; + Ok(Self { batch_store, indexes, @@ -145,6 +157,7 @@ impl FtsIndexExec { metrics: ExecutionPlanMetricsSet::new(), index_name, batch_ranges, + max_visible_row, }) } @@ -175,17 +188,14 @@ impl FtsIndexExec { .collect() } - /// Filter results by MVCC visibility using binary search. O(n log b). + /// Filter results by MVCC visibility using max_row_position. O(n). fn filter_by_visibility(&self, results: Vec<(u64, f32)>) -> Vec<(u64, f32)> { + let Some(max_visible) = self.max_visible_row else { + return vec![]; + }; results .into_iter() - .filter(|&(pos, _)| { - if let Some(batch) = self.find_batch(pos as usize) { - batch.seq == 0 || batch.seq <= self.visibility_seq - } else { - false - } - }) + .filter(|&(pos, _)| pos <= max_visible) .collect() } diff --git a/rust/lance/src/dataset/mem_wal/read/memtable/exec/vector.rs b/rust/lance/src/dataset/mem_wal/read/memtable/exec/vector.rs index 2fb5a69418f..cc7b4c6df86 100644 --- a/rust/lance/src/dataset/mem_wal/read/memtable/exec/vector.rs +++ b/rust/lance/src/dataset/mem_wal/read/memtable/exec/vector.rs @@ -122,12 +122,40 @@ impl VectorIndexExec { }) } + /// Compute the maximum visible row position based on visibility_seq. + /// + /// Returns the last row position that is visible at the given visibility_seq, + /// or None if no batches are visible. + fn compute_max_visible_row(&self) -> Option { + let mut max_visible_row_exclusive: u64 = 0; + let mut current_row: u64 = 0; + + for stored_batch in self.batch_store.iter() { + let batch_end = current_row + stored_batch.num_rows as u64; + if stored_batch.seq <= self.visibility_seq { + max_visible_row_exclusive = batch_end; + } + current_row = batch_end; + } + + if max_visible_row_exclusive > 0 { + Some(max_visible_row_exclusive - 1) + } else { + None + } + } + /// Query the index and return matching rows with distances. fn query_index(&self) -> Vec<(f32, u64)> { let Some(index) = self.indexes.get_ivf_pq(&self.index_name) else { return vec![]; }; + // Compute max visible row for MVCC filtering + let Some(max_visible_row) = self.compute_max_visible_row() else { + return vec![]; + }; + // Convert query vector to FixedSizeListArray let query_array = self.query.query_vector.as_ref(); @@ -145,40 +173,12 @@ impl VectorIndexExec { } }; - // Search the index + // Search the index with visibility filtering index - .search(&fsl, self.query.k, self.query.nprobes) + .search(&fsl, self.query.k, self.query.nprobes, max_visible_row) .unwrap_or_default() } - /// Filter results by MVCC visibility. - fn filter_by_visibility(&self, results: Vec<(f32, u64)>) -> Vec<(f32, u64)> { - // Build a map of row_position -> batch_id - let mut batch_ranges = Vec::new(); - let mut current_row = 0usize; - - for stored_batch in self.batch_store.iter() { - let batch_start = current_row; - let batch_end = current_row + stored_batch.num_rows; - batch_ranges.push((batch_start, batch_end, stored_batch.seq)); - current_row = batch_end; - } - - // Filter by visibility - results - .into_iter() - .filter(|&(_, pos)| { - let pos = pos as usize; - for &(start, end, seq) in &batch_ranges { - if pos >= start && pos < end { - return seq == 0 || seq <= self.visibility_seq; - } - } - false - }) - .collect() - } - /// Materialize rows from batch store with distance column. fn materialize_rows(&self, results: &[(f32, u64)]) -> DataFusionResult> { if results.is_empty() { @@ -315,14 +315,11 @@ impl ExecutionPlan for VectorIndexExec { _partition: usize, _context: Arc, ) -> DataFusionResult { - // Query the index + // Query the index (visibility filtering happens inside search) let results = self.query_index(); - // Filter by visibility - let visible_results = self.filter_by_visibility(results); - // Materialize the rows - let batches = self.materialize_rows(&visible_results)?; + let batches = self.materialize_rows(&results)?; let stream = stream::iter(batches.into_iter().map(Ok)).boxed(); diff --git a/rust/lance/src/dataset/mem_wal/write.rs b/rust/lance/src/dataset/mem_wal/write.rs index 840405f3d75..4e4512c46ca 100644 --- a/rust/lance/src/dataset/mem_wal/write.rs +++ b/rust/lance/src/dataset/mem_wal/write.rs @@ -14,6 +14,7 @@ mod batch_store; mod batch_write; mod flush; mod indexes; +mod ivfpq_store; mod memtable; #[cfg(test)] mod memtable_perf_test; diff --git a/rust/lance/src/dataset/mem_wal/write/indexes.rs b/rust/lance/src/dataset/mem_wal/write/indexes.rs index abd2e3d1b17..fc43d175fb4 100644 --- a/rust/lance/src/dataset/mem_wal/write/indexes.rs +++ b/rust/lance/src/dataset/mem_wal/write/indexes.rs @@ -28,8 +28,11 @@ use lance_core::{Error, Result}; use lance_index::scalar::btree::OrderableScalarValue; use lance_index::vector::ivf::storage::IvfModel; use lance_index::vector::kmeans::compute_partitions_arrow_array; +use lance_index::vector::pq::storage::transpose; use lance_index::vector::pq::ProductQuantizer; use lance_index::vector::quantizer::Quantization; + +use super::ivfpq_store::IvfPqPartition; use lance_linalg::distance::DistanceType; use lance_table::format::IndexMetadata; use snafu::location; @@ -395,47 +398,24 @@ pub struct IvfPqEntry { pub pq_code: Vec, } -/// Key for IVF-PQ index entries in SkipMap. -/// -/// Ordered by (partition_id, row_position) for efficient partition iteration. -#[derive(Clone, Debug, PartialEq, Eq)] -struct IvfPqKey { - /// Partition ID (0..num_partitions). - partition_id: u32, - /// Row position in MemTable. - row_position: RowPosition, -} - -impl PartialOrd for IvfPqKey { - fn partial_cmp(&self, other: &Self) -> Option { - Some(self.cmp(other)) - } -} - -impl Ord for IvfPqKey { - fn cmp(&self, other: &Self) -> std::cmp::Ordering { - match self.partition_id.cmp(&other.partition_id) { - std::cmp::Ordering::Equal => self.row_position.cmp(&other.row_position), - ord => ord, - } - } -} - /// In-memory IVF-PQ index for vector similarity search. /// /// Reuses IVF centroids and PQ codebook from the base table to ensure /// distance comparisons are consistent between the in-memory and base table indexes. /// -/// Uses a simple SkipMap for O(log n) inserts. PQ codes are stored in row-major format -/// and transposed at read time when needed for distance computation. +/// Uses hybrid storage for optimal performance: +/// - **Primary**: Pre-allocated `IvfPqPartition` stores with pre-transposed codes (fast search) +/// - **Overflow**: SkipMap fallback when primary is full (row-major, transpose at search) +/// +/// This design ensures writes never block while optimizing the common case where +/// most data (typically 95%+) fits in the fast primary storage. #[derive(Debug)] pub struct IvfPqMemIndex { column_name: String, ivf_model: IvfModel, pq: ProductQuantizer, - /// SkipMap storage: (partition_id, row_position) -> pq_code. - /// Ordered by partition_id first for efficient partition iteration. - entries: SkipMap>, + /// Per-partition stores with hybrid storage (primary + overflow). + partitions: Vec, /// Total number of vectors indexed. vector_count: AtomicUsize, /// Distance type for partition assignment. @@ -449,9 +429,17 @@ pub struct IvfPqMemIndex { max_indexed_seq: AtomicU64, } +/// Default partition capacity when not specified. +/// This is a fallback - in practice, capacity should always be calculated +/// from memtable config using the safety factor. +const DEFAULT_PARTITION_CAPACITY: usize = 1024; + impl IvfPqMemIndex { /// Create a new IVF-PQ index with centroids and codebook from base table. /// + /// Uses default partition capacity. For production use, prefer `with_capacity()` + /// with capacity calculated from memtable config. + /// /// # Arguments /// /// * `column_name` - Vector column name @@ -464,26 +452,27 @@ impl IvfPqMemIndex { pq: ProductQuantizer, distance_type: DistanceType, ) -> Self { - let num_partitions = ivf_model.num_partitions(); - let code_len = pq.num_sub_vectors * pq.num_bits as usize / 8; - Self { + Self::with_capacity( column_name, ivf_model, pq, - entries: SkipMap::new(), - vector_count: AtomicUsize::new(0), distance_type, - num_partitions, - code_len, - max_indexed_seq: AtomicU64::new(0), - } + DEFAULT_PARTITION_CAPACITY, + ) } /// Create a new IVF-PQ index with specified partition capacity. /// - /// Note: partition_capacity is ignored in the SkipMap implementation, - /// but kept for API compatibility. - #[allow(unused_variables)] + /// The partition capacity determines how many vectors each partition's + /// primary storage can hold before overflowing to the slower SkipMap. + /// + /// # Arguments + /// + /// * `column_name` - Vector column name + /// * `ivf_model` - IVF model with centroids from base table + /// * `pq` - Product quantizer with codebook from base table + /// * `distance_type` - Distance type for search + /// * `partition_capacity` - Max vectors per partition in primary storage pub fn with_capacity( column_name: String, ivf_model: IvfModel, @@ -491,7 +480,25 @@ impl IvfPqMemIndex { distance_type: DistanceType, partition_capacity: usize, ) -> Self { - Self::new(column_name, ivf_model, pq, distance_type) + let num_partitions = ivf_model.num_partitions(); + let code_len = pq.num_sub_vectors * pq.num_bits as usize / 8; + + // Pre-allocate all partition stores. + let partitions: Vec<_> = (0..num_partitions) + .map(|_| IvfPqPartition::new(partition_capacity, code_len)) + .collect(); + + Self { + column_name, + ivf_model, + pq, + partitions, + vector_count: AtomicUsize::new(0), + distance_type, + num_partitions, + code_len, + max_indexed_seq: AtomicU64::new(0), + } } /// Get the maximum sequence number that has been indexed. @@ -521,19 +528,28 @@ impl IvfPqMemIndex { } } - /// Check if any partition has reached capacity. + /// Check if any partition has overflow data. /// - /// With SkipMap storage, there's no fixed capacity limit. - /// Always returns false - capacity management is handled by memtable size. - pub fn any_partition_at_capacity(&self) -> bool { - false + /// This indicates some vectors are stored in the slower SkipMap storage. + /// Useful for monitoring - high overflow suggests capacity tuning needed. + pub fn any_partition_has_overflow(&self) -> bool { + self.partitions.iter().any(|p| p.has_overflow()) } - /// Get the maximum fill percentage across all partitions. + /// Get the maximum overflow percentage across all partitions. /// - /// With SkipMap storage, returns 0.0 since there's no fixed capacity. - pub fn max_partition_fill_percentage(&self) -> f64 { - 0.0 + /// Returns 0.0 to 1.0 indicating what fraction of vectors are in overflow. + /// Values > 0.1 suggest `partition_capacity` may need increasing. + pub fn max_overflow_percentage(&self) -> f64 { + self.partitions + .iter() + .map(|p| p.overflow_percentage()) + .fold(0.0, f64::max) + } + + /// Get total overflow count across all partitions. + pub fn total_overflow_count(&self) -> usize { + self.partitions.iter().map(|p| p.overflow_len()).sum() } /// Insert vectors from a batch into the index. @@ -542,6 +558,9 @@ impl IvfPqMemIndex { } /// Insert vectors from a batch into the index with sequence tracking. + /// + /// For better performance with multiple batches, prefer `insert_batches()` + /// which enables cross-batch vectorization. pub fn insert_with_seq( &self, batch: &RecordBatch, @@ -583,43 +602,52 @@ impl IvfPqMemIndex { let (partition_ids, _distances) = compute_partitions_arrow_array(centroids, fsl, self.distance_type)?; - // Compute PQ codes for all vectors + // Compute PQ codes for all vectors (row-major output) let pq_codes = self.pq.quantize(fsl)?; let pq_codes_fsl = pq_codes.as_fixed_size_list(); - let pq_code_len = pq_codes_fsl.value_length() as usize; - - let mut inserted_count = 0usize; + let pq_codes_flat = pq_codes_fsl + .values() + .as_primitive::(); + // Group vectors by partition + let mut partition_groups: Vec> = vec![Vec::new(); self.num_partitions]; for (row_idx, partition_id) in partition_ids.iter().enumerate().take(batch.num_rows()) { - let Some(partition_id) = partition_id else { - // Skip null vectors - continue; - }; - let partition_id = *partition_id; + if let Some(pid) = partition_id { + if (*pid as usize) < self.num_partitions { + partition_groups[*pid as usize].push(row_idx); + } + } + } - // Extract PQ code for this vector - let pq_code_arr = pq_codes_fsl.value(row_idx); - let pq_code: &[u8] = pq_code_arr - .as_primitive::() - .values(); + // For each partition: gather codes and append + let mut total_inserted = 0usize; + + for (partition_id, indices) in partition_groups.iter().enumerate() { + if indices.is_empty() { + continue; + } - debug_assert_eq!(pq_code.len(), pq_code_len); + let num_vectors = indices.len(); - let row_position = row_offset + row_idx as u64; + // Gather row-major codes for this partition + let mut partition_codes: Vec = Vec::with_capacity(num_vectors * self.code_len); + let mut partition_positions: Vec = Vec::with_capacity(num_vectors); - if (partition_id as usize) < self.num_partitions { - // Insert into SkipMap - O(log n) per insert - let key = IvfPqKey { - partition_id, - row_position, - }; - self.entries.insert(key, pq_code.to_vec()); - inserted_count += 1; + for &row_idx in indices { + let code_start = row_idx * self.code_len; + let code_end = code_start + self.code_len; + partition_codes.extend_from_slice(&pq_codes_flat.values()[code_start..code_end]); + partition_positions.push(row_offset + row_idx as u64); } + + // Append to partition (handles primary vs overflow internally) + self.partitions[partition_id].append_batch(&partition_codes, &partition_positions); + + total_inserted += num_vectors; } self.vector_count - .fetch_add(inserted_count, Ordering::Relaxed); + .fetch_add(total_inserted, Ordering::Relaxed); // Update max_indexed_seq if sequence was provided if let Some(s) = seq { @@ -633,6 +661,8 @@ impl IvfPqMemIndex { /// /// This method concatenates vectors from all batches and processes them /// together for better SIMD utilization in partition assignment and PQ encoding. + /// Vectors are stored in the partition's primary (pre-transposed) storage when + /// capacity allows, otherwise in the overflow SkipMap. pub fn insert_batches(&self, batches: &[BufferedBatch]) -> Result<()> { if batches.is_empty() { return Ok(()); @@ -675,6 +705,7 @@ impl IvfPqMemIndex { vector_arrays.iter().map(|a| *a as &dyn Array).collect(); let concatenated = arrow_select::concat::concat(&arrays_as_refs)?; let mega_fsl = concatenated.as_fixed_size_list(); + let total_vectors = mega_fsl.len(); // Batch compute partition assignments (SIMD-optimized) let centroids = self @@ -685,62 +716,75 @@ impl IvfPqMemIndex { let (partition_ids, _distances) = compute_partitions_arrow_array(centroids, mega_fsl, self.distance_type)?; - // Batch compute PQ codes (SIMD-optimized) + // Batch compute PQ codes (SIMD-optimized, row-major output) let pq_codes = self.pq.quantize(mega_fsl)?; let pq_codes_fsl = pq_codes.as_fixed_size_list(); - let pq_code_len = pq_codes_fsl.value_length() as usize; - - // Distribute to partitions with correct row offsets - let mut global_idx = 0usize; - let mut inserted_count = 0usize; + let pq_codes_flat = pq_codes_fsl + .values() + .as_primitive::(); - for (row_offset, num_vectors, _seq) in &batch_infos { - for local_idx in 0..*num_vectors { - let partition_id = partition_ids[global_idx]; + // Build row position mapping + let mut row_positions: Vec = Vec::with_capacity(total_vectors); + for (row_offset, num_vectors, _) in &batch_infos { + for i in 0..*num_vectors { + row_positions.push(row_offset + i as u64); + } + } - // Skip null vectors - let Some(partition_id) = partition_id else { - global_idx += 1; - continue; - }; + // Group vectors by partition + let mut partition_groups: Vec> = vec![Vec::new(); self.num_partitions]; + for (idx, pid) in partition_ids.iter().enumerate() { + if let Some(pid) = pid { + if (*pid as usize) < self.num_partitions { + partition_groups[*pid as usize].push(idx); + } + } + } - // Extract PQ code for this vector - let pq_code_arr = pq_codes_fsl.value(global_idx); - let pq_code: &[u8] = pq_code_arr - .as_primitive::() - .values(); + // For each partition: gather codes and append + let mut total_inserted = 0usize; - debug_assert_eq!(pq_code.len(), pq_code_len); + for (partition_id, indices) in partition_groups.iter().enumerate() { + if indices.is_empty() { + continue; + } - let row_position = row_offset + local_idx as u64; + let num_vectors = indices.len(); - if (partition_id as usize) < self.num_partitions { - // Insert into SkipMap - O(log n) per insert - let key = IvfPqKey { - partition_id, - row_position, - }; - self.entries.insert(key, pq_code.to_vec()); - inserted_count += 1; - } + // Gather row-major codes for this partition + let mut partition_codes: Vec = Vec::with_capacity(num_vectors * self.code_len); + let mut partition_positions: Vec = Vec::with_capacity(num_vectors); - global_idx += 1; + for &idx in indices { + let code_start = idx * self.code_len; + let code_end = code_start + self.code_len; + partition_codes.extend_from_slice(&pq_codes_flat.values()[code_start..code_end]); + partition_positions.push(row_positions[idx]); } + + // Append to partition (handles primary vs overflow internally) + self.partitions[partition_id].append_batch(&partition_codes, &partition_positions); + + total_inserted += num_vectors; } self.vector_count - .fetch_add(inserted_count, Ordering::Relaxed); + .fetch_add(total_inserted, Ordering::Relaxed); Ok(()) } - /// Search for nearest neighbors. + /// Search for nearest neighbors with visibility filtering. + /// + /// Searches both primary (pre-transposed, fast) and overflow (needs transpose) + /// storage and merges results. Only returns rows where `row_position <= max_row_position`. /// /// # Arguments /// /// * `query` - Query vector as FixedSizeListArray with single vector /// * `k` - Number of results to return /// * `nprobes` - Number of partitions to search + /// * `max_row_position` - Maximum visible row position (for MVCC filtering) /// /// # Returns /// @@ -750,6 +794,7 @@ impl IvfPqMemIndex { query: &FixedSizeListArray, k: usize, nprobes: usize, + max_row_position: RowPosition, ) -> Result> { if query.len() != 1 { return Err(Error::invalid_input( @@ -767,28 +812,54 @@ impl IvfPqMemIndex { let mut results: Vec<(f32, RowPosition)> = Vec::new(); for i in 0..partition_ids.len() { - let partition_id = partition_ids.value(i); - if (partition_id as usize) >= self.num_partitions { + let partition_id = partition_ids.value(i) as usize; + if partition_id >= self.num_partitions { continue; } - // Get entries for this partition - let entries = self.get_partition(partition_id as usize); - if entries.is_empty() { + let partition = &self.partitions[partition_id]; + if partition.is_empty() { continue; } - // Transpose PQ codes to column-major format for distance computation - let transposed_codes = self.transpose_codes(&entries); - let codes_array = UInt8Array::from(transposed_codes); + // Search primary storage (pre-transposed, fast path) + let (primary_codes, primary_positions) = partition.get_primary_codes_for_search(); + if !primary_codes.is_empty() { + let codes_array = UInt8Array::from(primary_codes); + let distances = self.pq.compute_distances(&query_values, &codes_array)?; + + for (idx, &dist) in distances.values().iter().enumerate() { + let pos = primary_positions[idx]; + if pos <= max_row_position { + results.push((dist, pos)); + } + } + } + + // Search overflow storage (needs transpose) + if partition.has_overflow() { + let (overflow_codes_rowmajor, overflow_positions) = + partition.get_overflow_codes_for_search(); - // Compute distances using PQ distance table - let query_vec = query.value(0); - let distances = self.pq.compute_distances(&query_vec, &codes_array)?; + if !overflow_codes_rowmajor.is_empty() { + let num_overflow = overflow_positions.len(); - // Collect results with row positions - for (idx, &dist) in distances.values().iter().enumerate() { - results.push((dist, entries[idx].row_position)); + // Transpose to column-major for distance computation + let codes_array = UInt8Array::from(overflow_codes_rowmajor); + let transposed = transpose::( + &codes_array, + num_overflow, + self.code_len, + ); + let distances = self.pq.compute_distances(&query_values, &transposed)?; + + for (idx, &dist) in distances.values().iter().enumerate() { + let pos = overflow_positions[idx]; + if pos <= max_row_position { + results.push((dist, pos)); + } + } + } } } @@ -799,46 +870,12 @@ impl IvfPqMemIndex { Ok(results) } - /// Transpose PQ codes from row-major to column-major format. - /// - /// Input: entries with row-major codes [code0, code1, ...] per vector - /// Output: column-major [subvec0_all_vecs, subvec1_all_vecs, ...] - fn transpose_codes(&self, entries: &[IvfPqEntry]) -> Vec { - if entries.is_empty() { - return Vec::new(); - } - - let num_vectors = entries.len(); - let code_len = self.code_len; - let mut result = Vec::with_capacity(num_vectors * code_len); - - // Build column-major: for each subvector, collect that byte from all vectors - for subvec_idx in 0..code_len { - for entry in entries { - result.push(entry.pq_code[subvec_idx]); - } - } - - result - } - /// Get the number of vectors in a partition. pub fn partition_size(&self, partition_id: usize) -> usize { if partition_id >= self.num_partitions { return 0; } - - // Count entries in this partition by range iteration - let start_key = IvfPqKey { - partition_id: partition_id as u32, - row_position: 0, - }; - let end_key = IvfPqKey { - partition_id: partition_id as u32 + 1, - row_position: 0, - }; - - self.entries.range(start_key..end_key).count() + self.partitions[partition_id].len() } /// Get total vector count. @@ -863,23 +900,38 @@ impl IvfPqMemIndex { return Vec::new(); } - // Range query on SkipMap to get all entries for this partition - let start_key = IvfPqKey { - partition_id: partition_id as u32, - row_position: 0, - }; - let end_key = IvfPqKey { - partition_id: partition_id as u32 + 1, - row_position: 0, - }; + let partition = &self.partitions[partition_id]; + let mut entries = Vec::with_capacity(partition.len()); + + // Get from primary storage (need to convert from column-major to row-major) + let (primary_codes, primary_positions) = partition.get_primary_codes_for_search(); + if !primary_codes.is_empty() { + let num_vectors = primary_positions.len(); + // primary_codes are column-major, need to transpose back to row-major + for (i, &row_position) in primary_positions.iter().enumerate() { + let mut pq_code = Vec::with_capacity(self.code_len); + for sv in 0..self.code_len { + pq_code.push(primary_codes[sv * num_vectors + i]); + } + entries.push(IvfPqEntry { + row_position, + pq_code, + }); + } + } - self.entries - .range(start_key..end_key) - .map(|entry| IvfPqEntry { - row_position: entry.key().row_position, - pq_code: entry.value().clone(), - }) - .collect() + // Get from overflow storage (already row-major) + let (overflow_codes, overflow_positions) = partition.get_overflow_codes_for_search(); + for (i, &row_position) in overflow_positions.iter().enumerate() { + let code_start = i * self.code_len; + let code_end = code_start + self.code_len; + entries.push(IvfPqEntry { + row_position, + pq_code: overflow_codes[code_start..code_end].to_vec(), + }); + } + + entries } /// Get the number of partitions. @@ -1638,16 +1690,6 @@ impl IndexRegistry { self.fts_indexes.get(name) } - /// Check if any IVF-PQ index has a partition at capacity. - /// - /// Returns true if at least one partition in any IVF-PQ index has reached - /// its pre-allocated capacity, indicating the memtable should be flushed. - pub fn any_partition_at_capacity(&self) -> bool { - self.ivf_pq_indexes - .values() - .any(|index| index.any_partition_at_capacity()) - } - /// Check if the registry has any indexes. pub fn is_empty(&self) -> bool { self.btree_indexes.is_empty() diff --git a/rust/lance/src/dataset/mem_wal/write/ivfpq_store.rs b/rust/lance/src/dataset/mem_wal/write/ivfpq_store.rs new file mode 100644 index 00000000000..c4d1f73f285 --- /dev/null +++ b/rust/lance/src/dataset/mem_wal/write/ivfpq_store.rs @@ -0,0 +1,608 @@ +// SPDX-License-Identifier: Apache-2.0 +// SPDX-FileCopyrightText: Copyright The Lance Authors + +//! Lock-free storage for IVF-PQ partition with pre-transposed PQ codes. +//! +//! This module provides a high-performance storage structure for IVF-PQ index +//! partitions that stores PQ codes in column-major (transposed) format for +//! zero-cost search-time access. +//! +//! # Architecture +//! +//! Each partition uses hybrid storage: +//! - **Primary**: Pre-allocated `LockFreeIvfPqPartitionStore` with transposed codes +//! - **Overflow**: `SkipMap` for when primary is full (row-major, transpose at search) +//! +//! This design ensures writes never block while optimizing the common case. +//! +//! # Safety Model +//! +//! Same as `LockFreeBatchStore`: +//! - Single writer (IndexUpdateHandler) +//! - Multiple concurrent readers +//! - Append-only until memtable flush + +use std::cell::UnsafeCell; +use std::mem::MaybeUninit; +use std::sync::atomic::{AtomicUsize, Ordering}; + +use arrow_array::types::UInt8Type; +use arrow_array::UInt8Array; +use crossbeam_skiplist::SkipMap; +use lance_index::vector::pq::storage::transpose; + +/// Error when partition store is full. +#[derive(Debug, Clone, Copy, PartialEq, Eq)] +pub struct PartitionFull; + +impl std::fmt::Display for PartitionFull { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "IVF-PQ partition store is full") + } +} + +impl std::error::Error for PartitionFull {} + +/// Lock-free storage for a single IVF partition with pre-transposed PQ codes. +/// +/// Stores PQ codes in column-major (transposed) format for zero-cost +/// search-time access. Uses the same single-writer, multi-reader pattern +/// as `LockFreeBatchStore`. +/// +/// # Memory Layout +/// +/// ```text +/// codes: [subvec_0_all_vectors | subvec_1_all_vectors | ... | subvec_n_all_vectors] +/// ``` +/// +/// Each subvector section has `capacity` bytes pre-allocated. +/// +/// # Safety +/// +/// - Single writer (IndexUpdateHandler or WriteBatchHandler) +/// - Multiple concurrent readers +/// - Append-only until memtable flush +#[derive(Debug)] +#[allow(dead_code)] // Some methods intentionally public for monitoring/future use +pub struct LockFreeIvfPqPartitionStore { + /// Pre-allocated column-major PQ codes. + /// Layout: codes[subvec_idx * capacity + vector_idx] = code_byte + codes: UnsafeCell]>>, + + /// Row positions for result mapping. + row_positions: UnsafeCell]>>, + + /// Number of vectors committed (visible to readers). + committed_len: AtomicUsize, + + /// Maximum vectors this partition can hold. + capacity: usize, + + /// Number of sub-vectors (PQ code length). + num_sub_vectors: usize, +} + +// SAFETY: Single-writer pattern enforced by architecture. +// UnsafeCell contents are only mutated by single writer thread. +unsafe impl Sync for LockFreeIvfPqPartitionStore {} +unsafe impl Send for LockFreeIvfPqPartitionStore {} + +#[allow(dead_code)] // Some methods intentionally public for monitoring/future use +impl LockFreeIvfPqPartitionStore { + /// Create a new partition store with given capacity. + /// + /// # Arguments + /// + /// * `capacity` - Maximum number of vectors + /// * `num_sub_vectors` - PQ code length (number of sub-vectors) + /// + /// # Panics + /// + /// Panics if capacity or num_sub_vectors is 0. + pub fn new(capacity: usize, num_sub_vectors: usize) -> Self { + assert!(capacity > 0, "capacity must be > 0"); + assert!(num_sub_vectors > 0, "num_sub_vectors must be > 0"); + + // Allocate codes: capacity * num_sub_vectors bytes + let codes_size = capacity * num_sub_vectors; + let mut codes = Vec::with_capacity(codes_size); + for _ in 0..codes_size { + codes.push(MaybeUninit::uninit()); + } + + // Allocate row positions: capacity u64s + let mut row_positions = Vec::with_capacity(capacity); + for _ in 0..capacity { + row_positions.push(MaybeUninit::uninit()); + } + + Self { + codes: UnsafeCell::new(codes.into_boxed_slice()), + row_positions: UnsafeCell::new(row_positions.into_boxed_slice()), + committed_len: AtomicUsize::new(0), + capacity, + num_sub_vectors, + } + } + + /// Returns the capacity. + #[inline] + pub fn capacity(&self) -> usize { + self.capacity + } + + /// Returns the number of sub-vectors (code length). + #[inline] + pub fn num_sub_vectors(&self) -> usize { + self.num_sub_vectors + } + + /// Returns the number of committed vectors. + #[inline] + pub fn len(&self) -> usize { + self.committed_len.load(Ordering::Acquire) + } + + /// Returns true if empty. + #[inline] + pub fn is_empty(&self) -> bool { + self.len() == 0 + } + + /// Returns true if at capacity. + #[inline] + pub fn is_full(&self) -> bool { + self.committed_len.load(Ordering::Relaxed) >= self.capacity + } + + /// Returns remaining capacity. + #[inline] + pub fn remaining_capacity(&self) -> usize { + self.capacity + .saturating_sub(self.committed_len.load(Ordering::Relaxed)) + } + + /// Returns fill percentage (0.0 to 1.0). + #[inline] + pub fn fill_percentage(&self) -> f64 { + self.committed_len.load(Ordering::Relaxed) as f64 / self.capacity as f64 + } + + /// Append a batch of already-transposed PQ codes. + /// + /// # Arguments + /// + /// * `transposed_codes` - Column-major codes from `transpose()`. + /// Layout: [subvec0_all, subvec1_all, ...] where each section + /// has `num_vectors` bytes. + /// * `positions` - Row positions for each vector. + /// + /// # Returns + /// + /// * `Ok(())` - Successfully appended + /// * `Err(PartitionFull)` - Not enough capacity + /// + /// # Safety + /// + /// Must be called from single writer thread only. + pub fn append_transposed_batch( + &self, + transposed_codes: &[u8], + positions: &[u64], + ) -> Result<(), PartitionFull> { + let num_vectors = positions.len(); + if num_vectors == 0 { + return Ok(()); + } + + debug_assert_eq!( + transposed_codes.len(), + num_vectors * self.num_sub_vectors, + "transposed_codes length mismatch: expected {}, got {}", + num_vectors * self.num_sub_vectors, + transposed_codes.len() + ); + + let committed = self.committed_len.load(Ordering::Relaxed); + if committed + num_vectors > self.capacity { + return Err(PartitionFull); + } + + // SAFETY: Single writer, and we checked capacity. + let codes = unsafe { &mut *self.codes.get() }; + let row_pos = unsafe { &mut *self.row_positions.get() }; + + // Copy transposed codes column by column. + // Source layout: [sv0_v0..sv0_vN, sv1_v0..sv1_vN, ...] + // Dest layout: [sv0_v0..sv0_vCAP, sv1_v0..sv1_vCAP, ...] + for subvec_idx in 0..self.num_sub_vectors { + let src_start = subvec_idx * num_vectors; + let dst_start = subvec_idx * self.capacity + committed; + + for i in 0..num_vectors { + codes[dst_start + i].write(transposed_codes[src_start + i]); + } + } + + // Copy row positions. + for (i, &pos) in positions.iter().enumerate() { + row_pos[committed + i].write(pos); + } + + // Publish with release ordering. + self.committed_len + .store(committed + num_vectors, Ordering::Release); + + Ok(()) + } + + /// Get codes formatted for `ProductQuantizer::compute_distances()`. + /// + /// Copies committed codes to a contiguous buffer in column-major format. + /// This is the format expected by `compute_distances()`. + /// + /// # Returns + /// + /// Tuple of (contiguous_codes, row_positions). + pub fn get_codes_for_search(&self) -> (Vec, Vec) { + let len = self.committed_len.load(Ordering::Acquire); + if len == 0 { + return (Vec::new(), Vec::new()); + } + + let codes = unsafe { &*self.codes.get() }; + let row_pos = unsafe { &*self.row_positions.get() }; + + // Copy codes to contiguous buffer (remove capacity gaps). + let mut result_codes = Vec::with_capacity(len * self.num_sub_vectors); + for subvec_idx in 0..self.num_sub_vectors { + let start = subvec_idx * self.capacity; + for i in 0..len { + // SAFETY: i < len <= committed_len, data was initialized. + result_codes.push(unsafe { codes[start + i].assume_init() }); + } + } + + // Copy row positions. + let result_positions: Vec = (0..len) + .map(|i| unsafe { row_pos[i].assume_init() }) + .collect(); + + (result_codes, result_positions) + } +} + +/// A single IVF partition with primary (pre-transposed) and overflow (row-major) storage. +/// +/// This is the main interface for partition storage, handling the split between +/// fast primary storage and overflow when primary is full. +#[derive(Debug)] +#[allow(dead_code)] // Some methods intentionally public for monitoring/future use +pub struct IvfPqPartition { + /// Primary storage: pre-allocated, pre-transposed codes (fast search). + primary: LockFreeIvfPqPartitionStore, + + /// Overflow storage: SkipMap for when primary is full (slower search). + /// Key: row_position, Value: row-major PQ code. + overflow: SkipMap>, + + /// Number of vectors in overflow (cached for fast access). + overflow_count: AtomicUsize, + + /// Number of sub-vectors (code length). + num_sub_vectors: usize, +} + +#[allow(dead_code)] // Some methods intentionally public for monitoring/future use +impl IvfPqPartition { + /// Create a new partition with given capacity. + /// + /// # Arguments + /// + /// * `capacity` - Maximum vectors in primary storage + /// * `num_sub_vectors` - PQ code length + pub fn new(capacity: usize, num_sub_vectors: usize) -> Self { + Self { + primary: LockFreeIvfPqPartitionStore::new(capacity, num_sub_vectors), + overflow: SkipMap::new(), + overflow_count: AtomicUsize::new(0), + num_sub_vectors, + } + } + + /// Append a batch of vectors to this partition. + /// + /// Goes to primary if capacity available, otherwise overflow. + /// Codes should be in row-major format; this method handles transpose. + /// + /// # Arguments + /// + /// * `row_major_codes` - Row-major PQ codes (as returned by `pq.quantize()`) + /// * `positions` - Row positions for each vector + pub fn append_batch(&self, row_major_codes: &[u8], positions: &[u64]) { + let num_vectors = positions.len(); + if num_vectors == 0 { + return; + } + + debug_assert_eq!( + row_major_codes.len(), + num_vectors * self.num_sub_vectors, + "row_major_codes length mismatch" + ); + + let primary_remaining = self.primary.remaining_capacity(); + + if primary_remaining >= num_vectors { + // All fit in primary - transpose and append. + let codes_array = UInt8Array::from(row_major_codes.to_vec()); + let transposed = + transpose::(&codes_array, num_vectors, self.num_sub_vectors); + let _ = self + .primary + .append_transposed_batch(transposed.values(), positions); + } else if primary_remaining > 0 { + // Split: some go to primary, rest to overflow. + let primary_count = primary_remaining; + + // Primary portion - transpose and append. + let primary_codes = &row_major_codes[..primary_count * self.num_sub_vectors]; + let primary_positions = &positions[..primary_count]; + let codes_array = UInt8Array::from(primary_codes.to_vec()); + let transposed = + transpose::(&codes_array, primary_count, self.num_sub_vectors); + let _ = self + .primary + .append_transposed_batch(transposed.values(), primary_positions); + + // Overflow portion - store row-major. + let overflow_count = num_vectors - primary_count; + for i in 0..overflow_count { + let idx = primary_count + i; + let code_start = idx * self.num_sub_vectors; + let code_end = code_start + self.num_sub_vectors; + let code = row_major_codes[code_start..code_end].to_vec(); + self.overflow.insert(positions[idx], code); + } + self.overflow_count + .fetch_add(overflow_count, Ordering::Relaxed); + } else { + // Primary full - all go to overflow. + for (i, &pos) in positions.iter().enumerate() { + let code_start = i * self.num_sub_vectors; + let code_end = code_start + self.num_sub_vectors; + let code = row_major_codes[code_start..code_end].to_vec(); + self.overflow.insert(pos, code); + } + self.overflow_count + .fetch_add(num_vectors, Ordering::Relaxed); + } + } + + /// Check if this partition has overflow data. + #[inline] + pub fn has_overflow(&self) -> bool { + self.overflow_count.load(Ordering::Relaxed) > 0 + } + + /// Get number of vectors in overflow. + #[inline] + pub fn overflow_len(&self) -> usize { + self.overflow_count.load(Ordering::Relaxed) + } + + /// Get number of vectors in primary storage. + #[inline] + pub fn primary_len(&self) -> usize { + self.primary.len() + } + + /// Get overflow percentage (for metrics). + pub fn overflow_percentage(&self) -> f64 { + let primary = self.primary.len(); + let overflow = self.overflow_count.load(Ordering::Relaxed); + let total = primary + overflow; + if total == 0 { + 0.0 + } else { + overflow as f64 / total as f64 + } + } + + /// Total vectors in this partition. + #[inline] + pub fn len(&self) -> usize { + self.primary.len() + self.overflow_count.load(Ordering::Relaxed) + } + + /// Returns true if empty. + #[inline] + pub fn is_empty(&self) -> bool { + self.len() == 0 + } + + /// Get primary codes for search (pre-transposed, fast). + /// + /// Returns (codes, positions) where codes are column-major. + pub fn get_primary_codes_for_search(&self) -> (Vec, Vec) { + self.primary.get_codes_for_search() + } + + /// Get overflow codes for search. + /// + /// Returns (row_major_codes, positions). Caller must transpose before distance computation. + pub fn get_overflow_codes_for_search(&self) -> (Vec, Vec) { + let overflow_count = self.overflow_count.load(Ordering::Acquire); + if overflow_count == 0 { + return (Vec::new(), Vec::new()); + } + + let mut codes = Vec::with_capacity(overflow_count * self.num_sub_vectors); + let mut positions = Vec::with_capacity(overflow_count); + + for entry in self.overflow.iter() { + positions.push(*entry.key()); + codes.extend_from_slice(entry.value()); + } + + (codes, positions) + } +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn test_partition_store_basic() { + let store = LockFreeIvfPqPartitionStore::new(100, 16); + assert_eq!(store.capacity(), 100); + assert_eq!(store.num_sub_vectors(), 16); + assert_eq!(store.len(), 0); + assert!(store.is_empty()); + assert!(!store.is_full()); + assert_eq!(store.remaining_capacity(), 100); + } + + #[test] + fn test_partition_store_append_transposed() { + let store = LockFreeIvfPqPartitionStore::new(100, 4); + + // Append 3 vectors with 4 sub-vectors each. + // Transposed layout: [sv0_v0, sv0_v1, sv0_v2, sv1_v0, sv1_v1, sv1_v2, ...] + let transposed_codes = vec![ + // SubVec 0 + 10, 20, 30, // SubVec 1 + 11, 21, 31, // SubVec 2 + 12, 22, 32, // SubVec 3 + 13, 23, 33, + ]; + let positions = vec![100, 200, 300]; + + store + .append_transposed_batch(&transposed_codes, &positions) + .unwrap(); + + assert_eq!(store.len(), 3); + assert_eq!(store.remaining_capacity(), 97); + + let (codes, pos) = store.get_codes_for_search(); + assert_eq!(pos, vec![100, 200, 300]); + assert_eq!(codes, transposed_codes); + } + + #[test] + fn test_partition_store_full() { + let store = LockFreeIvfPqPartitionStore::new(2, 4); + + // First batch. + let codes1 = vec![1, 2, 3, 4, 5, 6, 7, 8]; // 2 vectors transposed + let pos1 = vec![10, 20]; + store.append_transposed_batch(&codes1, &pos1).unwrap(); + + assert!(store.is_full()); + assert_eq!(store.remaining_capacity(), 0); + + // Should fail. + let codes2 = vec![9, 10, 11, 12]; + let pos2 = vec![30]; + assert!(store.append_transposed_batch(&codes2, &pos2).is_err()); + } + + #[test] + fn test_ivfpq_partition_primary_only() { + let partition = IvfPqPartition::new(100, 4); + + // Row-major codes for 3 vectors. + let row_major = vec![ + 10, 11, 12, 13, // vec 0 + 20, 21, 22, 23, // vec 1 + 30, 31, 32, 33, // vec 2 + ]; + let positions = vec![100, 200, 300]; + + partition.append_batch(&row_major, &positions); + + assert_eq!(partition.len(), 3); + assert_eq!(partition.primary_len(), 3); + assert_eq!(partition.overflow_len(), 0); + assert!(!partition.has_overflow()); + + let (codes, pos) = partition.get_primary_codes_for_search(); + assert_eq!(pos, vec![100, 200, 300]); + // Codes should be transposed. + assert_eq!( + codes, + vec![ + 10, 20, 30, // sv0 + 11, 21, 31, // sv1 + 12, 22, 32, // sv2 + 13, 23, 33, // sv3 + ] + ); + } + + #[test] + fn test_ivfpq_partition_overflow() { + let partition = IvfPqPartition::new(2, 4); // Only 2 slots in primary. + + // Insert 4 vectors - 2 should go to primary, 2 to overflow. + let row_major = vec![ + 10, 11, 12, 13, // vec 0 -> primary + 20, 21, 22, 23, // vec 1 -> primary + 30, 31, 32, 33, // vec 2 -> overflow + 40, 41, 42, 43, // vec 3 -> overflow + ]; + let positions = vec![100, 200, 300, 400]; + + partition.append_batch(&row_major, &positions); + + assert_eq!(partition.len(), 4); + assert_eq!(partition.primary_len(), 2); + assert_eq!(partition.overflow_len(), 2); + assert!(partition.has_overflow()); + assert!((partition.overflow_percentage() - 0.5).abs() < 0.001); + + // Check primary. + let (primary_codes, primary_pos) = partition.get_primary_codes_for_search(); + assert_eq!(primary_pos, vec![100, 200]); + // Transposed. + assert_eq!( + primary_codes, + vec![ + 10, 20, // sv0 + 11, 21, // sv1 + 12, 22, // sv2 + 13, 23, // sv3 + ] + ); + + // Check overflow (row-major). + let (overflow_codes, overflow_pos) = partition.get_overflow_codes_for_search(); + assert_eq!(overflow_pos.len(), 2); + assert!(overflow_pos.contains(&300)); + assert!(overflow_pos.contains(&400)); + // Row-major codes in SkipMap order (sorted by key). + assert_eq!(overflow_codes.len(), 8); + } + + #[test] + fn test_ivfpq_partition_all_overflow() { + let partition = IvfPqPartition::new(2, 4); + + // Fill primary first. + let batch1 = vec![1, 2, 3, 4, 5, 6, 7, 8]; + partition.append_batch(&batch1, &[10, 20]); + assert_eq!(partition.primary_len(), 2); + assert!(!partition.has_overflow()); + + // This batch should all go to overflow. + let batch2 = vec![11, 12, 13, 14, 21, 22, 23, 24, 31, 32, 33, 34]; + partition.append_batch(&batch2, &[30, 40, 50]); + + assert_eq!(partition.len(), 5); + assert_eq!(partition.primary_len(), 2); + assert_eq!(partition.overflow_len(), 3); + assert!(partition.has_overflow()); + } +} diff --git a/rust/lance/src/dataset/mem_wal/write/wal.rs b/rust/lance/src/dataset/mem_wal/write/wal.rs index f6151522c1c..7ec26e1c376 100644 --- a/rust/lance/src/dataset/mem_wal/write/wal.rs +++ b/rust/lance/src/dataset/mem_wal/write/wal.rs @@ -676,7 +676,11 @@ impl WalBuffer { debug!( "WAL entry {} written: wal_io={:?}, index={:?} ({:?}), {} rows", - wal_id, wal_io_duration, index_update_duration, index_update_duration_breakdown, rows_to_index + wal_id, + wal_io_duration, + index_update_duration, + index_update_duration_breakdown, + rows_to_index ); Ok(WalFlushResult { @@ -1127,7 +1131,11 @@ impl WalBuffer { debug!( "WAL entry {} written: wal_io={:?}, index={:?} ({:?}), {} rows", - wal_id, wal_io_duration, index_update_duration, index_update_duration_breakdown, rows_to_index + wal_id, + wal_io_duration, + index_update_duration, + index_update_duration_breakdown, + rows_to_index ); Ok(WalFlushResult { diff --git a/rust/lance/src/dataset/mem_wal/write/writer.rs b/rust/lance/src/dataset/mem_wal/write/writer.rs index b44b933b572..4def64288ee 100644 --- a/rust/lance/src/dataset/mem_wal/write/writer.rs +++ b/rust/lance/src/dataset/mem_wal/write/writer.rs @@ -194,13 +194,8 @@ impl WriterStateOps for Arc { let should_flush = { let state = self.state.read().await; let size_exceeded = state.memtable.estimated_size() >= self.config.max_memtable_size; - let capacity_reached = state - .memtable - .indexes_arc() - .map(|idx| idx.any_partition_at_capacity()) - .unwrap_or(false); let batch_store_full = state.memtable.is_batch_store_full(); - size_exceeded || capacity_reached || batch_store_full + size_exceeded || batch_store_full }; if should_flush { // Atomically set flag - only send message if we win the race @@ -929,13 +924,8 @@ impl RegionWriter { let should_flush = { let state = self.state.read().await; let size_exceeded = state.memtable.estimated_size() >= self.config.max_memtable_size; - let capacity_reached = state - .memtable - .indexes_arc() - .map(|idx| idx.any_partition_at_capacity()) - .unwrap_or(false); let batch_store_full = state.memtable.is_batch_store_full(); - size_exceeded || capacity_reached || batch_store_full + size_exceeded || batch_store_full }; if should_flush { self.memtable_flush_tx @@ -1318,14 +1308,8 @@ impl WalFlushHandler { let should_flush = { let state = self.state.read().await; let size_exceeded = state.memtable.estimated_size() >= self.max_memtable_size; - let capacity_reached = state - .memtable - .indexes_arc() - .map(|idx| idx.any_partition_at_capacity()) - .unwrap_or(false); let batch_store_full = state.memtable.is_batch_store_full(); - (size_exceeded || capacity_reached || batch_store_full) - && state.memtable.all_flushed_to_wal() + (size_exceeded || batch_store_full) && state.memtable.all_flushed_to_wal() }; if should_flush { let _ = self.memtable_flush_tx.send(FlushMessage::Tick); @@ -1472,19 +1456,14 @@ impl MessageHandler for MemTableFlushHandler { let should_flush = { let state = self.state.read().await; let size_exceeded = state.memtable.estimated_size() >= self.max_memtable_size; - let capacity_reached = state - .memtable - .indexes_arc() - .map(|idx| idx.any_partition_at_capacity()) - .unwrap_or(false); let batch_store_full = state.memtable.is_batch_store_full(); let remaining = state.memtable.remaining_batch_capacity(); let all_flushed = state.memtable.all_flushed_to_wal(); debug!( - "[{}][FLUSH_HANDLER] Tick: size_exceeded={} capacity_reached={} batch_store_full={} remaining={} all_flushed={}", - log_ts(), size_exceeded, capacity_reached, batch_store_full, remaining, all_flushed + "[{}][FLUSH_HANDLER] Tick: size_exceeded={} batch_store_full={} remaining={} all_flushed={}", + log_ts(), size_exceeded, batch_store_full, remaining, all_flushed ); - (size_exceeded || capacity_reached || batch_store_full) && all_flushed + (size_exceeded || batch_store_full) && all_flushed }; if should_flush { eprintln!("[{}][FLUSH_HANDLER] Tick triggering flush", log_ts()); From 6c13edc60f98f325b0e328684822ddc82a6b37a9 Mon Sep 17 00:00:00 2001 From: Heng Ge Date: Sat, 24 Jan 2026 09:46:07 -0800 Subject: [PATCH 20/20] refactor(mem_wal): reorganize modules and remove debug code - Move core modules from write/ to top-level mem_wal/: batch_store, indexes, ivfpq_store, memtable, watchable_cell - Add scanner module with ExecutionPlan implementations for memtable queries - Remove experimental read path (read/memtable/) - replaced by scanner/ - Remove debug print statements (eprintln!, log_ts()) from flush.rs, wal.rs, batch_write.rs, dispatcher.rs - Simplify WAL documentation to essentials - Inline writer module into write.rs Co-Authored-By: Jack Ye Co-Authored-By: Claude Opus 4.5 --- docs/src/format/table/mem_wal.md | 155 +- rust/lance/src/dataset/mem_wal.rs | 9 +- .../mem_wal/{write => }/batch_store.rs | 240 +- rust/lance/src/dataset/mem_wal/config.rs | 37 +- rust/lance/src/dataset/mem_wal/dispatcher.rs | 79 +- .../dataset/mem_wal/{write => }/indexes.rs | 539 ++--- .../mem_wal/{write => }/ivfpq_store.rs | 4 +- .../dataset/mem_wal/{write => }/memtable.rs | 446 ++-- .../perf_test.rs} | 2 +- rust/lance/src/dataset/mem_wal/read.rs | 18 - .../mem_wal/{read/memtable.rs => scanner.rs} | 4 +- .../scanner.rs => scanner/builder.rs} | 96 +- .../{read/memtable => scanner}/exec.rs | 0 .../{read/memtable => scanner}/exec/btree.rs | 60 +- .../{read/memtable => scanner}/exec/fts.rs | 61 +- .../memtable => scanner}/exec/range_scan.rs | 162 +- .../{read/memtable => scanner}/exec/scan.rs | 60 +- .../{read/memtable => scanner}/exec/split.rs | 10 +- .../{read/memtable => scanner}/exec/vector.rs | 31 +- rust/lance/src/dataset/mem_wal/util.rs | 4 +- .../mem_wal/{write => }/watchable_cell.rs | 0 rust/lance/src/dataset/mem_wal/write.rs | 1262 +++++++++- .../src/dataset/mem_wal/write/batch_write.rs | 755 +----- rust/lance/src/dataset/mem_wal/write/flush.rs | 249 +- .../dataset/mem_wal/write/sequenced_batch.rs | 209 -- rust/lance/src/dataset/mem_wal/write/wal.rs | 911 ++------ .../lance/src/dataset/mem_wal/write/writer.rs | 2081 ----------------- 27 files changed, 2491 insertions(+), 4993 deletions(-) rename rust/lance/src/dataset/mem_wal/{write => }/batch_store.rs (78%) rename rust/lance/src/dataset/mem_wal/{write => }/indexes.rs (82%) rename rust/lance/src/dataset/mem_wal/{write => }/ivfpq_store.rs (99%) rename rust/lance/src/dataset/mem_wal/{write => }/memtable.rs (70%) rename rust/lance/src/dataset/mem_wal/{write/memtable_perf_test.rs => memtable/perf_test.rs} (99%) delete mode 100644 rust/lance/src/dataset/mem_wal/read.rs rename rust/lance/src/dataset/mem_wal/{read/memtable.rs => scanner.rs} (96%) rename rust/lance/src/dataset/mem_wal/{read/memtable/scanner.rs => scanner/builder.rs} (92%) rename rust/lance/src/dataset/mem_wal/{read/memtable => scanner}/exec.rs (100%) rename rust/lance/src/dataset/mem_wal/{read/memtable => scanner}/exec/btree.rs (89%) rename rust/lance/src/dataset/mem_wal/{read/memtable => scanner}/exec/fts.rs (89%) rename rust/lance/src/dataset/mem_wal/{read/memtable => scanner}/exec/range_scan.rs (67%) rename rust/lance/src/dataset/mem_wal/{read/memtable => scanner}/exec/scan.rs (82%) rename rust/lance/src/dataset/mem_wal/{read/memtable => scanner}/exec/split.rs (97%) rename rust/lance/src/dataset/mem_wal/{read/memtable => scanner}/exec/vector.rs (93%) rename rust/lance/src/dataset/mem_wal/{write => }/watchable_cell.rs (100%) delete mode 100644 rust/lance/src/dataset/mem_wal/write/sequenced_batch.rs delete mode 100644 rust/lance/src/dataset/mem_wal/write/writer.rs diff --git a/docs/src/format/table/mem_wal.md b/docs/src/format/table/mem_wal.md index 8878aa69e88..7a096194107 100644 --- a/docs/src/format/table/mem_wal.md +++ b/docs/src/format/table/mem_wal.md @@ -7,10 +7,12 @@ scan, point lookup, vector search and full-text search. ![MemWAL Overview](../../images/mem_wal_overview.png) -### Base Table +A Lance table is called a **base table** under the context of the MemWAL spec. +It must have an [unenforced primary key](index.md#unenforced-primary-key) defined in the table schema. -Under the MemWAL setup, the Lance table is called the **base table**. -The base table must have an [unenforced primary key](index.md#unenforced-primary-key) defined to be able to use MemWAL. +On top of the base table, the MemWAL spec defines a set of regions. +Writers write to regions, and data in each region is merged into the base table asynchronously. +An index is kept in the base table for readers to quickly discover the state of all regions at a point of time. ### MemWAL Region @@ -18,9 +20,9 @@ A **MemWAL Region** is the main unit to horizontally scale out writes. Each region has exactly one active writer at any time. Writers claim a region and then write data to that region. -Data in each region is expected to be merged into the base table gradually in the background. +Data in each region is expected to be merged into the base table asynchronously. -Regions must contain rows that are **mutually exclusive**. +Rows of the same primary key must be written to one and only one region. If two regions contain rows with the same primary key, the following scenario can cause data corruption: 1. Region A receives a write with primary key `pk=1` at time T1 @@ -33,23 +35,23 @@ This violates the expected "last write wins" semantics. By ensuring each primary key is assigned to exactly one region via the region spec, merge order between regions becomes irrelevant for correctness. +See [MemWAL Region Architecture](#memwal-region-architecture) for the complete region architecture. + ### MemWAL Index -A **MemWAL Index** is the centralized structure for all MemWAL metadata for a base table. -A table has at most one MemWAL index. -It stores: +A **MemWAL Index** is the centralized structure for all MemWAL metadata on top of a base table. +A table has at most one MemWAL index. It stores: - **Configuration**: Region specs defining how rows map to regions, and which indexes to maintain - **Merge progress**: Last generation merged to base table for each region - **Index catchup progress**: Which merged generation each base table index has been rebuilt to cover - **Region snapshots**: Snapshot of all region states for read optimization -The index is the source of truth for **configuration**, **merge progress** and **index catchup progress**. - -Writers read the MemWAL index to get these configurations before writing. +The index is the source of truth for **configuration**, **merge progress** and **index catchup progress** +Writers and mergers read the MemWAL index to get these configurations before writing. Each [region's manifest](#region-manifest) is authoritative for its own state. -Readers use **Region snapshots** is a read-only optimization to see a point-in-time view of all regions without the need to open each region manifest. +Readers use **region snapshots** is a read-only optimization to see a point-in-time view of all regions without the need to open each region manifest. See [MemWAL Index Details](#memwal-index-details) for the complete structure. @@ -57,76 +59,126 @@ See [MemWAL Index Details](#memwal-index-details) for the complete structure. ![Region Architecture](../../images/mem_wal_regional.png) -Within a region, writes enter its **MemTable** and are flushed to the regional WAL for durability. -The MemTable is **flushed** to storage as a **Flushed MemTable** based on memory pressure and other conditions. -Flushed MemTables are then asynchronously **merged** into the base table. +Within a region, writes are stored in an **in-memory table (MemTable)**. +It is also written to the region's **Write-Ahead Log (WAL)** for durability guarantee. +The MemTable is periodically **flushed** to storage based on memory pressure and other conditions. +**Flushed MemTables** in storage are then asynchronously **merged** into the base table. ### MemTable -A MemTable logically represents rows inserted into the table before flushing to storage. +A MemTable holds rows inserted into the region before flushing to storage. It serves 2 purposes: -1. allow a reader to access data that is not flushed to storage yet -2. build up necessary data and related index to be flushed to storage +1. build up data and related indexes to be flushed to storage as a flushed MemTable +2. allow a reader to potentially access data that is not flushed to storage yet + +#### MemTable Format + +The complete in-memory format of a MemTable is implementation-specific and out of the scope of this spec. +The Lance core Rust SDK maintains one default implementation and is available through all its language binding SDKs, +but integrations are free to build their own MemTable format depending on the specific use cases, +as long as it follows the MemWAL storage layout, reader and writer requirements when flushing MemTable. + +Conceptually, becuase Lance uses [Arrow for its in-memory data representaiton](https://arrow.apache.org/docs/format/index.html), +for the ease of explanation in this spec, we will treat MemTable as a list of Arrow record batches, +and each write into the MemTable is a new Arrow record batch. + +#### MemTable Generation -The unit of write into a Lance MemTable is an Apache Arrow record batch following the [Arrow in memory layout spec](https://arrow.apache.org/docs/format/index.html). -The complete in-memory representation of a MemTable is implementation-specific depending on the specific use case. +Based on conditions like memory limit and durability requirements, +a MemTable needs to be **flushed** to storage and discarded. +When that happens, new writes go to a new MemTable and the cycle repeats. +Each MemTable is assigned a monotonically increasing generation number starting from 1. +When MemTable of generation `N` is discarded, the next MemTable gets assigned generation `N+1`. ### WAL -Write-Ahead Log (WAL) serves as the durable storage of MemTable. -A write to MemTable must be persisted also to the WAL to become fully durable. +WAL serves as the durable storage of all MemTables in a region. +It consists of data in MemTables ordered by generation. Every time we write to the WAL, we call it a **WAL Flush**. +#### WAL Durability + +When a write is flushed to WAL, the specific write becomes durable. +Otherwise, if the MemTable is lost, data is also lost. + +Multiple writes can be batched together in a single WAL flush to reduce WAL flush frequency and improve throughput. +The more writes a single WAL flush batches, the longer it takes for a write to be durable. + The whole LSM tree's durability is determined by the durability of the WAL. -For example, if WAL is stored in Amazon S3, it has the 99.999999999% durability. +For example, if WAL is stored in Amazon S3, it has 99.999999999% durability. If it is stored in local disk, the data will be lost if the local disk is damaged. -A WAL consists of an ordered sequence of WAL entries starting from 1. -Each entry is a [Apache Arrow IPC file](https://arrow.apache.org/docs/format/Columnar.html#ipc-file-format). -The writer epoch is stored in the Arrow IPC file schema metadata with key `writer_epoch` for fencing validation during replay. +#### WAL Entry + +Each time a WAL flush happens, it adds a new **WAL Entry** to the WAL. +In other words, a WAL consists of an ordered list of WAL entries starting from position 0. +Writer must flush WAL entries in sequential order from lower to higher position. +If WAL entry `N` is not flushed fully, WAL entry `N+1` must not exist in storage. + +### WAL Replay + +**Replaying** a WAL means to read data in the WAL from a lower to a higher position. +This is commonly used to recover the latest MemTable after it is lost, +by reading from the start position of the latest MemTable generation till the highest position in the WAL, +assuming proper fencing to guard against multiple writers to the same region. + +See [Writer Fencing](#writer-fencing) for the full fencing mechanism. + +#### WAL Entry Format + +Each WAL entry is a file in storage following the [Apache Arrow IPC stream format](https://arrow.apache.org/docs/format/Columnar.html#ipc-streaming-format) to store the batch of writes in the MemTable. +The writer epoch is stored in the stream's Arrow schema metadata with key `writer_epoch` for fencing validation during replay. + +#### WAL Storage Layout Each WAL entry is stored within the WAL directory of the region located at `_mem_wal/{region_id}/wal`. WAL files use bit-reversed 64-bit binary naming to distribute files evenly across the directory keyspace. This optimizes S3 throughput by spreading sequential writes across S3's internal partitions, minimizing throttling. The filename is the bit-reversed binary representation of the entry ID with suffix `.lance`. -For example, entry ID 5 (binary `000...101`) becomes `1010000000000000000000000000000000000000000000000000000000000000.lance`. +For example, entry ID 5 (binary `000...101`) becomes `1010000000000000000000000000000000000000000000000000000000000000.arrow`. ### Flushed MemTable -A flushed MemTable is a complete Lance table created by flushing the MemTable to storage. +A flushed MemTable is created by flushing the MemTable to storage. +In Lance MemWAL spec, a flushed MemTable must be a Lance table following the Lance table format spec. !!!note This is called Sorted String Table (SSTable) or Sorted Run in many LSM-tree literatures and implementations. However, since our MemTable is not sorted, we just use the term flushed MemTable to avoid confusion. -Each flushed MemTable has a **generation** number starting from 1 that identifies its relative position among all flushed MemTables in the region. -When MemTable with generation `i` is flushed, the next MemTable gets generation number `i+1`. +#### Flushed MemTable Storage Layout -The MemTable of generation `i` is flushed to `_mem_wal/{region_uuid}/{random_hash}_gen_{i}/` directory, where `{random_hash}` is an 8-character hex value generated at flush time. -The directory content follows [Lance table layout](layout.md). +The MemTable of generation `i` is flushed to `_mem_wal/{region_uuid}/{random_hex}_gen_{i}/` directory, +where `{random_hex}` is a random 8-character hex value generated at flush time. +The random hex value is necessary to ensure if one MemTable flush attempt fails, +The retry can use another directory. +The content within the generation directory follows the [Lance table storage layout](layout.md). -The actual directory path for each generation is recorded in the region manifest's `flushed_generations` list (see [Region Manifest](#region-manifest)). +#### Merging MemTable to Base Table -Generation numbers determine merge order: lower numbers represent older data and must be merged to the base table first to preserve correct upsert semantics. +Generation numbers determine merge order of flushed MemTable into base table: +lower numbers represent older data and must be merged to the base table first to preserve correct upsert semantics. ### Region Manifest -Each region has a manifest file containing epoch-based fencing tokens, WAL pointers, and flushed MemTable generation trackers. This is the source of truth for region state. +Each region has a manifest file. This is the source of truth for the state of a region. -The manifest is serialized as a protobuf binary file using the `RegionManifest` message. +#### Region Manifest Contents The manifest contains: -- **Fencing state**: `writer_epoch` (writer fencing token) +- **Fencing state**: `writer_epoch` as the latest writer fencing token, see [Writer Fencing](#writer-fencing) for more details. - **WAL pointers**: `replay_after_wal_id` (last entry flushed to MemTable), `wal_id_last_seen` (last entry seen at manifest update) -- **Generation trackers**: `current_generation` (next generation to flush) -- **Flushed generations**: `flushed_generations` list of generation number and directory path pairs (e.g., generation 1 at `a1b2c3d4_gen_1`) +- **Generation trackers**: `current_generation` (next generation to flush), `flushed_generations` list of generation number and directory path pairs (e.g., generation 1 at `a1b2c3d4_gen_1`) Note: `wal_id_last_seen` is a hint that may be stale since it's not updated on WAL write. +It is updated opportunistically by any reader that can update the region manifest. The manifest itself is atomically written, but recovery must try to get newer WAL files to find the actual state beyond this hint. +The manifest is serialized as a protobuf binary file using the `RegionManifest` message. +

RegionManifest protobuf message @@ -136,7 +188,10 @@ The manifest itself is atomically written, but recovery must try to get newer WA
-Manifests are versioned starting from 1 and immutable. Each update creates a new manifest file at the next version number. +#### Region Manifest Versioning + +Manifests are versioned starting from 1 and immutable. +Each update creates a new manifest file at the next version number. Updates use put-if-not-exists or file rename to ensure atomicity depending on the storage system. If two processes compete, one wins and the other retries. @@ -153,24 +208,26 @@ To read the latest manifest version: 3. Continue until a version is not found 4. The latest version is the last found version -This approach uses HEAD requests instead of LIST operations in cloud storage, which is generally faster and is friendly to systems like S3 Express that do not support lexicographically sorted listing. - !!!note This works because the write rate to region manifests is significantly lower than read rates. Region manifests are only updated when region metadata changes (MemTable flush), not on every write. This ensures HEAD requests will eventually terminate and find the latest version. +#### Region Manifest Storage Layout + All region manifest versions are stored in `_mem_wal/{region_id}/manifest` directory. Each region manifest version file uses bit-reversed 64-bit binary naming, the same scheme as WAL files. For example, version 5 becomes `1010000000000000000000000000000000000000000000000000000000000000.binpb`. -The region manifest is updated atomically in the following cases: +#### Region Manifest Transaction + +The following transactions are available against a region manifest: -| Trigger | Fields Updated | Details | -|---------|----------------|---------| -| [Initialization & Recovery](#initialization--recovery) | `writer_epoch` | Incremented when writer claims the region | -| [MemTable Flush](#memtable-flush) | `replay_after_wal_id`, `wal_id_last_seen`, `current_generation`, `flushed_generations` | After flushing MemTable to storage | -| [MemWAL Index Builder](#memwal-index-builder) | `wal_id_last_seen` | Periodically scans WAL entries and updates hint | -| [Garbage Collector](#garbage-collector) | `flushed_generations` | Removes entries for deleted flushed MemTables | +| Transaction | Fields Updated | Details | +|-------------|----------------|---------| +| ClaimRegion | `writer_epoch` | Incremented when writer claims the region | +| FlushMemTable | `replay_after_wal_entry_position`, `wal_entry_position_last_seen`, `current_generation`, `flushed_generations` | Update all the fields atomically to mark the successful flushing of a MemTable to storage | +| ReportLastSeenWalEntryPosition | `wal_entry_position_last_seen` | Update the last seen WAL entry position | +| CleanupFlushedGeneration | `flushed_generations` | Removes entries for flushed MemTables that are no longer in use | !!!note WAL flush does **not** update the manifest to keep the hot write path fast. diff --git a/rust/lance/src/dataset/mem_wal.rs b/rust/lance/src/dataset/mem_wal.rs index 342bd4ddf2c..8eaef94628e 100644 --- a/rust/lance/src/dataset/mem_wal.rs +++ b/rust/lance/src/dataset/mem_wal.rs @@ -33,17 +33,22 @@ //! monotonically increasing writer epochs in the region manifest. mod api; +mod batch_store; mod config; mod dispatcher; mod epoch; +mod indexes; +mod ivfpq_store; mod manifest; -pub mod read; +pub mod memtable; +pub mod scanner; mod util; +mod watchable_cell; pub mod write; pub use api::{DatasetMemWalExt, MemWalConfig}; pub use config::RegionWriterConfig; pub use epoch::EpochGuard; pub use manifest::RegionManifestStore; -pub use read::MemTableScanner; +pub use scanner::MemTableScanner; pub use write::RegionWriter; diff --git a/rust/lance/src/dataset/mem_wal/write/batch_store.rs b/rust/lance/src/dataset/mem_wal/batch_store.rs similarity index 78% rename from rust/lance/src/dataset/mem_wal/write/batch_store.rs rename to rust/lance/src/dataset/mem_wal/batch_store.rs index 0e84d86a773..91e51a4a048 100644 --- a/rust/lance/src/dataset/mem_wal/write/batch_store.rs +++ b/rust/lance/src/dataset/mem_wal/batch_store.rs @@ -41,7 +41,7 @@ use std::cell::UnsafeCell; use std::mem::MaybeUninit; -use std::sync::atomic::{AtomicU64, AtomicUsize, Ordering}; +use std::sync::atomic::{AtomicUsize, Ordering}; use arrow_array::RecordBatch; @@ -50,8 +50,6 @@ use arrow_array::RecordBatch; pub struct StoredBatch { /// The Arrow RecordBatch data. pub data: RecordBatch, - /// MVCC sequence number (0 = not tracked, always visible). - pub seq: u64, /// Number of rows in this batch (cached for quick access). pub num_rows: usize, /// Row offset in the MemTable (cumulative rows before this batch). @@ -60,11 +58,10 @@ pub struct StoredBatch { impl StoredBatch { /// Create a new StoredBatch. - pub fn new(data: RecordBatch, seq: u64, row_offset: u64) -> Self { + pub fn new(data: RecordBatch, row_offset: u64) -> Self { let num_rows = data.num_rows(); Self { data, - seq, num_rows, row_offset, } @@ -116,18 +113,16 @@ pub struct LockFreeBatchStore { /// Total capacity (fixed at creation). capacity: usize, - /// Maximum sequence number seen. - max_seq: AtomicU64, - /// Total row count across all committed batches. total_rows: AtomicUsize, /// Estimated size in bytes (for flush threshold). estimated_bytes: AtomicUsize, - /// WAL flush watermark: batches [0, wal_flushed_batch_id) have been flushed to WAL. + /// WAL flush watermark: the last batch ID that has been flushed to WAL (inclusive). + /// Uses usize::MAX as sentinel for "nothing flushed yet". /// This is per-memtable tracking, not global. - wal_flushed_batch_id: AtomicUsize, + max_flushed_batch_position: AtomicUsize, } // SAFETY: Safe to share across threads because: @@ -162,10 +157,9 @@ impl LockFreeBatchStore { slots: slots.into_boxed_slice(), committed_len: AtomicUsize::new(0), capacity, - max_seq: AtomicU64::new(0), total_rows: AtomicUsize::new(0), estimated_bytes: AtomicUsize::new(0), - wal_flushed_batch_id: AtomicUsize::new(0), + max_flushed_batch_position: AtomicUsize::new(usize::MAX), // Nothing flushed yet } } @@ -213,9 +207,9 @@ impl LockFreeBatchStore { /// /// # Returns /// - /// - `Ok((batch_id, row_offset, estimated_size))` - The index, row offset, and size of the appended batch + /// - `Ok((batch_position, row_offset, estimated_size))` - The index, row offset, and size of the appended batch /// - `Err(StoreFull)` - The store is at capacity, needs flush - pub fn append(&self, batch: RecordBatch, seq: u64) -> Result<(usize, u64, usize), StoreFull> { + pub fn append(&self, batch: RecordBatch) -> Result<(usize, u64, usize), StoreFull> { // Load current length (Relaxed is fine - we're the only writer) let idx = self.committed_len.load(Ordering::Relaxed); @@ -229,7 +223,7 @@ impl LockFreeBatchStore { // Row offset is the total rows BEFORE this batch let row_offset = self.total_rows.load(Ordering::Relaxed) as u64; - let stored = StoredBatch::new(batch, seq, row_offset); + let stored = StoredBatch::new(batch, row_offset); // SAFETY: // 1. idx < capacity, so slot exists @@ -241,7 +235,6 @@ impl LockFreeBatchStore { } // Update counters (Relaxed - just tracking, not synchronization) - self.max_seq.fetch_max(seq, Ordering::Relaxed); self.total_rows.fetch_add(num_rows, Ordering::Relaxed); self.estimated_bytes .fetch_add(estimated_size, Ordering::Relaxed); @@ -280,10 +273,18 @@ impl LockFreeBatchStore { self.len() == 0 } - /// Get the maximum sequence number. + /// Get the maximum buffered batch position (inclusive). + /// + /// Returns `None` if no batches have been buffered. + /// Returns `Some(len - 1)` otherwise, which is the position of the last buffered batch. #[inline] - pub fn max_sequence(&self) -> u64 { - self.max_seq.load(Ordering::Relaxed) + pub fn max_buffered_batch_position(&self) -> Option { + let len = self.len(); + if len == 0 { + None + } else { + Some(len - 1) + } } /// Get total row count. @@ -302,28 +303,45 @@ impl LockFreeBatchStore { // WAL Flush Tracking API // ========================================================================= - /// Get the WAL flush watermark (batches [0, watermark) have been WAL-flushed). + /// Get the WAL flush watermark (the last batch ID that was flushed, inclusive). + /// Returns None if nothing has been flushed yet. #[inline] - pub fn wal_flushed_batch_id(&self) -> usize { - self.wal_flushed_batch_id.load(Ordering::Acquire) + pub fn max_flushed_batch_position(&self) -> Option { + let watermark = self.max_flushed_batch_position.load(Ordering::Acquire); + if watermark == usize::MAX { + None + } else { + Some(watermark) + } } /// Update the WAL flush watermark after successful WAL flush. /// /// # Arguments /// - /// * `batch_id` - The new watermark (exclusive upper bound) + /// * `batch_position` - The last batch ID that was flushed (inclusive) #[inline] - pub fn set_wal_flushed_batch_id(&self, batch_id: usize) { - self.wal_flushed_batch_id.store(batch_id, Ordering::Release); + pub fn set_max_flushed_batch_position(&self, batch_position: usize) { + debug_assert!( + batch_position != usize::MAX, + "batch_position cannot be usize::MAX (reserved as sentinel)" + ); + self.max_flushed_batch_position + .store(batch_position, Ordering::Release); } /// Get the number of batches pending WAL flush. #[inline] pub fn pending_wal_flush_count(&self) -> usize { let committed = self.committed_len.load(Ordering::Acquire); - let flushed = self.wal_flushed_batch_id.load(Ordering::Acquire); - committed.saturating_sub(flushed) + let watermark = self.max_flushed_batch_position.load(Ordering::Acquire); + if watermark == usize::MAX { + // Nothing flushed yet, all committed batches are pending + committed + } else { + // Batches [0, watermark] are flushed, so pending = committed - (watermark + 1) + committed.saturating_sub(watermark + 1) + } } /// Check if all committed batches have been WAL-flushed. @@ -337,9 +355,14 @@ impl LockFreeBatchStore { #[inline] pub fn pending_wal_flush_range(&self) -> Option<(usize, usize)> { let committed = self.committed_len.load(Ordering::Acquire); - let flushed = self.wal_flushed_batch_id.load(Ordering::Acquire); - if committed > flushed { - Some((flushed, committed)) + let watermark = self.max_flushed_batch_position.load(Ordering::Acquire); + let start = if watermark == usize::MAX { + 0 + } else { + watermark + 1 + }; + if committed > start { + Some((start, committed)) } else { None } @@ -381,12 +404,6 @@ impl LockFreeBatchStore { self.get(index).map(|s| &s.data) } - /// Get the sequence number at an index. - #[inline] - pub fn get_sequence(&self, index: usize) -> Option { - self.get(index).map(|s| s.seq) - } - /// Iterate over all committed batches. /// /// The iterator captures a snapshot of the committed length at creation @@ -411,46 +428,39 @@ impl LockFreeBatchStore { } // ========================================================================= - // MVCC Visibility API + // Visibility API // ========================================================================= - /// Get batches visible at a specific sequence number (MVCC read). + /// Get batches visible up to a specific batch position (inclusive). /// - /// A batch is visible if: - /// - Its sequence is 0 (legacy, always visible), OR - /// - Its sequence <= visibility_seq - pub fn visible_batches(&self, visibility_seq: u64) -> Vec<&StoredBatch> { - self.iter() - .filter(|b| b.seq == 0 || b.seq <= visibility_seq) - .collect() + /// A batch at position `i` is visible if `i <= max_visible_batch_position`. + pub fn visible_batches(&self, max_visible_batch_position: usize) -> Vec<&StoredBatch> { + let len = self.committed_len.load(Ordering::Acquire); + let end = (max_visible_batch_position + 1).min(len); + (0..end).filter_map(|i| self.get(i)).collect() } - /// Get batch IDs (indices) visible at a specific sequence number. - pub fn visible_batch_ids(&self, visibility_seq: u64) -> Vec { + /// Get batch positions visible up to a specific batch position (inclusive). + pub fn max_visible_batch_positions(&self, max_visible_batch_position: usize) -> Vec { let len = self.committed_len.load(Ordering::Acquire); - (0..len) - .filter(|&i| { - // SAFETY: i < len, same as get() - let batch = unsafe { - let slot_ptr = self.slots[i].get(); - (*slot_ptr).assume_init_ref() - }; - batch.seq == 0 || batch.seq <= visibility_seq - }) - .collect() + let end = (max_visible_batch_position + 1).min(len); + (0..end).collect() } - /// Check if a specific batch is visible at a sequence number. + /// Check if a specific batch is visible at a given visibility position. #[inline] - pub fn is_batch_visible(&self, batch_id: usize, visibility_seq: u64) -> bool { - self.get(batch_id) - .map(|b| b.seq == 0 || b.seq <= visibility_seq) - .unwrap_or(false) + pub fn is_batch_visible( + &self, + batch_position: usize, + max_visible_batch_position: usize, + ) -> bool { + let len = self.committed_len.load(Ordering::Acquire); + batch_position < len && batch_position <= max_visible_batch_position } /// Get visible RecordBatches (clones the data). - pub fn visible_record_batches(&self, visibility_seq: u64) -> Vec { - self.visible_batches(visibility_seq) + pub fn visible_record_batches(&self, max_visible_batch_position: usize) -> Vec { + self.visible_batches(max_visible_batch_position) .into_iter() .map(|b| b.data.clone()) .collect() @@ -557,13 +567,12 @@ mod tests { let store = LockFreeBatchStore::with_capacity(10); let batch = create_test_batch(100); - let (id, row_offset, _size) = store.append(batch, 1).unwrap(); + let (id, row_offset, _size) = store.append(batch).unwrap(); assert_eq!(id, 0); assert_eq!(row_offset, 0); // First batch starts at row 0 assert_eq!(store.len(), 1); assert!(!store.is_empty()); assert_eq!(store.total_rows(), 100); - assert_eq!(store.max_sequence(), 1); } #[test] @@ -574,7 +583,7 @@ mod tests { for i in 0..5 { let num_rows = 10 * (i + 1); let batch = create_test_batch(num_rows); - let (id, row_offset, _size) = store.append(batch, (i + 1) as u64).unwrap(); + let (id, row_offset, _size) = store.append(batch).unwrap(); assert_eq!(id, i); assert_eq!(row_offset, expected_row_offset); expected_row_offset += num_rows as u64; @@ -582,21 +591,20 @@ mod tests { assert_eq!(store.len(), 5); assert_eq!(store.total_rows(), 10 + 20 + 30 + 40 + 50); - assert_eq!(store.max_sequence(), 5); } #[test] fn test_capacity_limit() { let store = LockFreeBatchStore::with_capacity(3); - store.append(create_test_batch(10), 1).unwrap(); - store.append(create_test_batch(10), 2).unwrap(); - store.append(create_test_batch(10), 3).unwrap(); + store.append(create_test_batch(10)).unwrap(); + store.append(create_test_batch(10)).unwrap(); + store.append(create_test_batch(10)).unwrap(); assert!(store.is_full()); assert_eq!(store.remaining_capacity(), 0); - let result = store.append(create_test_batch(10), 4); + let result = store.append(create_test_batch(10)); assert!(result.is_err()); assert_eq!(result.unwrap_err(), StoreFull); } @@ -608,16 +616,14 @@ mod tests { let batch1 = create_test_batch(10); let batch2 = create_test_batch(20); - store.append(batch1, 1).unwrap(); - store.append(batch2, 2).unwrap(); + store.append(batch1).unwrap(); + store.append(batch2).unwrap(); let retrieved1 = store.get(0).unwrap(); - assert_eq!(retrieved1.seq, 1); assert_eq!(retrieved1.num_rows, 10); assert_eq!(retrieved1.row_offset, 0); let retrieved2 = store.get(1).unwrap(); - assert_eq!(retrieved2.seq, 2); assert_eq!(retrieved2.num_rows, 20); assert_eq!(retrieved2.row_offset, 10); // After first batch @@ -630,69 +636,57 @@ mod tests { fn test_iter() { let store = LockFreeBatchStore::with_capacity(10); - for i in 0..5 { - store.append(create_test_batch(10), (i + 1) as u64).unwrap(); + for _ in 0..5 { + store.append(create_test_batch(10)).unwrap(); } let batches: Vec<_> = store.iter().collect(); assert_eq!(batches.len(), 5); - - for (i, batch) in batches.iter().enumerate() { - assert_eq!(batch.seq, (i + 1) as u64); - } } #[test] fn test_visibility_filtering() { let store = LockFreeBatchStore::with_capacity(10); - store.append(create_test_batch(10), 1).unwrap(); - store.append(create_test_batch(10), 2).unwrap(); - store.append(create_test_batch(10), 3).unwrap(); - store.append(create_test_batch(10), 4).unwrap(); - store.append(create_test_batch(10), 5).unwrap(); + store.append(create_test_batch(10)).unwrap(); // position 0 + store.append(create_test_batch(10)).unwrap(); // position 1 + store.append(create_test_batch(10)).unwrap(); // position 2 + store.append(create_test_batch(10)).unwrap(); // position 3 + store.append(create_test_batch(10)).unwrap(); // position 4 - // At seq 3, should see batches with seq 1, 2, 3 - let visible = store.visible_batch_ids(3); + // max_visible_batch_position=2 means positions 0, 1, 2 are visible + let visible = store.max_visible_batch_positions(2); assert_eq!(visible, vec![0, 1, 2]); - // At seq 5, should see all - let visible = store.visible_batch_ids(5); + // max_visible_batch_position=4 means all visible + let visible = store.max_visible_batch_positions(4); assert_eq!(visible, vec![0, 1, 2, 3, 4]); - // At seq 0, should see none (unless seq=0 which means always visible) - let visible = store.visible_batch_ids(0); - assert!(visible.is_empty()); - } - - #[test] - fn test_visibility_with_seq_zero() { - let store = LockFreeBatchStore::with_capacity(10); - - // seq=0 means always visible (legacy compatibility) - store.append(create_test_batch(10), 0).unwrap(); - store.append(create_test_batch(10), 2).unwrap(); - store.append(create_test_batch(10), 3).unwrap(); - - // At seq 1, should see batch 0 (seq=0, always visible) - let visible = store.visible_batch_ids(1); + // max_visible_batch_position=0 means only position 0 visible + let visible = store.max_visible_batch_positions(0); assert_eq!(visible, vec![0]); - - // At seq 2, should see batch 0 and 1 - let visible = store.visible_batch_ids(2); - assert_eq!(visible, vec![0, 1]); } #[test] fn test_is_batch_visible() { let store = LockFreeBatchStore::with_capacity(10); - store.append(create_test_batch(10), 5).unwrap(); + store.append(create_test_batch(10)).unwrap(); // position 0 + store.append(create_test_batch(10)).unwrap(); // position 1 + store.append(create_test_batch(10)).unwrap(); // position 2 + + // Batch at position 0 is visible when max_visible_batch_position >= 0 + assert!(store.is_batch_visible(0, 0)); + assert!(store.is_batch_visible(0, 1)); + assert!(store.is_batch_visible(0, 2)); + + // Batch at position 2 is only visible when max_visible_batch_position >= 2 + assert!(!store.is_batch_visible(2, 1)); + assert!(store.is_batch_visible(2, 2)); + assert!(store.is_batch_visible(2, 3)); - assert!(!store.is_batch_visible(0, 4)); // seq 5 > 4 - assert!(store.is_batch_visible(0, 5)); // seq 5 <= 5 - assert!(store.is_batch_visible(0, 6)); // seq 5 <= 6 - assert!(!store.is_batch_visible(1, 10)); // batch 1 doesn't exist + // Batch 3 doesn't exist + assert!(!store.is_batch_visible(3, 10)); } #[test] @@ -717,8 +711,8 @@ mod tests { let batch1 = create_test_batch(10); let batch2 = create_test_batch(20); - store.append(batch1, 1).unwrap(); - store.append(batch2, 2).unwrap(); + store.append(batch1).unwrap(); + store.append(batch2).unwrap(); let vec = store.to_vec(); assert_eq!(vec.len(), 2); @@ -734,8 +728,8 @@ mod tests { let store = Arc::new(LockFreeBatchStore::with_capacity(100)); // Pre-populate with some batches - for i in 0..50 { - store.append(create_test_batch(10), (i + 1) as u64).unwrap(); + for _ in 0..50 { + store.append(create_test_batch(10)).unwrap(); } // Spawn multiple reader threads @@ -782,10 +776,8 @@ mod tests { let writer_store = store.clone(); let writer_done = done.clone(); let writer = thread::spawn(move || { - for i in 0..100 { - writer_store - .append(create_test_batch(10), (i + 1) as u64) - .unwrap(); + for _ in 0..100 { + writer_store.append(create_test_batch(10)).unwrap(); thread::yield_now(); } writer_done.store(true, Ordering::Release); diff --git a/rust/lance/src/dataset/mem_wal/config.rs b/rust/lance/src/dataset/mem_wal/config.rs index 7f333b649b2..cf032deb84d 100644 --- a/rust/lance/src/dataset/mem_wal/config.rs +++ b/rust/lance/src/dataset/mem_wal/config.rs @@ -44,7 +44,7 @@ pub struct RegionWriterConfig { /// Maximum WAL buffer size in bytes before triggering a flush. /// /// This is a soft threshold - write batches are atomic and won't be split. - /// WAL flushes when buffer exceeds this size OR when `max_flush_interval` elapses. + /// WAL flushes when buffer exceeds this size OR when `max_wal_flush_interval` elapses. /// Default: 10MB pub max_wal_buffer_size: usize, @@ -54,11 +54,11 @@ pub struct RegionWriterConfig { /// hasn't been reached. This ensures bounded data loss window in non-durable mode /// and prevents accumulating too much data before flushing to object storage. /// Default: 100ms - pub max_flush_interval: Option, + pub max_wal_flush_interval: Option, /// Maximum MemTable size in bytes before triggering a flush to storage. /// - /// MemTable size is checked every `max_flush_interval` (during WAL flush ticks). + /// MemTable size is checked every `max_wal_flush_interval` (during WAL flush ticks). /// Default: 256MB pub max_memtable_size: usize, @@ -93,20 +93,12 @@ pub struct RegionWriterConfig { /// Maximum unflushed bytes before applying backpressure. /// - /// When total unflushed data (WAL buffer + immutable memtables) exceeds this, + /// When total unflushed data (active memtable + frozen memtables) exceeds this, /// new writes will block until some data is flushed to storage. /// This prevents unbounded memory growth during write spikes. /// /// Default: 1GB - pub max_unflushed_bytes: usize, - - /// Maximum number of immutable memtables waiting to be flushed. - /// - /// When this limit is reached, new writes will block until some memtables - /// are flushed to storage. This creates backpressure from the flush pipeline. - /// - /// Default: 4 - pub max_immutable_memtables: usize, + pub max_unflushed_memtable_bytes: usize, /// Interval for logging warnings when writes are blocked by backpressure. /// @@ -152,14 +144,13 @@ impl Default for RegionWriterConfig { durable_write: true, sync_indexed_write: true, max_wal_buffer_size: 10 * 1024 * 1024, // 10MB - max_flush_interval: Some(Duration::from_millis(100)), // 100ms + max_wal_flush_interval: Some(Duration::from_millis(100)), // 100ms max_memtable_size: 256 * 1024 * 1024, // 256MB max_memtable_rows: 100_000, // 100k rows max_memtable_batches: 8_000, // 8k batches ivf_index_partition_capacity_safety_factor: 8, manifest_scan_batch_size: 2, - max_unflushed_bytes: 1024 * 1024 * 1024, // 1GB - max_immutable_memtables: 4, + max_unflushed_memtable_bytes: 1024 * 1024 * 1024, // 1GB backpressure_log_interval: Duration::from_secs(30), async_index_buffer_rows: 10_000, async_index_interval: Duration::from_secs(1), @@ -202,8 +193,8 @@ impl RegionWriterConfig { } /// Set maximum flush interval. - pub fn with_max_flush_interval(mut self, interval: Duration) -> Self { - self.max_flush_interval = Some(interval); + pub fn with_max_wal_flush_interval(mut self, interval: Duration) -> Self { + self.max_wal_flush_interval = Some(interval); self } @@ -238,14 +229,8 @@ impl RegionWriterConfig { } /// Set maximum unflushed bytes for backpressure. - pub fn with_max_unflushed_bytes(mut self, size: usize) -> Self { - self.max_unflushed_bytes = size; - self - } - - /// Set maximum immutable memtables for backpressure. - pub fn with_max_immutable_memtables(mut self, count: usize) -> Self { - self.max_immutable_memtables = count; + pub fn with_max_unflushed_memtable_bytes(mut self, size: usize) -> Self { + self.max_unflushed_memtable_bytes = size; self } diff --git a/rust/lance/src/dataset/mem_wal/dispatcher.rs b/rust/lance/src/dataset/mem_wal/dispatcher.rs index fd515fa0d0f..c869a2946f3 100644 --- a/rust/lance/src/dataset/mem_wal/dispatcher.rs +++ b/rust/lance/src/dataset/mem_wal/dispatcher.rs @@ -1,30 +1,7 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-FileCopyrightText: Copyright The Lance Authors -#![allow(clippy::print_stderr)] - //! Background task dispatcher with message-driven event handling. -//! -//! ## Example -//! -//! ```ignore -//! enum MyMessage { -//! DoWork(String), -//! Shutdown, -//! } -//! -//! struct MyHandler; -//! -//! #[async_trait] -//! impl MessageHandler for MyHandler { -//! async fn handle(&mut self, message: MyMessage) -> Result<()> { -//! match message { -//! MyMessage::DoWork(data) => { /* work */ Ok(()) } -//! MyMessage::Shutdown => Ok(()), -//! } -//! } -//! } -//! ``` use std::fmt::Debug; use std::sync::Arc; @@ -40,12 +17,6 @@ use tokio::time::{interval_at, Instant, Interval}; use tokio_util::sync::CancellationToken; use tracing::{debug, error, info, warn}; -/// Get a timestamp for debug logging (HH:MM:SS.mmm format). -/// Uses wall clock time so all threads share the same time reference. -fn log_ts() -> String { - chrono::Local::now().format("%H:%M:%S%.3f").to_string() -} - /// Factory function for creating ticker messages. pub type MessageFactory = Box T + Send + Sync>; @@ -103,13 +74,6 @@ impl TaskDispatcher { }) .collect(); - eprintln!( - "[{}][DISPATCHER] Task '{}' started, has {} tickers", - log_ts(), - self.name, - ticker_intervals.len() - ); - let result = loop { // Handle tickers based on whether we have any if ticker_intervals.is_empty() { @@ -127,12 +91,6 @@ impl TaskDispatcher { msg = self.rx.recv() => { match msg { Some(message) => { - debug!( - "[{}][DISPATCHER] Task '{}' received message: {:?}", - log_ts(), - self.name, - message - ); if let Err(e) = self.handler.handle(message).await { error!("Task '{}' error handling message: {}", self.name, e); break Err(e); @@ -147,24 +105,9 @@ impl TaskDispatcher { } } else { // With tickers, give ticker higher priority than messages to prevent starvation. - // Without this, continuous message streams would prevent ticks from ever firing. let first_ticker = ticker_intervals.first_mut().unwrap(); let first_interval = &mut first_ticker.0; - // Debug: trace each select iteration for the wal_flusher - if self.name == "wal_flusher" { - use std::sync::atomic::{AtomicU64, Ordering}; - static ITER_COUNT: AtomicU64 = AtomicU64::new(0); - let iter = ITER_COUNT.fetch_add(1, Ordering::Relaxed); - if iter < 10 || iter % 100 == 0 { - debug!( - "[{}][DISPATCHER] wal_flusher select iteration {}", - log_ts(), - iter - ); - } - } - select! { biased; @@ -176,13 +119,7 @@ impl TaskDispatcher { // Priority 2: Ticker event - must be higher than messages to prevent starvation _ = first_interval.tick() => { - // Generate message from the first ticker let message = (ticker_intervals[0].1)(); - debug!( - "[{}][DISPATCHER] Task '{}' ticker fired", - log_ts(), - self.name - ); if let Err(e) = self.handler.handle(message).await { error!("Task '{}' error handling ticker message: {}", self.name, e); break Err(e); @@ -193,11 +130,6 @@ impl TaskDispatcher { msg = self.rx.recv() => { match msg { Some(message) => { - debug!( - "[{}][DISPATCHER] Task '{}' received message (not tick)", - log_ts(), - self.name - ); if let Err(e) = self.handler.handle(message).await { error!("Task '{}' error handling message: {}", self.name, e); break Err(e); @@ -252,7 +184,6 @@ impl TaskExecutor { handler: Box>, rx: mpsc::UnboundedReceiver, ) -> Result<()> { - eprintln!("[{}][EXECUTOR] Adding handler task '{}'", log_ts(), name); let dispatcher = TaskDispatcher { handler, rx, @@ -260,15 +191,7 @@ impl TaskExecutor { name: name.clone(), }; - let task_name = name.clone(); - let handle = tokio::spawn(async move { - debug!( - "[{}][EXECUTOR] Task '{}' spawned and starting", - log_ts(), - task_name - ); - dispatcher.run().await - }); + let handle = tokio::spawn(async move { dispatcher.run().await }); self.tasks.write().unwrap().push((name, handle)); Ok(()) diff --git a/rust/lance/src/dataset/mem_wal/write/indexes.rs b/rust/lance/src/dataset/mem_wal/indexes.rs similarity index 82% rename from rust/lance/src/dataset/mem_wal/write/indexes.rs rename to rust/lance/src/dataset/mem_wal/indexes.rs index fc43d175fb4..5d9d033f248 100644 --- a/rust/lance/src/dataset/mem_wal/write/indexes.rs +++ b/rust/lance/src/dataset/mem_wal/indexes.rs @@ -14,13 +14,10 @@ //! Other index types log a warning and are skipped. use std::collections::HashMap; -use std::sync::atomic::{AtomicU64, AtomicUsize, Ordering}; -use std::sync::Arc; -use std::time::{Duration, Instant}; +use std::sync::atomic::{AtomicUsize, Ordering}; use arrow_array::cast::AsArray; use arrow_array::{Array, FixedSizeListArray, RecordBatch, UInt8Array}; -use async_trait::async_trait; use crossbeam_skiplist::SkipMap; use datafusion::common::ScalarValue; use lance_core::datatypes::Schema as LanceSchema; @@ -36,9 +33,6 @@ use super::ivfpq_store::IvfPqPartition; use lance_linalg::distance::DistanceType; use lance_table::format::IndexMetadata; use snafu::location; -use tokio::sync::oneshot; - -use crate::dataset::mem_wal::dispatcher::MessageHandler; /// Row position in MemTable. /// @@ -48,74 +42,90 @@ pub type RowPosition = u64; /// Index coverage information for split plan creation. /// -/// Tracks the maximum indexed sequence number for each index, +/// Tracks the maximum indexed batch position for each index, /// used to determine which data is covered by indexes. #[derive(Debug, Clone, Default)] pub struct IndexCoverageInfo { - /// BTree/scalar index coverage: index name -> max_indexed_seq - pub btree_coverage: HashMap, - /// IVF-PQ vector index coverage: index name -> max_indexed_seq - pub ivfpq_coverage: HashMap, - /// FTS index coverage: index name -> max_indexed_seq - pub fts_coverage: HashMap, + /// BTree/scalar index coverage: index name -> max_indexed_batch_position + pub btree_coverage: HashMap, + /// IVF-PQ vector index coverage: index name -> max_indexed_batch_position + pub ivfpq_coverage: HashMap, + /// FTS index coverage: index name -> max_indexed_batch_position + pub fts_coverage: HashMap, } /// Result of checking index coverage for a query. #[derive(Debug, Clone, PartialEq, Eq)] pub enum CoverageResult { - /// All data is covered by the index (max_indexed_seq >= visibility_seq) + /// All data is covered by the index (max_indexed_batch_position >= max_visible_batch_position) Full, - /// Part of the data is covered (max_indexed_seq < visibility_seq) + /// Part of the data is covered (max_indexed_batch_position < max_visible_batch_position) Partial { - /// Maximum sequence number that is indexed - max_indexed_seq: u64, + /// Maximum batch position that is indexed + max_indexed_batch_position: usize, }, - /// No data is covered by the index (max_indexed_seq == 0 or no index) + /// No data is covered by the index (max_indexed_batch_position == 0 or no index) None, } impl IndexCoverageInfo { /// Check coverage for a BTree/scalar index by name. - pub fn check_btree_coverage(&self, name: &str, visibility_seq: u64) -> CoverageResult { - self.check_coverage(self.btree_coverage.get(name), visibility_seq) + pub fn check_btree_coverage( + &self, + name: &str, + max_visible_batch_position: usize, + ) -> CoverageResult { + self.check_coverage(self.btree_coverage.get(name), max_visible_batch_position) } /// Check coverage for an IVF-PQ vector index by name. - pub fn check_ivfpq_coverage(&self, name: &str, visibility_seq: u64) -> CoverageResult { - self.check_coverage(self.ivfpq_coverage.get(name), visibility_seq) + pub fn check_ivfpq_coverage( + &self, + name: &str, + max_visible_batch_position: usize, + ) -> CoverageResult { + self.check_coverage(self.ivfpq_coverage.get(name), max_visible_batch_position) } /// Check coverage for an FTS index by name. - pub fn check_fts_coverage(&self, name: &str, visibility_seq: u64) -> CoverageResult { - self.check_coverage(self.fts_coverage.get(name), visibility_seq) + pub fn check_fts_coverage( + &self, + name: &str, + max_visible_batch_position: usize, + ) -> CoverageResult { + self.check_coverage(self.fts_coverage.get(name), max_visible_batch_position) } - /// Check coverage given a max_indexed_seq value. - fn check_coverage(&self, max_indexed_seq: Option<&u64>, visibility_seq: u64) -> CoverageResult { - match max_indexed_seq { + /// Check coverage given a max_indexed_batch_position value. + fn check_coverage( + &self, + max_indexed_batch_position: Option<&usize>, + max_visible_batch_position: usize, + ) -> CoverageResult { + match max_indexed_batch_position { None | Some(&0) => CoverageResult::None, - Some(&seq) if seq >= visibility_seq => CoverageResult::Full, - Some(&seq) => CoverageResult::Partial { - max_indexed_seq: seq, + Some(&pos) if pos >= max_visible_batch_position => CoverageResult::Full, + Some(&pos) => CoverageResult::Partial { + max_indexed_batch_position: pos, }, } } /// Get the minimum coverage across all BTree indexes. /// - /// Returns the minimum max_indexed_seq, useful when multiple indexes + /// Returns the minimum max_indexed_batch_position, useful when multiple indexes /// need to cover the same data. - pub fn min_btree_coverage(&self) -> u64 { + pub fn min_btree_coverage(&self) -> usize { self.btree_coverage.values().copied().min().unwrap_or(0) } /// Get the minimum coverage across all IVF-PQ indexes. - pub fn min_ivfpq_coverage(&self) -> u64 { + pub fn min_ivfpq_coverage(&self) -> usize { self.ivfpq_coverage.values().copied().min().unwrap_or(0) } /// Get the minimum coverage across all FTS indexes. - pub fn min_fts_coverage(&self) -> u64 { + pub fn min_fts_coverage(&self) -> usize { self.fts_coverage.values().copied().min().unwrap_or(0) } } @@ -157,9 +167,9 @@ pub struct BTreeMemIndex { lookup: SkipMap, /// Column name this index is built on. column_name: String, - /// Maximum sequence number that has been indexed. + /// Maximum batch position that has been indexed. /// Used for index coverage tracking in split plans. - max_indexed_seq: AtomicU64, + max_indexed_batch_position: AtomicUsize, } impl Default for BTreeMemIndex { @@ -167,7 +177,7 @@ impl Default for BTreeMemIndex { Self { lookup: SkipMap::new(), column_name: String::new(), - max_indexed_seq: AtomicU64::new(0), + max_indexed_batch_position: AtomicUsize::new(0), } } } @@ -178,28 +188,28 @@ impl BTreeMemIndex { Self { lookup: SkipMap::new(), column_name, - max_indexed_seq: AtomicU64::new(0), + max_indexed_batch_position: AtomicUsize::new(0), } } - /// Get the maximum sequence number that has been indexed. + /// Get the maximum batch position that has been indexed. /// - /// Used for index coverage tracking. Rows with seq <= this value + /// Used for index coverage tracking. Rows with batch_position <= this value /// are covered by the index. - pub fn max_indexed_seq(&self) -> u64 { - self.max_indexed_seq.load(Ordering::Acquire) + pub fn max_indexed_batch_position(&self) -> usize { + self.max_indexed_batch_position.load(Ordering::Acquire) } - /// Update the maximum indexed sequence number. + /// Update the maximum indexed batch position. /// /// Only updates if the new value is greater than the current value. /// Uses compare-and-swap to handle concurrent updates. - pub fn update_max_indexed_seq(&self, seq: u64) { - let mut current = self.max_indexed_seq.load(Ordering::Acquire); - while seq > current { - match self.max_indexed_seq.compare_exchange_weak( + pub fn update_max_indexed_batch_position(&self, batch_pos: usize) { + let mut current = self.max_indexed_batch_position.load(Ordering::Acquire); + while batch_pos > current { + match self.max_indexed_batch_position.compare_exchange_weak( current, - seq, + batch_pos, Ordering::Release, Ordering::Acquire, ) { @@ -211,15 +221,15 @@ impl BTreeMemIndex { /// Insert rows from a batch into the index. pub fn insert(&self, batch: &RecordBatch, row_offset: u64) -> Result<()> { - self.insert_with_seq(batch, row_offset, None) + self.insert_with_batch_position(batch, row_offset, None) } - /// Insert rows from a batch into the index with sequence tracking. - pub fn insert_with_seq( + /// Insert rows from a batch into the index with batch position tracking. + pub fn insert_with_batch_position( &self, batch: &RecordBatch, row_offset: u64, - seq: Option, + batch_position: Option, ) -> Result<()> { let col_idx = batch .schema() @@ -244,9 +254,9 @@ impl BTreeMemIndex { self.lookup.insert(key, ()); } - // Update max_indexed_seq if sequence was provided - if let Some(s) = seq { - self.update_max_indexed_seq(s); + // Update max_indexed_batch_position if provided + if let Some(pos) = batch_position { + self.update_max_indexed_batch_position(pos); } Ok(()) @@ -424,9 +434,9 @@ pub struct IvfPqMemIndex { num_partitions: usize, /// PQ code length per vector (num_sub_vectors for 8-bit, num_sub_vectors/2 for 4-bit). code_len: usize, - /// Maximum sequence number that has been indexed. + /// Maximum batch position that has been indexed. /// Used for index coverage tracking in split plans. - max_indexed_seq: AtomicU64, + max_indexed_batch_position: AtomicUsize, } /// Default partition capacity when not specified. @@ -497,28 +507,28 @@ impl IvfPqMemIndex { distance_type, num_partitions, code_len, - max_indexed_seq: AtomicU64::new(0), + max_indexed_batch_position: AtomicUsize::new(0), } } - /// Get the maximum sequence number that has been indexed. + /// Get the maximum batch position that has been indexed. /// - /// Used for index coverage tracking. Rows with seq <= this value + /// Used for index coverage tracking. Rows with batch_position <= this value /// are covered by the index. - pub fn max_indexed_seq(&self) -> u64 { - self.max_indexed_seq.load(Ordering::Acquire) + pub fn max_indexed_batch_position(&self) -> usize { + self.max_indexed_batch_position.load(Ordering::Acquire) } - /// Update the maximum indexed sequence number. + /// Update the maximum indexed batch position. /// /// Only updates if the new value is greater than the current value. /// Uses compare-and-swap to handle concurrent updates. - pub fn update_max_indexed_seq(&self, seq: u64) { - let mut current = self.max_indexed_seq.load(Ordering::Acquire); - while seq > current { - match self.max_indexed_seq.compare_exchange_weak( + pub fn update_max_indexed_batch_position(&self, batch_pos: usize) { + let mut current = self.max_indexed_batch_position.load(Ordering::Acquire); + while batch_pos > current { + match self.max_indexed_batch_position.compare_exchange_weak( current, - seq, + batch_pos, Ordering::Release, Ordering::Acquire, ) { @@ -554,18 +564,18 @@ impl IvfPqMemIndex { /// Insert vectors from a batch into the index. pub fn insert(&self, batch: &RecordBatch, row_offset: u64) -> Result<()> { - self.insert_with_seq(batch, row_offset, None) + self.insert_with_batch_position(batch, row_offset, None) } /// Insert vectors from a batch into the index with sequence tracking. /// /// For better performance with multiple batches, prefer `insert_batches()` /// which enables cross-batch vectorization. - pub fn insert_with_seq( + pub fn insert_with_batch_position( &self, batch: &RecordBatch, row_offset: u64, - seq: Option, + batch_position: Option, ) -> Result<()> { let col_idx = batch .schema() @@ -574,9 +584,9 @@ impl IvfPqMemIndex { let Some(col_idx) = col_idx else { // Column not in this batch, skip - // Still update max_indexed_seq if provided - if let Some(s) = seq { - self.update_max_indexed_seq(s); + // Still update max_indexed_batch_position if provided + if let Some(bp) = batch_position { + self.update_max_indexed_batch_position(bp); } return Ok(()); }; @@ -649,9 +659,9 @@ impl IvfPqMemIndex { self.vector_count .fetch_add(total_inserted, Ordering::Relaxed); - // Update max_indexed_seq if sequence was provided - if let Some(s) = seq { - self.update_max_indexed_seq(s); + // Update max_indexed_batch_position if provided + if let Some(bp) = batch_position { + self.update_max_indexed_batch_position(bp); } Ok(()) @@ -670,7 +680,7 @@ impl IvfPqMemIndex { // Collect vector arrays and track batch boundaries let mut vector_arrays: Vec<&FixedSizeListArray> = Vec::with_capacity(batches.len()); - let mut batch_infos: Vec<(u64, usize, Option)> = Vec::with_capacity(batches.len()); + let mut batch_infos: Vec<(u64, usize, Option)> = Vec::with_capacity(batches.len()); for buffered in batches { let col_idx = buffered @@ -685,14 +695,18 @@ impl IvfPqMemIndex { let num_vectors = fsl.len(); if num_vectors > 0 { vector_arrays.push(fsl); - batch_infos.push((buffered.row_offset, num_vectors, buffered.seq)); + batch_infos.push(( + buffered.row_offset, + num_vectors, + buffered.batch_position, + )); } } } - // Update max_indexed_seq even if no vectors in this batch - if let Some(s) = buffered.seq { - self.update_max_indexed_seq(s); + // Update max_indexed_batch_position even if no vectors in this batch + if let Some(bp) = buffered.batch_position { + self.update_max_indexed_batch_position(bp); } } @@ -1056,9 +1070,9 @@ pub struct FtsMemIndex { postings: SkipMap, /// Total document count. doc_count: AtomicUsize, - /// Maximum sequence number that has been indexed. + /// Maximum batch position that has been indexed. /// Used for index coverage tracking in split plans. - max_indexed_seq: AtomicU64, + max_indexed_batch_position: AtomicUsize, } impl FtsMemIndex { @@ -1068,28 +1082,28 @@ impl FtsMemIndex { column_name, postings: SkipMap::new(), doc_count: AtomicUsize::new(0), - max_indexed_seq: AtomicU64::new(0), + max_indexed_batch_position: AtomicUsize::new(0), } } - /// Get the maximum sequence number that has been indexed. + /// Get the maximum batch position that has been indexed. /// - /// Used for index coverage tracking. Rows with seq <= this value + /// Used for index coverage tracking. Rows with batch_position <= this value /// are covered by the index. - pub fn max_indexed_seq(&self) -> u64 { - self.max_indexed_seq.load(Ordering::Acquire) + pub fn max_indexed_batch_position(&self) -> usize { + self.max_indexed_batch_position.load(Ordering::Acquire) } - /// Update the maximum indexed sequence number. + /// Update the maximum indexed batch position. /// /// Only updates if the new value is greater than the current value. /// Uses compare-and-swap to handle concurrent updates. - pub fn update_max_indexed_seq(&self, seq: u64) { - let mut current = self.max_indexed_seq.load(Ordering::Acquire); - while seq > current { - match self.max_indexed_seq.compare_exchange_weak( + pub fn update_max_indexed_batch_position(&self, batch_pos: usize) { + let mut current = self.max_indexed_batch_position.load(Ordering::Acquire); + while batch_pos > current { + match self.max_indexed_batch_position.compare_exchange_weak( current, - seq, + batch_pos, Ordering::Release, Ordering::Acquire, ) { @@ -1101,15 +1115,15 @@ impl FtsMemIndex { /// Insert documents from a batch into the index using whitespace tokenization. pub fn insert(&self, batch: &RecordBatch, row_offset: u64) -> Result<()> { - self.insert_with_seq(batch, row_offset, None) + self.insert_with_batch_position(batch, row_offset, None) } - /// Insert documents from a batch into the index with sequence tracking. - pub fn insert_with_seq( + /// Insert documents from a batch into the index with batch position tracking. + pub fn insert_with_batch_position( &self, batch: &RecordBatch, row_offset: u64, - seq: Option, + batch_position: Option, ) -> Result<()> { let col_idx = batch .schema() @@ -1117,9 +1131,9 @@ impl FtsMemIndex { .map(|(idx, _)| idx); if col_idx.is_none() { - // Still update max_indexed_seq if provided - if let Some(s) = seq { - self.update_max_indexed_seq(s); + // Still update max_indexed_batch_position if provided + if let Some(bp) = batch_position { + self.update_max_indexed_batch_position(bp); } return Ok(()); } @@ -1150,9 +1164,9 @@ impl FtsMemIndex { self.doc_count.fetch_add(1, Ordering::Relaxed); } - // Update max_indexed_seq if sequence was provided - if let Some(s) = seq { - self.update_max_indexed_seq(s); + // Update max_indexed_batch_position if provided + if let Some(bp) = batch_position { + self.update_max_indexed_batch_position(bp); } Ok(()) @@ -1460,24 +1474,24 @@ impl IndexRegistry { /// Insert a batch into all indexes. pub fn insert(&self, batch: &RecordBatch, row_offset: u64) -> Result<()> { - self.insert_with_seq(batch, row_offset, None) + self.insert_with_batch_position(batch, row_offset, None) } - /// Insert a batch into all indexes with sequence tracking. - pub fn insert_with_seq( + /// Insert a batch into all indexes with batch position tracking. + pub fn insert_with_batch_position( &self, batch: &RecordBatch, row_offset: u64, - seq: Option, + batch_position: Option, ) -> Result<()> { for index in self.btree_indexes.values() { - index.insert_with_seq(batch, row_offset, seq)?; + index.insert_with_batch_position(batch, row_offset, batch_position)?; } for index in self.ivf_pq_indexes.values() { - index.insert_with_seq(batch, row_offset, seq)?; + index.insert_with_batch_position(batch, row_offset, batch_position)?; } for index in self.fts_indexes.values() { - index.insert_with_seq(batch, row_offset, seq)?; + index.insert_with_batch_position(batch, row_offset, batch_position)?; } Ok(()) } @@ -1491,7 +1505,11 @@ impl IndexRegistry { // BTree indexes: iterate batches (no cross-batch optimization benefit) for index in self.btree_indexes.values() { for buffered in batches { - index.insert_with_seq(&buffered.batch, buffered.row_offset, buffered.seq)?; + index.insert_with_batch_position( + &buffered.batch, + buffered.row_offset, + buffered.batch_position, + )?; } } @@ -1503,7 +1521,11 @@ impl IndexRegistry { // FTS indexes: iterate batches (potential future optimization) for index in self.fts_indexes.values() { for buffered in batches { - index.insert_with_seq(&buffered.batch, buffered.row_offset, buffered.seq)?; + index.insert_with_batch_position( + &buffered.batch, + buffered.row_offset, + buffered.batch_position, + )?; } } @@ -1546,10 +1568,10 @@ impl IndexRegistry { let start = Instant::now(); let result = (|| { for buffered in batches { - index.insert_with_seq( + index.insert_with_batch_position( &buffered.batch, buffered.row_offset, - buffered.seq, + buffered.batch_position, )?; } Ok(()) @@ -1575,10 +1597,10 @@ impl IndexRegistry { let start = Instant::now(); let result = (|| { for buffered in batches { - index.insert_with_seq( + index.insert_with_batch_position( &buffered.batch, buffered.row_offset, - buffered.seq, + buffered.batch_position, )?; } Ok(()) @@ -1657,15 +1679,15 @@ impl IndexRegistry { let mut fts_coverage = HashMap::new(); for (name, index) in &self.btree_indexes { - btree_coverage.insert(name.clone(), index.max_indexed_seq()); + btree_coverage.insert(name.clone(), index.max_indexed_batch_position()); } for (name, index) in &self.ivf_pq_indexes { - ivfpq_coverage.insert(name.clone(), index.max_indexed_seq()); + ivfpq_coverage.insert(name.clone(), index.max_indexed_batch_position()); } for (name, index) in &self.fts_indexes { - fts_coverage.insert(name.clone(), index.max_indexed_seq()); + fts_coverage.insert(name.clone(), index.max_indexed_batch_position()); } IndexCoverageInfo { @@ -1703,212 +1725,17 @@ impl IndexRegistry { } } -// ============================================================================ -// Async Index Update Infrastructure -// ============================================================================ - -/// Message for async index updates. -/// -/// Used by `IndexUpdateHandler` to process index updates in a background task. -#[derive(Debug)] -pub enum IndexUpdateMsg { - /// Update indexes with a batch. - Update { - /// The batch to index. - batch: RecordBatch, - /// Row offset in MemTable. - row_offset: u64, - /// Sequence number for MVCC tracking. - seq: Option, - /// Optional completion notification. - done: Option>>, - }, - /// Drain all pending updates (for memtable rotation). - /// The handler will process all pending messages and then respond. - Drain { - /// Completion notification. - done: oneshot::Sender>, - }, - /// Switch to a new IndexRegistry (after memtable rotation). - SetIndexes { - /// New IndexRegistry to use. - indexes: Arc, - }, - /// Periodic tick to check if buffer should be flushed. - Tick, -} - -/// Buffered batch waiting for index processing. +/// Buffered batch for cross-batch index processing. /// -/// Used by IndexUpdateHandler to accumulate batches for cross-batch vectorization. +/// Used by `insert_batches` methods to process multiple batches together +/// for better vectorization (especially IVF-PQ partition assignment and encoding). pub struct BufferedBatch { /// The batch to index. pub batch: RecordBatch, /// Row offset in MemTable. pub row_offset: u64, - /// Sequence number for MVCC tracking. - pub seq: Option, - /// Optional completion notification - sent after this batch is indexed. - pub done: Option>>, -} - -/// Background handler for async index updates with cross-batch batching. -/// -/// Accumulates batches before processing to enable vectorized operations, -/// especially beneficial for IVF-PQ indexes where partition assignment -/// and PQ encoding can be batched across multiple input batches. -pub struct IndexUpdateHandler { - indexes: Arc, - /// Maximum rows to buffer before flushing. - max_buffer_rows: usize, - /// Maximum time to buffer before flushing. - max_buffer_interval: Duration, - /// Buffered batches waiting for processing. - buffer: Vec, - /// Total rows in buffer. - buffer_rows: usize, - /// Last time buffer was flushed. - last_flush: Instant, -} - -impl IndexUpdateHandler { - /// Create a new index update handler with default settings. - pub fn new(indexes: Arc) -> Self { - Self { - indexes, - max_buffer_rows: 10_000, - max_buffer_interval: Duration::from_secs(1), - buffer: Vec::new(), - buffer_rows: 0, - last_flush: Instant::now(), - } - } - - /// Create a new index update handler with custom settings. - pub fn with_config( - indexes: Arc, - max_buffer_rows: usize, - max_buffer_interval: Duration, - ) -> Self { - Self { - indexes, - max_buffer_rows, - max_buffer_interval, - buffer: Vec::new(), - buffer_rows: 0, - last_flush: Instant::now(), - } - } - - /// Check if buffer should be flushed based on thresholds. - fn should_flush(&self) -> bool { - self.buffer_rows >= self.max_buffer_rows - || self.last_flush.elapsed() >= self.max_buffer_interval - } - - /// Flush buffered batches to indexes. - fn flush_buffer(&mut self) -> Result<()> { - if self.buffer.is_empty() { - return Ok(()); - } - - // Process all indexes with batched insert - let result = self.indexes.insert_batches(&self.buffer); - - // Convert error to string for sending to multiple waiters - let error_msg = result.as_ref().err().map(|e| e.to_string()); - - // Send completion signals for each batch - for buffered in self.buffer.drain(..) { - if let Some(tx) = buffered.done { - // Send result to waiter - create new error from message if needed - let send_result = match &error_msg { - None => Ok(()), - Some(msg) => Err(Error::io(msg.clone(), location!())), - }; - let _ = tx.send(send_result); - } - } - - self.buffer_rows = 0; - self.last_flush = Instant::now(); - result - } - - /// Process an index update message. - /// - /// This method is called by the dispatcher for each message. - pub fn handle_message(&mut self, msg: IndexUpdateMsg) -> Result<()> { - match msg { - IndexUpdateMsg::Update { - batch, - row_offset, - seq, - done, - } => { - let num_rows = batch.num_rows(); - self.buffer.push(BufferedBatch { - batch, - row_offset, - seq, - done, - }); - self.buffer_rows += num_rows; - - // Check flush triggers - if self.should_flush() { - self.flush_buffer()?; - } - } - IndexUpdateMsg::SetIndexes { indexes } => { - // Flush any pending batches before switching indexes - self.flush_buffer()?; - self.indexes = indexes; - } - IndexUpdateMsg::Drain { done } => { - // Flush any remaining buffered batches - let result = self.flush_buffer(); - let _ = done.send(result); - } - IndexUpdateMsg::Tick => { - // Periodic tick - flush if buffer interval has elapsed - if self.should_flush() { - self.flush_buffer()?; - } - } - } - Ok(()) - } - - /// Get a reference to the current IndexRegistry. - pub fn indexes(&self) -> &Arc { - &self.indexes - } - - /// Get count of buffered batches (for testing/monitoring). - pub fn buffered_batch_count(&self) -> usize { - self.buffer.len() - } - - /// Get count of buffered rows (for testing/monitoring). - pub fn buffered_row_count(&self) -> usize { - self.buffer_rows - } -} - -use crate::dataset::mem_wal::dispatcher::MessageFactory; - -#[async_trait] -impl MessageHandler for IndexUpdateHandler { - fn tickers(&mut self) -> Vec<(Duration, MessageFactory)> { - // Add a periodic ticker to flush the buffer based on max_buffer_interval - vec![(self.max_buffer_interval, Box::new(|| IndexUpdateMsg::Tick))] - } - - async fn handle(&mut self, message: IndexUpdateMsg) -> Result<()> { - // Delegate to synchronous handle_message - batching is handled there - self.handle_message(message) - } + /// Batch position for coverage tracking. + pub batch_position: Option, } #[cfg(test)] @@ -2155,53 +1982,65 @@ mod tests { } #[test] - fn test_btree_index_max_indexed_seq() { + fn test_btree_index_max_indexed_batch_position() { let schema = create_test_schema(); let index = BTreeMemIndex::new("id".to_string()); - // Initially max_indexed_seq is 0 - assert_eq!(index.max_indexed_seq(), 0); + // Initially max_indexed_batch_position is 0 + assert_eq!(index.max_indexed_batch_position(), 0); let batch = create_test_batch(&schema, 0); // Insert with sequence tracking - index.insert_with_seq(&batch, 0, Some(5)).unwrap(); - assert_eq!(index.max_indexed_seq(), 5); + index + .insert_with_batch_position(&batch, 0, Some(5)) + .unwrap(); + assert_eq!(index.max_indexed_batch_position(), 5); // Insert with higher sequence - index.insert_with_seq(&batch, 3, Some(10)).unwrap(); - assert_eq!(index.max_indexed_seq(), 10); + index + .insert_with_batch_position(&batch, 3, Some(10)) + .unwrap(); + assert_eq!(index.max_indexed_batch_position(), 10); // Insert with lower sequence (should not decrease) - index.insert_with_seq(&batch, 6, Some(7)).unwrap(); - assert_eq!(index.max_indexed_seq(), 10); + index + .insert_with_batch_position(&batch, 6, Some(7)) + .unwrap(); + assert_eq!(index.max_indexed_batch_position(), 10); // Insert without sequence (should not change) index.insert(&batch, 9).unwrap(); - assert_eq!(index.max_indexed_seq(), 10); + assert_eq!(index.max_indexed_batch_position(), 10); } #[test] - fn test_fts_index_max_indexed_seq() { + fn test_fts_index_max_indexed_batch_position() { let schema = create_test_schema(); let index = FtsMemIndex::new("description".to_string()); - // Initially max_indexed_seq is 0 - assert_eq!(index.max_indexed_seq(), 0); + // Initially max_indexed_batch_position is 0 + assert_eq!(index.max_indexed_batch_position(), 0); let batch = create_test_batch(&schema, 0); // Insert with sequence tracking - index.insert_with_seq(&batch, 0, Some(5)).unwrap(); - assert_eq!(index.max_indexed_seq(), 5); + index + .insert_with_batch_position(&batch, 0, Some(5)) + .unwrap(); + assert_eq!(index.max_indexed_batch_position(), 5); // Insert with higher sequence - index.insert_with_seq(&batch, 3, Some(10)).unwrap(); - assert_eq!(index.max_indexed_seq(), 10); + index + .insert_with_batch_position(&batch, 3, Some(10)) + .unwrap(); + assert_eq!(index.max_indexed_batch_position(), 10); // Insert with lower sequence (should not decrease) - index.insert_with_seq(&batch, 6, Some(7)).unwrap(); - assert_eq!(index.max_indexed_seq(), 10); + index + .insert_with_batch_position(&batch, 6, Some(7)) + .unwrap(); + assert_eq!(index.max_indexed_batch_position(), 10); } #[test] @@ -2219,14 +2058,18 @@ mod tests { // Insert with sequence tracking let batch = create_test_batch(&schema, 0); - registry.insert_with_seq(&batch, 0, Some(5)).unwrap(); + registry + .insert_with_batch_position(&batch, 0, Some(5)) + .unwrap(); let coverage = registry.get_coverage(); assert_eq!(coverage.btree_coverage.get("id_idx"), Some(&5)); assert_eq!(coverage.fts_coverage.get("desc_idx"), Some(&5)); // Insert with higher sequence - registry.insert_with_seq(&batch, 3, Some(10)).unwrap(); + registry + .insert_with_batch_position(&batch, 3, Some(10)) + .unwrap(); let coverage = registry.get_coverage(); assert_eq!(coverage.btree_coverage.get("id_idx"), Some(&10)); @@ -2240,7 +2083,7 @@ mod tests { coverage.ivfpq_coverage.insert("vec_idx".to_string(), 30); coverage.fts_coverage.insert("text_idx".to_string(), 0); - // Full coverage: visibility_seq <= max_indexed_seq + // Full coverage: max_visible_batch_position <= max_indexed_batch_position assert_eq!( coverage.check_btree_coverage("id_idx", 50), CoverageResult::Full @@ -2250,15 +2093,15 @@ mod tests { CoverageResult::Full ); - // Partial coverage: visibility_seq > max_indexed_seq + // Partial coverage: max_visible_batch_position > max_indexed_batch_position assert_eq!( coverage.check_btree_coverage("id_idx", 100), CoverageResult::Partial { - max_indexed_seq: 50 + max_indexed_batch_position: 50 } ); - // No coverage: max_indexed_seq is 0 + // No coverage: max_indexed_batch_position is 0 assert_eq!( coverage.check_fts_coverage("text_idx", 50), CoverageResult::None @@ -2278,7 +2121,7 @@ mod tests { assert_eq!( coverage.check_ivfpq_coverage("vec_idx", 50), CoverageResult::Partial { - max_indexed_seq: 30 + max_indexed_batch_position: 30 } ); } diff --git a/rust/lance/src/dataset/mem_wal/write/ivfpq_store.rs b/rust/lance/src/dataset/mem_wal/ivfpq_store.rs similarity index 99% rename from rust/lance/src/dataset/mem_wal/write/ivfpq_store.rs rename to rust/lance/src/dataset/mem_wal/ivfpq_store.rs index c4d1f73f285..a4090828e36 100644 --- a/rust/lance/src/dataset/mem_wal/write/ivfpq_store.rs +++ b/rust/lance/src/dataset/mem_wal/ivfpq_store.rs @@ -18,7 +18,7 @@ //! # Safety Model //! //! Same as `LockFreeBatchStore`: -//! - Single writer (IndexUpdateHandler) +//! - Single writer (WalFlushHandler during WAL flush) //! - Multiple concurrent readers //! - Append-only until memtable flush @@ -59,7 +59,7 @@ impl std::error::Error for PartitionFull {} /// /// # Safety /// -/// - Single writer (IndexUpdateHandler or WriteBatchHandler) +/// - Single writer (WalFlushHandler during WAL flush) /// - Multiple concurrent readers /// - Append-only until memtable flush #[derive(Debug)] diff --git a/rust/lance/src/dataset/mem_wal/write/memtable.rs b/rust/lance/src/dataset/mem_wal/memtable.rs similarity index 70% rename from rust/lance/src/dataset/mem_wal/write/memtable.rs rename to rust/lance/src/dataset/mem_wal/memtable.rs index 67c68b28cb2..8a57d6caa1e 100644 --- a/rust/lance/src/dataset/mem_wal/write/memtable.rs +++ b/rust/lance/src/dataset/mem_wal/memtable.rs @@ -3,6 +3,9 @@ //! In-memory MemTable for buffering writes. +#[cfg(test)] +mod perf_test; + use std::collections::{HashMap, HashSet}; use std::sync::Arc; use std::time::{Duration, Instant}; @@ -19,8 +22,8 @@ use uuid::Uuid; use super::batch_store::LockFreeBatchStore; use super::indexes::IndexRegistry; -use super::wal::WalFlushResult; -use super::watchable_cell::WatchableOnceCellReader; +use super::watchable_cell::{WatchableOnceCell, WatchableOnceCellReader}; +use super::write::{DurabilityResult, WalFlushResult}; use crate::Dataset; /// Default batch store capacity when not specified. @@ -75,12 +78,12 @@ pub struct MemTable { /// Generation number (incremented on flush). generation: u64, - /// WAL batch mapping: batch_id -> (wal_id, position within WAL entry). + /// WAL batch mapping: batch_position -> (wal_entry_position, position within WAL entry). wal_batch_mapping: HashMap, - /// Last WAL entry ID that has been flushed. - last_flushed_wal_id: u64, + /// Last WAL entry position that has been flushed. + last_flushed_wal_entry_position: u64, /// Set of batch IDs that have been flushed to WAL. - flushed_batch_ids: HashSet, + flushed_batch_positions: HashSet, /// Primary key bloom filter for staleness detection. pk_bloom_filter: Sbbf, @@ -91,10 +94,10 @@ pub struct MemTable { /// Wrapped in Arc for sharing with async index handler. indexes: Option>, - /// WAL ID when this memtable was frozen. + /// WAL entry position when this memtable was frozen. /// Used for WAL replay starting point during recovery. /// None means the memtable is still active (not frozen). - frozen_at_wal_id: Option, + frozen_at_wal_entry_position: Option, /// Reader for WAL flush completion notification. /// Set when the memtable is frozen and a WAL flush request is sent. @@ -104,6 +107,11 @@ pub struct MemTable { wal_flush_completion: std::sync::Mutex< Option>>, >, + + /// Cell for memtable flush completion notification. + /// Created when the memtable is frozen and set with a value when the flush completes. + /// Used by backpressure to wait for oldest memtable flush completion. + memtable_flush_completion: std::sync::Mutex>>, } /// Cached Dataset with timestamp for eventual consistency. @@ -197,6 +205,11 @@ impl MemTable { // Create lock-free batch store let batch_store = Arc::new(LockFreeBatchStore::with_capacity(batch_capacity)); + // Create memtable_flush_completion cell immediately so backpressure can + // wait on it even before the memtable is frozen. Every memtable will + // eventually be frozen and flushed. + let memtable_flush_cell = super::watchable_cell::WatchableOnceCell::new(); + Ok(Self { schema, lance_schema, @@ -206,13 +219,14 @@ impl MemTable { cached_dataset: RwLock::new(None), generation, wal_batch_mapping: HashMap::new(), - last_flushed_wal_id: 0, - flushed_batch_ids: HashSet::new(), + last_flushed_wal_entry_position: 0, + flushed_batch_positions: HashSet::new(), pk_bloom_filter, pk_field_ids, indexes: None, - frozen_at_wal_id: None, + frozen_at_wal_entry_position: None, wal_flush_completion: std::sync::Mutex::new(None), + memtable_flush_completion: std::sync::Mutex::new(Some(memtable_flush_cell)), }) } @@ -226,16 +240,16 @@ impl MemTable { self.indexes = Some(indexes); } - /// Mark this memtable as frozen with the given WAL ID. + /// Mark this memtable as frozen with the given WAL entry position. /// /// Once frozen, no new writes should be added. The memtable will be /// added to the immutable queue for flushing to Lance storage. /// /// # Arguments /// - /// * `wal_id` - The last WAL ID when this memtable was frozen - pub fn freeze(&mut self, wal_id: u64) { - self.frozen_at_wal_id = Some(wal_id); + /// * `wal_entry_position` - The last WAL entry position when this memtable was frozen + pub fn freeze(&mut self, wal_entry_position: u64) { + self.frozen_at_wal_entry_position = Some(wal_entry_position); } /// Set the WAL flush completion reader. @@ -253,7 +267,7 @@ impl MemTable { /// Take the WAL flush completion reader. /// /// Returns the reader if set, consuming it. Used by flush_oldest_immutable - /// to await WAL flush completion before proceeding with Lance flush. + /// to await WAL flush completion before proceeding with memtable flush. /// Thread-safe via interior mutability. pub fn take_wal_flush_completion( &self, @@ -266,16 +280,55 @@ impl MemTable { self.wal_flush_completion.lock().unwrap().is_some() } - /// Get the WAL ID when this memtable was frozen. + /// Get a reader for the memtable flush completion. + /// + /// The cell is created at memtable construction time, so this always + /// returns a reader. This allows backpressure to wait on the active + /// memtable's flush completion, not just frozen memtables. + /// + /// # Panics + /// + /// Panics if called after `signal_memtable_flush_complete()` has consumed the cell. + pub fn create_memtable_flush_completion(&self) -> WatchableOnceCellReader { + self.memtable_flush_completion + .lock() + .unwrap() + .as_ref() + .expect("memtable_flush_completion cell should exist (created at construction)") + .reader() + } + + /// Get a reader for the memtable flush completion. + /// + /// Returns a reader if the completion cell exists, without consuming it. + /// Multiple readers can be obtained from the same cell. + pub fn get_memtable_flush_watcher(&self) -> Option> { + self.memtable_flush_completion + .lock() + .unwrap() + .as_ref() + .map(|cell| cell.reader()) + } + + /// Signal that the memtable flush is complete. + /// + /// Called after the memtable has been flushed to Lance storage. + pub fn signal_memtable_flush_complete(&self) { + if let Some(cell) = self.memtable_flush_completion.lock().unwrap().take() { + cell.write(DurabilityResult::ok()); + } + } + + /// Get the WAL entry position when this memtable was frozen. /// /// Returns `None` if the memtable is still active (not frozen). - pub fn frozen_at_wal_id(&self) -> Option { - self.frozen_at_wal_id + pub fn frozen_at_wal_entry_position(&self) -> Option { + self.frozen_at_wal_entry_position } /// Check if this memtable has been frozen. pub fn is_frozen(&self) -> bool { - self.frozen_at_wal_id.is_some() + self.frozen_at_wal_entry_position.is_some() } /// Insert a record batch into the MemTable. @@ -284,35 +337,12 @@ impl MemTable { /// /// # Returns /// - /// The batch ID for the inserted batch. - /// - /// Note: This method doesn't track MVCC sequence numbers. - /// Use `insert_with_seq` for MVCC-aware inserts. + /// The batch position (0-indexed) for the inserted batch. /// /// # Single Writer Requirement /// /// This method MUST only be called from the single writer task. pub async fn insert(&mut self, batch: RecordBatch) -> Result { - self.insert_with_seq(batch, 0).await - } - - /// Insert a batch with an MVCC sequence number. - /// - /// O(1) append. - /// - /// # Arguments - /// - /// * `batch` - The RecordBatch to insert - /// * `seq` - MVCC sequence number (0 means not MVCC-tracked) - /// - /// # Returns - /// - /// The batch ID for the inserted batch. - /// - /// # Single Writer Requirement - /// - /// This method MUST only be called from the single writer task. - pub async fn insert_with_seq(&mut self, batch: RecordBatch, seq: u64) -> Result { // Validate schema compatibility if batch.schema() != self.schema { return Err(Error::invalid_input( @@ -335,14 +365,17 @@ impl MemTable { // Update bloom filter with primary keys self.update_bloom_filter(&batch)?; - // Update indexes with sequence tracking for coverage + // Get batch position before appending (for index coverage tracking) + let batch_position = self.batch_store.len(); + + // Update indexes with batch position for coverage tracking if let Some(ref indexes) = self.indexes { - indexes.insert_with_seq(&batch, row_offset, Some(seq))?; + indexes.insert_with_batch_position(&batch, row_offset, Some(batch_position))?; } - // Append to batch store (returns batch_id, row_offset, estimated_size) - let (batch_id, _row_offset, _estimated_size) = - self.batch_store.append(batch, seq).map_err(|_| { + // Append to batch store (returns batch_position, row_offset, estimated_size) + let (batch_position, _row_offset, _estimated_size) = + self.batch_store.append(batch).map_err(|_| { Error::invalid_input( "MemTable batch store is full - should have been flushed", location!(), @@ -350,32 +383,26 @@ impl MemTable { })?; debug!( - "Inserted {} rows into MemTable (batch_id={}, seq={}, row_offset={}, total_rows={})", + "Inserted {} rows into MemTable (batch_position={}, row_offset={}, total_rows={})", num_rows, - batch_id, - seq, + batch_position, row_offset, self.batch_store.total_rows() ); - Ok(batch_id) + Ok(batch_position) } - /// Insert a batch without updating indexes (for async index mode). + /// Insert a batch without updating indexes. /// - /// This method is used when `sync_indexed_write: false`. The caller is responsible - /// for queuing an async index update via `IndexUpdateHandler`. + /// Index updates are performed during WAL flush by `WalFlushHandler`. /// - /// Returns `(batch_id, row_offset)` so the caller can queue the index update. + /// Returns `(batch_position, row_offset, estimated_size)` so the caller can queue the index update. /// /// # Single Writer Requirement /// /// This method MUST only be called from the single writer task. - pub async fn insert_batch_only( - &mut self, - batch: RecordBatch, - seq: u64, - ) -> Result<(usize, u64, usize)> { + pub async fn insert_batch_only(&mut self, batch: RecordBatch) -> Result<(usize, u64, usize)> { // Validate schema compatibility if batch.schema() != self.schema { return Err(Error::invalid_input( @@ -397,9 +424,9 @@ impl MemTable { // NOTE: Index update is skipped - caller will queue async update - // Append to batch store (returns batch_id, row_offset, estimated_size) - let (batch_id, row_offset, estimated_size) = - self.batch_store.append(batch, seq).map_err(|_| { + // Append to batch store (returns batch_position, row_offset, estimated_size) + let (batch_position, row_offset, estimated_size) = + self.batch_store.append(batch).map_err(|_| { Error::invalid_input( "MemTable batch store is full - should have been flushed", location!(), @@ -407,15 +434,14 @@ impl MemTable { })?; debug!( - "Inserted {} rows into MemTable (batch_only, batch_id={}, seq={}, row_offset={}, total_rows={})", + "Inserted {} rows into MemTable (batch_only, batch_position={}, row_offset={}, total_rows={})", num_rows, - batch_id, - seq, + batch_position, row_offset, self.batch_store.total_rows() ); - Ok((batch_id, row_offset, estimated_size)) + Ok((batch_position, row_offset, estimated_size)) } /// Check if the MemTable should be flushed. @@ -425,53 +451,53 @@ impl MemTable { self.batch_store.is_full() || self.batch_store.estimated_bytes() >= max_bytes } - /// Get the maximum sequence number in this MemTable. - pub fn max_sequence(&self) -> u64 { - self.batch_store.max_sequence() - } - - /// Get batches visible at a specific sequence number (for MVCC reads). - /// + /// Get batches visible up to a specific batch position (inclusive). /// - /// Returns all batches with sequence <= visibility_seq. - /// Batches with sequence = 0 are always visible (not MVCC-tracked). + /// A batch at position `i` is visible if `i <= max_visible_batch_position`. /// /// # Arguments /// - /// * `visibility_seq` - The maximum sequence number to include + /// * `max_visible_batch_position` - The maximum batch position to include (inclusive) /// /// # Returns /// /// Vector of visible batches. - pub async fn get_visible_batches(&self, visibility_seq: u64) -> Vec { - self.batch_store.visible_record_batches(visibility_seq) + pub async fn get_visible_batches(&self, max_visible_batch_position: usize) -> Vec { + self.batch_store + .visible_record_batches(max_visible_batch_position) } - /// Get the sequence number for a specific batch ID. - pub async fn get_batch_sequence(&self, batch_id: usize) -> Option { - self.batch_store.get_sequence(batch_id) - } - - /// Get batch IDs visible at a specific sequence number. + /// Get batch positions visible up to a specific batch position (inclusive). /// - /// This is useful for filtering index results by MVCC visibility. - /// Returns batch IDs where sequence <= visibility_seq or sequence == 0 (untracked). - pub async fn get_visible_batch_ids(&self, visibility_seq: u64) -> Vec { - self.batch_store.visible_batch_ids(visibility_seq) + /// This is useful for filtering index results by visibility. + pub async fn get_max_visible_batch_positions( + &self, + max_visible_batch_position: usize, + ) -> Vec { + self.batch_store + .max_visible_batch_positions(max_visible_batch_position) } - /// Check if a specific batch is visible at a sequence number. + /// Check if a specific batch is visible at a given visibility position. /// /// Returns true if the batch is visible, false if not visible or doesn't exist. - pub async fn is_batch_visible(&self, batch_id: usize, visibility_seq: u64) -> bool { - self.batch_store.is_batch_visible(batch_id, visibility_seq) + pub async fn is_batch_visible( + &self, + batch_position: usize, + max_visible_batch_position: usize, + ) -> bool { + self.batch_store + .is_batch_visible(batch_position, max_visible_batch_position) } - /// Scan batches visible at a specific sequence number. + /// Scan batches visible up to a specific batch position. /// /// This combines `get_visible_batches` with the scan interface. - pub async fn scan_batches_at_seq(&self, visibility_seq: u64) -> Result> { - Ok(self.get_visible_batches(visibility_seq).await) + pub async fn scan_batches_at_position( + &self, + max_visible_batch_position: usize, + ) -> Result> { + Ok(self.get_visible_batches(max_visible_batch_position).await) } /// Update the bloom filter with primary keys from a batch. @@ -511,13 +537,25 @@ impl MemTable { /// Mark batches as flushed to WAL. /// /// Updates the WAL batch mapping for use during MemTable flush. - pub fn mark_wal_flushed(&mut self, batch_ids: &[usize], wal_id: u64, positions: &[usize]) { - for (idx, &batch_id) in batch_ids.iter().enumerate() { + /// Also updates the batch_store's watermark to the highest flushed batch_position. + pub fn mark_wal_flushed( + &mut self, + batch_positions: &[usize], + wal_entry_position: u64, + positions: &[usize], + ) { + for (idx, &batch_position) in batch_positions.iter().enumerate() { self.wal_batch_mapping - .insert(batch_id, (wal_id, positions[idx])); - self.flushed_batch_ids.insert(batch_id); + .insert(batch_position, (wal_entry_position, positions[idx])); + self.flushed_batch_positions.insert(batch_position); + } + self.last_flushed_wal_entry_position = wal_entry_position; + + // Update batch_store watermark to the highest batch_position flushed (inclusive) + if let Some(&max_batch_position) = batch_positions.iter().max() { + self.batch_store + .set_max_flushed_batch_position(max_batch_position); } - self.last_flushed_wal_id = wal_id; } /// Get or create a Dataset for reading. @@ -598,12 +636,12 @@ impl MemTable { Ok(self.batch_store.to_vec()) } - /// Scan specific batches by their batch_ids. - pub async fn scan_batches_by_ids(&self, batch_ids: &[usize]) -> Result> { - let mut results = Vec::with_capacity(batch_ids.len()); - for &batch_id in batch_ids { - let batch = self.batch_store.get_batch(batch_id).ok_or_else(|| { - Error::invalid_input(format!("Batch {} not found", batch_id), location!()) + /// Scan specific batches by their batch_positions. + pub async fn scan_batches_by_ids(&self, batch_positions: &[usize]) -> Result> { + let mut results = Vec::with_capacity(batch_positions.len()); + for &batch_position in batch_positions { + let batch = self.batch_store.get_batch(batch_position).ok_or_else(|| { + Error::invalid_input(format!("Batch {} not found", batch_position), location!()) })?; results.push(batch.clone()); } @@ -611,8 +649,8 @@ impl MemTable { } /// Get batches for WAL flush. - pub async fn get_batches_for_wal(&self, batch_ids: &[usize]) -> Result> { - self.scan_batches_by_ids(batch_ids).await + pub async fn get_batches_for_wal(&self, batch_positions: &[usize]) -> Result> { + self.scan_batches_by_ids(batch_positions).await } /// Check if a primary key might exist in this MemTable. @@ -666,9 +704,9 @@ impl MemTable { &self.wal_batch_mapping } - /// Get the last flushed WAL ID. - pub fn last_flushed_wal_id(&self) -> u64 { - self.last_flushed_wal_id + /// Get the last flushed WAL entry position. + pub fn last_flushed_wal_entry_position(&self) -> u64 { + self.last_flushed_wal_entry_position } /// Get the bloom filter for serialization. @@ -693,15 +731,18 @@ impl MemTable { } /// Check if all batches have been flushed to WAL. + /// + /// Uses the batch_store's watermark tracking instead of maintaining + /// a separate HashSet. pub fn all_flushed_to_wal(&self) -> bool { - self.flushed_batch_ids.len() >= self.batch_count() + self.batch_store.pending_wal_flush_count() == 0 } /// Get unflushed batch IDs. - pub fn unflushed_batch_ids(&self) -> Vec { + pub fn unflushed_batch_positions(&self) -> Vec { let batch_count = self.batch_count(); (0..batch_count) - .filter(|id| !self.flushed_batch_ids.contains(id)) + .filter(|id| !self.flushed_batch_positions.contains(id)) .collect() } @@ -729,24 +770,27 @@ impl MemTable { /// /// # Arguments /// - /// * `visibility_seq` - MVCC visibility sequence number for consistent reads + /// * `max_visible_batch_position` - Maximum batch position visible (inclusive) /// /// # Example /// /// ```ignore - /// let scanner = memtable.scan(visibility_seq); + /// let scanner = memtable.scan(max_visible_batch_position); /// let results = scanner /// .project(&["id", "name"]) /// .filter("id > 10")? /// .try_into_batch() /// .await?; /// ``` - pub fn scan(&self, visibility_seq: u64) -> crate::dataset::mem_wal::read::MemTableScanner { - crate::dataset::mem_wal::read::MemTableScanner::new( + pub fn scan( + &self, + max_visible_batch_position: usize, + ) -> crate::dataset::mem_wal::scanner::MemTableScanner { + crate::dataset::mem_wal::scanner::MemTableScanner::new( self.batch_store.clone(), self.indexes.clone(), self.schema.clone(), - visibility_seq, + max_visible_batch_position, ) } @@ -817,9 +861,9 @@ mod tests { let mut memtable = MemTable::new(schema.clone(), 1, vec![]).unwrap(); let batch = create_test_batch(&schema, 10); - let batch_id = memtable.insert(batch).await.unwrap(); + let batch_position = memtable.insert(batch).await.unwrap(); - assert_eq!(batch_id, 0); + assert_eq!(batch_position, 0); assert_eq!(memtable.row_count(), 10); assert_eq!(memtable.batch_count(), 1); // Dataset is constructed on-demand @@ -833,8 +877,8 @@ mod tests { for i in 0..3 { let batch = create_test_batch(&schema, 10); - let batch_id = memtable.insert(batch).await.unwrap(); - assert_eq!(batch_id, i); + let batch_position = memtable.insert(batch).await.unwrap(); + assert_eq!(batch_position, i); } assert_eq!(memtable.row_count(), 30); @@ -865,17 +909,20 @@ mod tests { let schema = create_test_schema(); let mut memtable = MemTable::new(schema.clone(), 1, vec![]).unwrap(); - let batch_id = memtable + let batch_position = memtable .insert(create_test_batch(&schema, 10)) .await .unwrap(); assert!(!memtable.all_flushed_to_wal()); - memtable.mark_wal_flushed(&[batch_id], 5, &[0]); + memtable.mark_wal_flushed(&[batch_position], 5, &[0]); assert!(memtable.all_flushed_to_wal()); - assert_eq!(memtable.wal_batch_mapping().get(&batch_id), Some(&(5, 0))); - assert_eq!(memtable.last_flushed_wal_id(), 5); + assert_eq!( + memtable.wal_batch_mapping().get(&batch_position), + Some(&(5, 0)) + ); + assert_eq!(memtable.last_flushed_wal_entry_position(), 5); } #[tokio::test] @@ -892,129 +939,77 @@ mod tests { .await .unwrap(); - assert_eq!(memtable.unflushed_batch_ids(), vec![batch1, batch2]); + assert_eq!(memtable.unflushed_batch_positions(), vec![batch1, batch2]); memtable.mark_wal_flushed(&[batch1], 1, &[0]); - assert_eq!(memtable.unflushed_batch_ids(), vec![batch2]); + assert_eq!(memtable.unflushed_batch_positions(), vec![batch2]); } #[tokio::test] - async fn test_memtable_mvcc_sequence_tracking() { + async fn test_memtable_visibility_tracking() { let schema = create_test_schema(); let mut memtable = MemTable::new(schema.clone(), 1, vec![]).unwrap(); - // Insert with sequence numbers + // Insert batches at positions 0, 1, 2 memtable - .insert_with_seq(create_test_batch(&schema, 10), 1) + .insert(create_test_batch(&schema, 10)) .await .unwrap(); memtable - .insert_with_seq(create_test_batch(&schema, 5), 2) + .insert(create_test_batch(&schema, 5)) .await .unwrap(); memtable - .insert_with_seq(create_test_batch(&schema, 3), 3) + .insert(create_test_batch(&schema, 3)) .await .unwrap(); - // Max sequence should be 3 - assert_eq!(memtable.max_sequence(), 3); - - // At seq 2, only batches with seq <= 2 should be visible - let visible = memtable.get_visible_batches(2).await; + // max_visible_batch_position=1 means positions 0 and 1 are visible + let visible = memtable.get_visible_batches(1).await; assert_eq!(visible.len(), 2); let total_rows: usize = visible.iter().map(|b| b.num_rows()).sum(); assert_eq!(total_rows, 15); // 10 + 5 - // At seq 3, all batches should be visible - let visible = memtable.get_visible_batches(3).await; + // max_visible_batch_position=2 means all batches are visible + let visible = memtable.get_visible_batches(2).await; assert_eq!(visible.len(), 3); - // At seq 0, no batches should be visible (since all have seq > 0) - let visible = memtable.get_visible_batches(0).await; - assert_eq!(visible.len(), 0); - } - - #[tokio::test] - async fn test_memtable_mvcc_untracked_batches() { - let schema = create_test_schema(); - let mut memtable = MemTable::new(schema.clone(), 1, vec![]).unwrap(); - - // Insert with seq = 0 (untracked - always visible) - memtable - .insert(create_test_batch(&schema, 10)) - .await - .unwrap(); - - // Insert with seq = 5 - memtable - .insert_with_seq(create_test_batch(&schema, 5), 5) - .await - .unwrap(); - - // At seq 0, only untracked batch should be visible + // max_visible_batch_position=0 means only position 0 is visible let visible = memtable.get_visible_batches(0).await; assert_eq!(visible.len(), 1); - assert_eq!(visible[0].num_rows(), 10); - - // At seq 5, both should be visible - let visible = memtable.get_visible_batches(5).await; - assert_eq!(visible.len(), 2); - - // Max sequence should be 5 (untracked batches don't count) - assert_eq!(memtable.max_sequence(), 5); } #[tokio::test] - async fn test_memtable_get_batch_sequence() { + async fn test_memtable_get_max_visible_batch_positions() { let schema = create_test_schema(); let mut memtable = MemTable::new(schema.clone(), 1, vec![]).unwrap(); - let batch_id_0 = memtable - .insert_with_seq(create_test_batch(&schema, 10), 42) - .await - .unwrap(); - let batch_id_1 = memtable - .insert_with_seq(create_test_batch(&schema, 5), 100) - .await - .unwrap(); - - assert_eq!(memtable.get_batch_sequence(batch_id_0).await, Some(42)); - assert_eq!(memtable.get_batch_sequence(batch_id_1).await, Some(100)); - assert_eq!(memtable.get_batch_sequence(999).await, None); - } - - #[tokio::test] - async fn test_memtable_get_visible_batch_ids() { - let schema = create_test_schema(); - let mut memtable = MemTable::new(schema.clone(), 1, vec![]).unwrap(); - - // Insert batches with different sequences + // Insert batches at positions 0, 1, 2 memtable - .insert_with_seq(create_test_batch(&schema, 10), 1) + .insert(create_test_batch(&schema, 10)) .await .unwrap(); memtable - .insert_with_seq(create_test_batch(&schema, 5), 2) + .insert(create_test_batch(&schema, 5)) .await .unwrap(); memtable - .insert_with_seq(create_test_batch(&schema, 3), 3) + .insert(create_test_batch(&schema, 3)) .await .unwrap(); - // At seq 2, batch_ids 0 and 1 should be visible - let visible_ids = memtable.get_visible_batch_ids(2).await; + // max_visible_batch_position=1 means positions 0 and 1 visible + let visible_ids = memtable.get_max_visible_batch_positions(1).await; assert_eq!(visible_ids, vec![0, 1]); - // At seq 3, all batch_ids should be visible - let visible_ids = memtable.get_visible_batch_ids(3).await; + // max_visible_batch_position=2 means all positions visible + let visible_ids = memtable.get_max_visible_batch_positions(2).await; assert_eq!(visible_ids, vec![0, 1, 2]); - // At seq 0, no batch_ids should be visible - let visible_ids = memtable.get_visible_batch_ids(0).await; - assert!(visible_ids.is_empty()); + // max_visible_batch_position=0 means only position 0 visible + let visible_ids = memtable.get_max_visible_batch_positions(0).await; + assert_eq!(visible_ids, vec![0]); } #[tokio::test] @@ -1023,46 +1018,51 @@ mod tests { let mut memtable = MemTable::new(schema.clone(), 1, vec![]).unwrap(); memtable - .insert_with_seq(create_test_batch(&schema, 10), 5) + .insert(create_test_batch(&schema, 10)) .await - .unwrap(); + .unwrap(); // position 0 memtable .insert(create_test_batch(&schema, 5)) - .await // seq = 0, always visible - .unwrap(); + .await + .unwrap(); // position 1 + memtable + .insert(create_test_batch(&schema, 3)) + .await + .unwrap(); // position 2 - // batch_id 0 has seq 5 - assert!(!memtable.is_batch_visible(0, 4).await); - assert!(memtable.is_batch_visible(0, 5).await); - assert!(memtable.is_batch_visible(0, 6).await); + // batch_position 0 is visible when max_visible_batch_position >= 0 + assert!(memtable.is_batch_visible(0, 0).await); + assert!(memtable.is_batch_visible(0, 1).await); + assert!(memtable.is_batch_visible(0, 2).await); - // batch_id 1 has seq 0 (always visible) - assert!(memtable.is_batch_visible(1, 0).await); - assert!(memtable.is_batch_visible(1, 100).await); + // batch_position 2 is only visible when max_visible_batch_position >= 2 + assert!(!memtable.is_batch_visible(2, 1).await); + assert!(memtable.is_batch_visible(2, 2).await); + assert!(memtable.is_batch_visible(2, 3).await); // Non-existent batch assert!(!memtable.is_batch_visible(999, 100).await); } #[tokio::test] - async fn test_memtable_scan_batches_at_seq() { + async fn test_memtable_scan_batches_at_position() { let schema = create_test_schema(); let mut memtable = MemTable::new(schema.clone(), 1, vec![]).unwrap(); memtable - .insert_with_seq(create_test_batch(&schema, 10), 1) + .insert(create_test_batch(&schema, 10)) .await - .unwrap(); + .unwrap(); // position 0 memtable - .insert_with_seq(create_test_batch(&schema, 5), 2) + .insert(create_test_batch(&schema, 5)) .await - .unwrap(); + .unwrap(); // position 1 - let batches = memtable.scan_batches_at_seq(1).await.unwrap(); + let batches = memtable.scan_batches_at_position(0).await.unwrap(); assert_eq!(batches.len(), 1); assert_eq!(batches[0].num_rows(), 10); - let batches = memtable.scan_batches_at_seq(2).await.unwrap(); + let batches = memtable.scan_batches_at_position(1).await.unwrap(); assert_eq!(batches.len(), 2); } diff --git a/rust/lance/src/dataset/mem_wal/write/memtable_perf_test.rs b/rust/lance/src/dataset/mem_wal/memtable/perf_test.rs similarity index 99% rename from rust/lance/src/dataset/mem_wal/write/memtable_perf_test.rs rename to rust/lance/src/dataset/mem_wal/memtable/perf_test.rs index 48018dc2a18..5696b9083f2 100644 --- a/rust/lance/src/dataset/mem_wal/write/memtable_perf_test.rs +++ b/rust/lance/src/dataset/mem_wal/memtable/perf_test.rs @@ -12,7 +12,7 @@ mod tests { use arrow_array::{Int32Array, RecordBatch, StringArray}; use arrow_schema::{DataType, Field, Schema as ArrowSchema}; - use crate::dataset::mem_wal::write::memtable::{CacheConfig, MemTable}; + use crate::dataset::mem_wal::memtable::{CacheConfig, MemTable}; fn create_test_schema() -> Arc { Arc::new(ArrowSchema::new(vec![ diff --git a/rust/lance/src/dataset/mem_wal/read.rs b/rust/lance/src/dataset/mem_wal/read.rs deleted file mode 100644 index e34898632ed..00000000000 --- a/rust/lance/src/dataset/mem_wal/read.rs +++ /dev/null @@ -1,18 +0,0 @@ -// SPDX-License-Identifier: Apache-2.0 -// SPDX-FileCopyrightText: Copyright The Lance Authors - -//! Read path for MemWAL. -//! -//! This module provides query execution over MemWAL data using DataFusion. -//! -//! ## Submodules -//! -//! - [`memtable`]: Read path for in-memory MemTable data - -pub mod memtable; - -// Re-export commonly used types from memtable -pub use memtable::{ - BTreeIndexExec, FtsIndexExec, MemTableRangeScanExec, MemTableScanExec, MemTableScanner, - SplitPlanExec, VectorIndexExec, -}; diff --git a/rust/lance/src/dataset/mem_wal/read/memtable.rs b/rust/lance/src/dataset/mem_wal/scanner.rs similarity index 96% rename from rust/lance/src/dataset/mem_wal/read/memtable.rs rename to rust/lance/src/dataset/mem_wal/scanner.rs index 207fd81de47..29ec96f6b25 100644 --- a/rust/lance/src/dataset/mem_wal/read/memtable.rs +++ b/rust/lance/src/dataset/mem_wal/scanner.rs @@ -34,11 +34,11 @@ //! - **Split Plans**: Handle partial index coverage gracefully //! - **DataFusion Integration**: Full ExecutionPlan compatibility +mod builder; mod exec; -mod scanner; +pub use builder::MemTableScanner; pub use exec::{ BTreeIndexExec, FtsIndexExec, MemTableRangeScanExec, MemTableScanExec, SplitPlanExec, VectorIndexExec, }; -pub use scanner::MemTableScanner; diff --git a/rust/lance/src/dataset/mem_wal/read/memtable/scanner.rs b/rust/lance/src/dataset/mem_wal/scanner/builder.rs similarity index 92% rename from rust/lance/src/dataset/mem_wal/read/memtable/scanner.rs rename to rust/lance/src/dataset/mem_wal/scanner/builder.rs index 23998433588..af27e48f309 100644 --- a/rust/lance/src/dataset/mem_wal/read/memtable/scanner.rs +++ b/rust/lance/src/dataset/mem_wal/scanner/builder.rs @@ -220,7 +220,7 @@ impl ScalarPredicate { /// # Example /// /// ```ignore -/// let scanner = MemTableScanner::new(batch_store, indexes, schema, visibility_seq) +/// let scanner = MemTableScanner::new(batch_store, indexes, schema, max_visible_batch_position) /// .project(&["id", "name"])? /// .filter("id > 10")? /// .limit(100, None)?; @@ -231,7 +231,7 @@ pub struct MemTableScanner { batch_store: Arc, indexes: Option>, schema: SchemaRef, - visibility_seq: u64, + max_visible_batch_position: usize, projection: Option>, filter: Option, limit: Option, @@ -250,18 +250,18 @@ impl MemTableScanner { /// * `batch_store` - Lock-free batch store containing the data /// * `indexes` - Optional index registry for indexed queries /// * `schema` - Schema of the data - /// * `visibility_seq` - MVCC visibility sequence number + /// * `max_visible_batch_position` - MVCC visibility sequence number pub fn new( batch_store: Arc, indexes: Option>, schema: SchemaRef, - visibility_seq: u64, + max_visible_batch_position: usize, ) -> Self { Self { batch_store, indexes, schema, - visibility_seq, + max_visible_batch_position, projection: None, filter: None, limit: None, @@ -427,7 +427,7 @@ impl MemTableScanner { let scan = MemTableScanExec::new( self.batch_store.clone(), - self.visibility_seq, + self.max_visible_batch_position, projection_indices, self.output_schema(), ); @@ -468,27 +468,29 @@ impl MemTableScanner { self.batch_store.clone(), self.indexes.clone().unwrap(), predicate.clone(), - self.visibility_seq, + self.max_visible_batch_position, projection_indices, self.output_schema(), )?; self.apply_post_index_ops(Arc::new(index_exec)).await } - CoverageResult::Partial { max_indexed_seq } => { + CoverageResult::Partial { + max_indexed_batch_position, + } => { // Create split plan: index for covered portion, scan for uncovered let indexed_plan = BTreeIndexExec::new( self.batch_store.clone(), self.indexes.clone().unwrap(), predicate.clone(), - max_indexed_seq, // Only query up to indexed portion + max_indexed_batch_position, // Only query up to indexed portion projection_indices.clone(), self.output_schema(), )?; let unindexed_plan = MemTableRangeScanExec::new( self.batch_store.clone(), - max_indexed_seq, // > this - self.visibility_seq, // <= this + max_indexed_batch_position, // > this + self.max_visible_batch_position, // <= this projection_indices, self.output_schema(), self.filter.clone(), @@ -516,13 +518,15 @@ impl MemTableScanner { self.batch_store.clone(), self.indexes.clone().unwrap(), query.clone(), - self.visibility_seq, + self.max_visible_batch_position, projection_indices, self.output_schema(), )?; self.apply_post_index_ops(Arc::new(index_exec)).await } - CoverageResult::Partial { max_indexed_seq } => { + CoverageResult::Partial { + max_indexed_batch_position, + } => { // Create split plan: index for covered, flat scan for uncovered let indexed_plan = VectorIndexExec::new( self.batch_store.clone(), @@ -531,7 +535,7 @@ impl MemTableScanner { k: query.k * 2, // Over-fetch from index ..query.clone() }, - max_indexed_seq, + max_indexed_batch_position, projection_indices.clone(), self.output_schema(), )?; @@ -540,8 +544,8 @@ impl MemTableScanner { // For now, fall back to range scan (flat search would be added later) let unindexed_plan = MemTableRangeScanExec::new( self.batch_store.clone(), - max_indexed_seq, - self.visibility_seq, + max_indexed_batch_position, + self.max_visible_batch_position, projection_indices, self.output_schema(), None, // No filter for vector search - handled by distance calculation @@ -569,26 +573,28 @@ impl MemTableScanner { self.batch_store.clone(), self.indexes.clone().unwrap(), query.clone(), - self.visibility_seq, + self.max_visible_batch_position, projection_indices, self.output_schema(), )?; self.apply_post_index_ops(Arc::new(index_exec)).await } - CoverageResult::Partial { max_indexed_seq } => { + CoverageResult::Partial { + max_indexed_batch_position, + } => { let indexed_plan = FtsIndexExec::new( self.batch_store.clone(), self.indexes.clone().unwrap(), query.clone(), - max_indexed_seq, + max_indexed_batch_position, projection_indices.clone(), self.output_schema(), )?; let unindexed_plan = MemTableRangeScanExec::new( self.batch_store.clone(), - max_indexed_seq, - self.visibility_seq, + max_indexed_batch_position, + self.max_visible_batch_position, projection_indices, self.output_schema(), None, // FTS filter would need text search logic @@ -719,7 +725,7 @@ impl MemTableScanner { coverage .btree_coverage .iter() - .find(|(_, &seq)| seq > 0) + .find(|(_, &max_indexed_batch_position)| max_indexed_batch_position > 0) .and_then(|(name, _)| idx.get_btree(name)) .filter(|btree| btree.column_name() == column) }) @@ -736,7 +742,10 @@ impl MemTableScanner { for name in coverage.btree_coverage.keys() { if let Some(btree) = idx.get_btree(name) { if btree.column_name() == column { - return Some(coverage.check_btree_coverage(name, self.visibility_seq)); + return Some( + coverage + .check_btree_coverage(name, self.max_visible_batch_position), + ); } } } @@ -754,7 +763,10 @@ impl MemTableScanner { for name in coverage.ivfpq_coverage.keys() { if let Some(ivfpq) = idx.get_ivf_pq(name) { if ivfpq.column_name() == column { - return Some(coverage.check_ivfpq_coverage(name, self.visibility_seq)); + return Some( + coverage + .check_ivfpq_coverage(name, self.max_visible_batch_position), + ); } } } @@ -772,7 +784,9 @@ impl MemTableScanner { for name in coverage.fts_coverage.keys() { if let Some(fts) = idx.get_fts(name) { if fts.column_name() == column { - return Some(coverage.check_fts_coverage(name, self.visibility_seq)); + return Some( + coverage.check_fts_coverage(name, self.max_visible_batch_position), + ); } } } @@ -816,9 +830,9 @@ mod tests { // Insert test data let batch = create_test_batch(&schema, 0, 10); - batch_store.append(batch, 1).unwrap(); + batch_store.append(batch).unwrap(); - let scanner = MemTableScanner::new(batch_store, None, schema.clone(), 1); + let scanner = MemTableScanner::new(batch_store, None, schema.clone(), 0); let result = scanner.try_into_batch().await.unwrap(); assert_eq!(result.num_rows(), 10); @@ -829,23 +843,23 @@ mod tests { let schema = create_test_schema(); let batch_store = Arc::new(LockFreeBatchStore::with_capacity(100)); - // Insert batches with different sequences + // Insert 3 batches at positions 0, 1, 2 let batch1 = create_test_batch(&schema, 0, 10); - batch_store.append(batch1, 1).unwrap(); + batch_store.append(batch1).unwrap(); let batch2 = create_test_batch(&schema, 10, 10); - batch_store.append(batch2, 2).unwrap(); + batch_store.append(batch2).unwrap(); let batch3 = create_test_batch(&schema, 20, 10); - batch_store.append(batch3, 3).unwrap(); + batch_store.append(batch3).unwrap(); - // Scanner at seq 2 should see batches 1 and 2 - let scanner = MemTableScanner::new(batch_store.clone(), None, schema.clone(), 2); + // Scanner with max_visible=1 should see positions 0 and 1 (2 batches) + let scanner = MemTableScanner::new(batch_store.clone(), None, schema.clone(), 1); let result = scanner.try_into_batch().await.unwrap(); assert_eq!(result.num_rows(), 20); - // Scanner at seq 1 should see only batch 1 - let scanner = MemTableScanner::new(batch_store, None, schema, 1); + // Scanner with max_visible=0 should see only position 0 (1 batch) + let scanner = MemTableScanner::new(batch_store, None, schema, 0); let result = scanner.try_into_batch().await.unwrap(); assert_eq!(result.num_rows(), 10); } @@ -856,9 +870,9 @@ mod tests { let batch_store = Arc::new(LockFreeBatchStore::with_capacity(100)); let batch = create_test_batch(&schema, 0, 10); - batch_store.append(batch, 1).unwrap(); + batch_store.append(batch).unwrap(); - let mut scanner = MemTableScanner::new(batch_store, None, schema, 1); + let mut scanner = MemTableScanner::new(batch_store, None, schema, 0); scanner.project(&["id"]); let result = scanner.try_into_batch().await.unwrap(); @@ -872,9 +886,9 @@ mod tests { let batch_store = Arc::new(LockFreeBatchStore::with_capacity(100)); let batch = create_test_batch(&schema, 0, 100); - batch_store.append(batch, 1).unwrap(); + batch_store.append(batch).unwrap(); - let mut scanner = MemTableScanner::new(batch_store, None, schema, 1); + let mut scanner = MemTableScanner::new(batch_store, None, schema, 0); scanner.limit(10, None); let result = scanner.try_into_batch().await.unwrap(); @@ -887,9 +901,9 @@ mod tests { let batch_store = Arc::new(LockFreeBatchStore::with_capacity(100)); let batch = create_test_batch(&schema, 0, 50); - batch_store.append(batch, 1).unwrap(); + batch_store.append(batch).unwrap(); - let scanner = MemTableScanner::new(batch_store, None, schema, 1); + let scanner = MemTableScanner::new(batch_store, None, schema, 0); let count = scanner.count_rows().await.unwrap(); assert_eq!(count, 50); } diff --git a/rust/lance/src/dataset/mem_wal/read/memtable/exec.rs b/rust/lance/src/dataset/mem_wal/scanner/exec.rs similarity index 100% rename from rust/lance/src/dataset/mem_wal/read/memtable/exec.rs rename to rust/lance/src/dataset/mem_wal/scanner/exec.rs diff --git a/rust/lance/src/dataset/mem_wal/read/memtable/exec/btree.rs b/rust/lance/src/dataset/mem_wal/scanner/exec/btree.rs similarity index 89% rename from rust/lance/src/dataset/mem_wal/read/memtable/exec/btree.rs rename to rust/lance/src/dataset/mem_wal/scanner/exec/btree.rs index a164d75e42d..09e287014ea 100644 --- a/rust/lance/src/dataset/mem_wal/read/memtable/exec/btree.rs +++ b/rust/lance/src/dataset/mem_wal/scanner/exec/btree.rs @@ -24,15 +24,15 @@ use futures::stream::{self, StreamExt}; use lance_core::{Error, Result}; use snafu::location; -use super::super::scanner::ScalarPredicate; +use super::super::builder::ScalarPredicate; use crate::dataset::mem_wal::write::{IndexRegistry, LockFreeBatchStore}; -/// ExecutionPlan node that queries BTree index with MVCC visibility. +/// ExecutionPlan node that queries BTree index with visibility filtering. pub struct BTreeIndexExec { batch_store: Arc, indexes: Arc, predicate: ScalarPredicate, - visibility_seq: u64, + max_visible_batch_position: usize, projection: Option>, output_schema: SchemaRef, properties: PlanProperties, @@ -45,7 +45,10 @@ impl Debug for BTreeIndexExec { fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { f.debug_struct("BTreeIndexExec") .field("predicate", &self.predicate) - .field("visibility_seq", &self.visibility_seq) + .field( + "max_visible_batch_position", + &self.max_visible_batch_position, + ) .field("index_name", &self.index_name) .finish() } @@ -59,14 +62,14 @@ impl BTreeIndexExec { /// * `batch_store` - Lock-free batch store containing data /// * `indexes` - Index registry with BTree indexes /// * `predicate` - Scalar predicate to apply - /// * `visibility_seq` - MVCC visibility sequence number + /// * `max_visible_batch_position` - MVCC visibility sequence number /// * `projection` - Optional column indices to project /// * `output_schema` - Schema after projection pub fn new( batch_store: Arc, indexes: Arc, predicate: ScalarPredicate, - visibility_seq: u64, + max_visible_batch_position: usize, projection: Option>, output_schema: SchemaRef, ) -> Result { @@ -100,7 +103,7 @@ impl BTreeIndexExec { batch_store, indexes, predicate, - visibility_seq, + max_visible_batch_position, projection, output_schema, properties, @@ -109,15 +112,15 @@ impl BTreeIndexExec { }) } - /// Compute the maximum visible row position based on visibility_seq. + /// Compute the maximum visible row position based on max_visible_batch_position. /// Returns None if no batches are visible. fn compute_max_visible_row(&self) -> Option { let mut max_visible_row_exclusive: u64 = 0; let mut current_row: u64 = 0; - for stored_batch in self.batch_store.iter() { + for (batch_position, stored_batch) in self.batch_store.iter().enumerate() { let batch_end = current_row + stored_batch.num_rows as u64; - if stored_batch.seq <= self.visibility_seq { + if batch_position <= self.max_visible_batch_position { max_visible_row_exclusive = batch_end; } current_row = batch_end; @@ -268,15 +271,15 @@ impl DisplayAs for BTreeIndexExec { DisplayFormatType::Default | DisplayFormatType::Verbose => { write!( f, - "BTreeIndexExec: index={}, predicate={:?}, visibility_seq={}", - self.index_name, self.predicate, self.visibility_seq + "BTreeIndexExec: index={}, predicate={:?}, max_visible_batch_position={}", + self.index_name, self.predicate, self.max_visible_batch_position ) } DisplayFormatType::TreeRender => { write!( f, - "BTreeIndexExec\nindex={}\npredicate={:?}\nvisibility_seq={}", - self.index_name, self.predicate, self.visibility_seq + "BTreeIndexExec\nindex={}\npredicate={:?}\nmax_visible_batch_position={}", + self.index_name, self.predicate, self.max_visible_batch_position ) } } @@ -397,7 +400,7 @@ mod tests { // Insert test data and update index let batch = create_test_batch(&schema, 0, 10); registry.insert(&batch, 0).unwrap(); - batch_store.append(batch, 1).unwrap(); + batch_store.append(batch).unwrap(); let indexes = Arc::new(registry); @@ -410,7 +413,7 @@ mod tests { batch_store, indexes, predicate, - 1, // visibility_seq + 0, // max_visible_batch_position (batch at position 0) None, schema, ) @@ -435,7 +438,7 @@ mod tests { let batch = create_test_batch(&schema, 0, 10); registry.insert(&batch, 0).unwrap(); - batch_store.append(batch, 1).unwrap(); + batch_store.append(batch).unwrap(); let indexes = Arc::new(registry); @@ -448,7 +451,7 @@ mod tests { ], }; - let exec = BTreeIndexExec::new(batch_store, indexes, predicate, 1, None, schema).unwrap(); + let exec = BTreeIndexExec::new(batch_store, indexes, predicate, 0, None, schema).unwrap(); let ctx = Arc::new(TaskContext::default()); let stream = exec.execute(0, ctx).unwrap(); @@ -467,24 +470,27 @@ mod tests { let mut registry = IndexRegistry::new(); registry.add_btree("id_idx".to_string(), "id".to_string()); - // Insert batch with seq=2 - let batch = create_test_batch(&schema, 0, 10); - registry.insert(&batch, 0).unwrap(); - batch_store.append(batch, 2).unwrap(); + // Insert two batches at positions 0 and 1 + let batch1 = create_test_batch(&schema, 0, 10); + let batch2 = create_test_batch(&schema, 10, 10); + registry.insert(&batch1, 0).unwrap(); + registry.insert(&batch2, 10).unwrap(); + batch_store.append(batch1).unwrap(); + batch_store.append(batch2).unwrap(); let indexes = Arc::new(registry); let predicate = ScalarPredicate::Eq { column: "id".to_string(), - value: ScalarValue::Int32(Some(5)), + value: ScalarValue::Int32(Some(15)), }; - // Query at seq=1 should not see the batch + // Query with max_visible=0 should not see batch at position 1 let exec = BTreeIndexExec::new( batch_store.clone(), indexes.clone(), predicate.clone(), - 1, + 0, None, schema.clone(), ) @@ -497,8 +503,8 @@ mod tests { let total_rows: usize = batches.iter().map(|b| b.num_rows()).sum(); assert_eq!(total_rows, 0); - // Query at seq=2 should see the batch - let exec = BTreeIndexExec::new(batch_store, indexes, predicate, 2, None, schema).unwrap(); + // Query with max_visible=1 should see both batches + let exec = BTreeIndexExec::new(batch_store, indexes, predicate, 1, None, schema).unwrap(); let ctx = Arc::new(TaskContext::default()); let stream = exec.execute(0, ctx).unwrap(); diff --git a/rust/lance/src/dataset/mem_wal/read/memtable/exec/fts.rs b/rust/lance/src/dataset/mem_wal/scanner/exec/fts.rs similarity index 89% rename from rust/lance/src/dataset/mem_wal/read/memtable/exec/fts.rs rename to rust/lance/src/dataset/mem_wal/scanner/exec/fts.rs index e105ff7a4d1..aea4bb56fd9 100644 --- a/rust/lance/src/dataset/mem_wal/read/memtable/exec/fts.rs +++ b/rust/lance/src/dataset/mem_wal/scanner/exec/fts.rs @@ -24,7 +24,7 @@ use futures::stream::{self, StreamExt}; use lance_core::{Error, Result}; use snafu::location; -use super::super::scanner::FtsQuery; +use super::super::builder::FtsQuery; use crate::dataset::mem_wal::write::{IndexRegistry, LockFreeBatchStore}; /// Score column name in output. @@ -43,7 +43,7 @@ pub struct FtsIndexExec { batch_store: Arc, indexes: Arc, query: FtsQuery, - visibility_seq: u64, + max_visible_batch_position: usize, projection: Option>, output_schema: SchemaRef, properties: PlanProperties, @@ -51,7 +51,7 @@ pub struct FtsIndexExec { index_name: String, /// Pre-computed batch ranges for O(log n) lookup. batch_ranges: Vec, - /// Maximum visible row position based on visibility_seq (None if nothing visible). + /// Maximum visible row position based on max_visible_batch_position (None if nothing visible). max_visible_row: Option, } @@ -60,7 +60,10 @@ impl Debug for FtsIndexExec { f.debug_struct("FtsIndexExec") .field("column", &self.query.column) .field("query", &self.query.query) - .field("visibility_seq", &self.visibility_seq) + .field( + "max_visible_batch_position", + &self.max_visible_batch_position, + ) .field("index_name", &self.index_name) .finish() } @@ -74,14 +77,14 @@ impl FtsIndexExec { /// * `batch_store` - Lock-free batch store containing data /// * `indexes` - Index registry with FTS indexes /// * `query` - FTS query parameters - /// * `visibility_seq` - MVCC visibility sequence number + /// * `max_visible_batch_position` - MVCC visibility sequence number /// * `projection` - Optional column indices to project /// * `base_schema` - Schema before adding score column pub fn new( batch_store: Arc, indexes: Arc, query: FtsQuery, - visibility_seq: u64, + max_visible_batch_position: usize, projection: Option>, base_schema: SchemaRef, ) -> Result { @@ -133,7 +136,7 @@ impl FtsIndexExec { end: batch_end, batch_id, }); - if stored_batch.seq <= visibility_seq { + if batch_id <= max_visible_batch_position { max_visible_row_exclusive = batch_end as u64; } current_row = batch_end; @@ -150,7 +153,7 @@ impl FtsIndexExec { batch_store, indexes, query, - visibility_seq, + max_visible_batch_position, projection, output_schema, properties, @@ -263,15 +266,21 @@ impl DisplayAs for FtsIndexExec { DisplayFormatType::Default | DisplayFormatType::Verbose => { write!( f, - "FtsIndexExec: index={}, column={}, query={:?}, visibility_seq={}", - self.index_name, self.query.column, self.query.query, self.visibility_seq + "FtsIndexExec: index={}, column={}, query={:?}, max_visible_batch_position={}", + self.index_name, + self.query.column, + self.query.query, + self.max_visible_batch_position ) } DisplayFormatType::TreeRender => { write!( f, - "FtsIndexExec\nindex={}\ncolumn={}\nquery={:?}\nvisibility_seq={}", - self.index_name, self.query.column, self.query.query, self.visibility_seq + "FtsIndexExec\nindex={}\ncolumn={}\nquery={:?}\nmax_visible_batch_position={}", + self.index_name, + self.query.column, + self.query.query, + self.max_visible_batch_position ) } } @@ -391,7 +400,7 @@ mod tests { // Insert test data and update index let batch = create_test_batch(&schema, 0); registry.insert(&batch, 0).unwrap(); - batch_store.append(batch, 1).unwrap(); + batch_store.append(batch).unwrap(); let indexes = Arc::new(registry); @@ -400,7 +409,7 @@ mod tests { query: "hello".to_string(), }; - let exec = FtsIndexExec::new(batch_store, indexes, query, 1, None, schema).unwrap(); + let exec = FtsIndexExec::new(batch_store, indexes, query, 0, None, schema).unwrap(); let ctx = Arc::new(TaskContext::default()); let stream = exec.execute(0, ctx).unwrap(); @@ -423,10 +432,14 @@ mod tests { let mut registry = IndexRegistry::new(); registry.add_fts("text_idx".to_string(), "text".to_string()); - // Insert batch with seq=2 - let batch = create_test_batch(&schema, 0); - registry.insert(&batch, 0).unwrap(); - batch_store.append(batch, 2).unwrap(); + // Insert two batches at positions 0 and 1 + // Each batch has 3 rows, so batch1 has rows 0-2, batch2 has rows 3-5 + let batch1 = create_test_batch(&schema, 0); + let batch2 = create_test_batch(&schema, 5); + registry.insert(&batch1, 0).unwrap(); + registry.insert(&batch2, 3).unwrap(); // start_row_id=3 since batch1 has 3 rows + batch_store.append(batch1).unwrap(); + batch_store.append(batch2).unwrap(); let indexes = Arc::new(registry); @@ -435,12 +448,12 @@ mod tests { query: "hello".to_string(), }; - // Query at seq=1 should not see the batch + // Query with max_visible=0 should only see first batch let exec = FtsIndexExec::new( batch_store.clone(), indexes.clone(), query.clone(), - 1, + 0, None, schema.clone(), ) @@ -451,17 +464,17 @@ mod tests { let batches: Vec = stream.try_collect().await.unwrap(); let total_rows: usize = batches.iter().map(|b| b.num_rows()).sum(); - assert_eq!(total_rows, 0); + assert_eq!(total_rows, 2); // "hello" in batch1 docs 0 and 2 - // Query at seq=2 should see the batch - let exec = FtsIndexExec::new(batch_store, indexes, query, 2, None, schema).unwrap(); + // Query with max_visible=1 should see both batches + let exec = FtsIndexExec::new(batch_store, indexes, query, 1, None, schema).unwrap(); let ctx = Arc::new(TaskContext::default()); let stream = exec.execute(0, ctx).unwrap(); let batches: Vec = stream.try_collect().await.unwrap(); let total_rows: usize = batches.iter().map(|b| b.num_rows()).sum(); - assert_eq!(total_rows, 2); + assert_eq!(total_rows, 4); // "hello" in both batches } #[test] diff --git a/rust/lance/src/dataset/mem_wal/read/memtable/exec/range_scan.rs b/rust/lance/src/dataset/mem_wal/scanner/exec/range_scan.rs similarity index 67% rename from rust/lance/src/dataset/mem_wal/read/memtable/exec/range_scan.rs rename to rust/lance/src/dataset/mem_wal/scanner/exec/range_scan.rs index 4f6b5461a6e..efe374cf520 100644 --- a/rust/lance/src/dataset/mem_wal/read/memtable/exec/range_scan.rs +++ b/rust/lance/src/dataset/mem_wal/scanner/exec/range_scan.rs @@ -1,7 +1,7 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-FileCopyrightText: Copyright The Lance Authors -//! MemTableRangeScanExec - Scan batches within a specific sequence range. +//! MemTableRangeScanExec - Scan batches within a specific batch position range. use std::any::Any; use std::fmt::{Debug, Formatter}; @@ -25,14 +25,14 @@ use futures::stream::{self, StreamExt}; use crate::dataset::mem_wal::write::LockFreeBatchStore; -/// ExecutionPlan node that scans batches within a sequence range. +/// ExecutionPlan node that scans batches within a batch position range. /// /// This is used in split plans to scan the unindexed portion of data, -/// where `min_seq_exclusive < batch.seq <= max_seq_inclusive`. +/// where `min_batch_position_exclusive < batch_position <= max_batch_position_inclusive`. pub struct MemTableRangeScanExec { batch_store: Arc, - min_seq_exclusive: u64, - max_seq_inclusive: u64, + min_batch_position_exclusive: usize, + max_batch_position_inclusive: usize, projection: Option>, output_schema: SchemaRef, filter: Option, @@ -43,8 +43,14 @@ pub struct MemTableRangeScanExec { impl Debug for MemTableRangeScanExec { fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { f.debug_struct("MemTableRangeScanExec") - .field("min_seq_exclusive", &self.min_seq_exclusive) - .field("max_seq_inclusive", &self.max_seq_inclusive) + .field( + "min_batch_position_exclusive", + &self.min_batch_position_exclusive, + ) + .field( + "max_batch_position_inclusive", + &self.max_batch_position_inclusive, + ) .field("projection", &self.projection) .field("has_filter", &self.filter.is_some()) .finish() @@ -57,15 +63,15 @@ impl MemTableRangeScanExec { /// # Arguments /// /// * `batch_store` - Lock-free batch store containing data - /// * `min_seq_exclusive` - Minimum sequence (exclusive): batches with seq > this - /// * `max_seq_inclusive` - Maximum sequence (inclusive): batches with seq <= this + /// * `min_batch_position_exclusive` - Minimum batch position (exclusive): batches with position > this + /// * `max_batch_position_inclusive` - Maximum batch position (inclusive): batches with position <= this /// * `projection` - Optional column indices to project /// * `output_schema` - Schema after projection /// * `filter` - Optional filter expression to apply pub fn new( batch_store: Arc, - min_seq_exclusive: u64, - max_seq_inclusive: u64, + min_batch_position_exclusive: usize, + max_batch_position_inclusive: usize, projection: Option>, output_schema: SchemaRef, filter: Option, @@ -79,8 +85,8 @@ impl MemTableRangeScanExec { Self { batch_store, - min_seq_exclusive, - max_seq_inclusive, + min_batch_position_exclusive, + max_batch_position_inclusive, projection, output_schema, filter, @@ -89,16 +95,10 @@ impl MemTableRangeScanExec { } } - /// Check if a batch is in the sequence range. - fn is_in_range(&self, seq: u64) -> bool { - // Batches with seq = 0 are always visible (legacy), but for range scans - // in split plans, we want to be precise about sequence ranges. - // seq = 0 batches are considered "always indexed" so they won't appear - // in the unindexed range scan. - if seq == 0 { - return false; - } - seq > self.min_seq_exclusive && seq <= self.max_seq_inclusive + /// Check if a batch position is in the range. + fn is_in_range(&self, batch_position: usize) -> bool { + batch_position > self.min_batch_position_exclusive + && batch_position <= self.max_batch_position_inclusive } } @@ -108,15 +108,19 @@ impl DisplayAs for MemTableRangeScanExec { DisplayFormatType::Default | DisplayFormatType::Verbose => { write!( f, - "MemTableRangeScanExec: seq_range=({}, {}], projection={:?}", - self.min_seq_exclusive, self.max_seq_inclusive, self.projection + "MemTableRangeScanExec: batch_position_range=({}, {}], projection={:?}", + self.min_batch_position_exclusive, + self.max_batch_position_inclusive, + self.projection ) } DisplayFormatType::TreeRender => { write!( f, - "MemTableRangeScanExec\nseq_range=({}, {}]\nprojection={:?}", - self.min_seq_exclusive, self.max_seq_inclusive, self.projection + "MemTableRangeScanExec\nbatch_position_range=({}, {}]\nprojection={:?}", + self.min_batch_position_exclusive, + self.max_batch_position_inclusive, + self.projection ) } } @@ -157,12 +161,13 @@ impl ExecutionPlan for MemTableRangeScanExec { _partition: usize, _context: Arc, ) -> DataFusionResult { - // Filter batches by sequence range + // Filter batches by batch position range let batches: Vec = self .batch_store .iter() - .filter(|stored| self.is_in_range(stored.seq)) - .map(|stored| stored.data.clone()) + .enumerate() + .filter(|(batch_position, _)| self.is_in_range(*batch_position)) + .map(|(_, stored)| stored.data.clone()) .collect(); // Apply projection to each batch @@ -195,8 +200,9 @@ impl ExecutionPlan for MemTableRangeScanExec { let count: usize = self .batch_store .iter() - .filter(|stored| self.is_in_range(stored.seq)) - .map(|stored| stored.num_rows) + .enumerate() + .filter(|(batch_position, _)| self.is_in_range(*batch_position)) + .map(|(_, stored)| stored.num_rows) .sum(); Ok(Statistics { @@ -252,47 +258,25 @@ mod tests { let schema = create_test_schema(); let batch_store = Arc::new(LockFreeBatchStore::with_capacity(100)); - // Insert batches with sequences 1, 2, 3, 4, 5 - for seq in 1..=5 { - let batch = create_test_batch(&schema, (seq as i32) * 10, 10); - batch_store.append(batch, seq).unwrap(); + // Insert 5 batches + for i in 0..5 { + batch_store + .append(create_test_batch(&schema, i * 10, 10)) + .unwrap(); } - // Scan range (2, 4] - should get batches with seq 3 and 4 - let exec = MemTableRangeScanExec::new(batch_store, 2, 4, None, schema, None); + // Range scan positions 2-4 (exclusive-inclusive: > 1, <= 4) + let exec = + MemTableRangeScanExec::new(batch_store.clone(), 1, 4, None, schema.clone(), None); let ctx = Arc::new(TaskContext::default()); let stream = exec.execute(0, ctx).unwrap(); let batches: Vec = stream.try_collect().await.unwrap(); - assert_eq!(batches.len(), 2); + // Should get batches at positions 2, 3, 4 (3 batches) + assert_eq!(batches.len(), 3); let total_rows: usize = batches.iter().map(|b| b.num_rows()).sum(); - assert_eq!(total_rows, 20); - } - - #[tokio::test] - async fn test_range_scan_excludes_seq_zero() { - let schema = create_test_schema(); - let batch_store = Arc::new(LockFreeBatchStore::with_capacity(100)); - - // Insert batch with seq 0 (always visible) - batch_store - .append(create_test_batch(&schema, 0, 10), 0) - .unwrap(); - // Insert batch with seq 1 - batch_store - .append(create_test_batch(&schema, 10, 10), 1) - .unwrap(); - - // Range scan (0, 1] should only get seq=1 batch - let exec = MemTableRangeScanExec::new(batch_store, 0, 1, None, schema, None); - - let ctx = Arc::new(TaskContext::default()); - let stream = exec.execute(0, ctx).unwrap(); - let batches: Vec = stream.try_collect().await.unwrap(); - - assert_eq!(batches.len(), 1); - assert_eq!(batches[0].num_rows(), 10); + assert_eq!(total_rows, 30); } #[tokio::test] @@ -300,16 +284,15 @@ mod tests { let schema = create_test_schema(); let batch_store = Arc::new(LockFreeBatchStore::with_capacity(100)); - // Insert batches with seq 1, 2 - batch_store - .append(create_test_batch(&schema, 0, 10), 1) - .unwrap(); - batch_store - .append(create_test_batch(&schema, 10, 10), 2) - .unwrap(); + // Insert 3 batches + for i in 0..3 { + batch_store + .append(create_test_batch(&schema, i * 10, 10)) + .unwrap(); + } - // Range (5, 10] should be empty - let exec = MemTableRangeScanExec::new(batch_store, 5, 10, None, schema, None); + // Empty range (> 5, <= 10 with only 3 batches) + let exec = MemTableRangeScanExec::new(batch_store.clone(), 5, 10, None, schema, None); let ctx = Arc::new(TaskContext::default()); let stream = exec.execute(0, ctx).unwrap(); @@ -324,19 +307,29 @@ mod tests { let batch_store = Arc::new(LockFreeBatchStore::with_capacity(100)); batch_store - .append(create_test_batch(&schema, 0, 10), 1) + .append(create_test_batch(&schema, 0, 10)) + .unwrap(); + batch_store + .append(create_test_batch(&schema, 10, 10)) .unwrap(); // Project only "id" column let projected_schema = Arc::new(Schema::new(vec![Field::new("id", DataType::Int32, false)])); - let exec = - MemTableRangeScanExec::new(batch_store, 0, 1, Some(vec![0]), projected_schema, None); + let exec = MemTableRangeScanExec::new( + batch_store.clone(), + 0, + 1, + Some(vec![0]), + projected_schema, + None, + ); let ctx = Arc::new(TaskContext::default()); let stream = exec.execute(0, ctx).unwrap(); let batches: Vec = stream.try_collect().await.unwrap(); + // Should get batch at position 1 (> 0, <= 1) assert_eq!(batches.len(), 1); assert_eq!(batches[0].num_columns(), 1); assert_eq!(batches[0].schema().field(0).name(), "id"); @@ -348,19 +341,22 @@ mod tests { let batch_store = Arc::new(LockFreeBatchStore::with_capacity(100)); batch_store - .append(create_test_batch(&schema, 0, 10), 1) + .append(create_test_batch(&schema, 0, 10)) .unwrap(); batch_store - .append(create_test_batch(&schema, 10, 20), 2) + .append(create_test_batch(&schema, 10, 20)) .unwrap(); batch_store - .append(create_test_batch(&schema, 30, 15), 3) + .append(create_test_batch(&schema, 30, 15)) .unwrap(); - // Range (1, 3] should include seq 2 and 3 - let exec = MemTableRangeScanExec::new(batch_store, 1, 3, None, schema, None); + // Range positions 0-1 inclusive (> -1, but we use usize so 0, <= 1) + // This means batches at position 0 and 1 if we use min_exclusive = max of usize... + // Actually let's use a proper range: > 0, <= 2 means positions 1 and 2 + let exec = MemTableRangeScanExec::new(batch_store, 0, 2, None, schema, None); let stats = exec.partition_statistics(None).unwrap(); - assert_eq!(stats.num_rows, Precision::Exact(35)); // 20 + 15 + // Positions 1 and 2 have 20 + 15 = 35 rows + assert_eq!(stats.num_rows, Precision::Exact(35)); } } diff --git a/rust/lance/src/dataset/mem_wal/read/memtable/exec/scan.rs b/rust/lance/src/dataset/mem_wal/scanner/exec/scan.rs similarity index 82% rename from rust/lance/src/dataset/mem_wal/read/memtable/exec/scan.rs rename to rust/lance/src/dataset/mem_wal/scanner/exec/scan.rs index dc955ec5943..7e1fe8d67c5 100644 --- a/rust/lance/src/dataset/mem_wal/read/memtable/exec/scan.rs +++ b/rust/lance/src/dataset/mem_wal/scanner/exec/scan.rs @@ -26,11 +26,11 @@ use crate::dataset::mem_wal::write::LockFreeBatchStore; /// ExecutionPlan node that scans all visible batches from a MemTable. /// -/// This node implements MVCC visibility filtering, returning only batches -/// where `seq == 0 || seq <= visibility_seq`. +/// This node implements visibility filtering, returning only batches +/// where `batch_position <= max_visible_batch_position`. pub struct MemTableScanExec { batch_store: Arc, - visibility_seq: u64, + max_visible_batch_position: usize, projection: Option>, output_schema: SchemaRef, properties: PlanProperties, @@ -40,7 +40,10 @@ pub struct MemTableScanExec { impl Debug for MemTableScanExec { fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { f.debug_struct("MemTableScanExec") - .field("visibility_seq", &self.visibility_seq) + .field( + "max_visible_batch_position", + &self.max_visible_batch_position, + ) .field("projection", &self.projection) .finish() } @@ -52,12 +55,12 @@ impl MemTableScanExec { /// # Arguments /// /// * `batch_store` - Lock-free batch store containing data - /// * `visibility_seq` - MVCC visibility sequence number + /// * `max_visible_batch_position` - Maximum batch position visible (inclusive) /// * `projection` - Optional column indices to project /// * `output_schema` - Schema after projection pub fn new( batch_store: Arc, - visibility_seq: u64, + max_visible_batch_position: usize, projection: Option>, output_schema: SchemaRef, ) -> Self { @@ -70,7 +73,7 @@ impl MemTableScanExec { Self { batch_store, - visibility_seq, + max_visible_batch_position, projection, output_schema, properties, @@ -85,15 +88,15 @@ impl DisplayAs for MemTableScanExec { DisplayFormatType::Default | DisplayFormatType::Verbose => { write!( f, - "MemTableScanExec: visibility_seq={}, projection={:?}", - self.visibility_seq, self.projection + "MemTableScanExec: max_visible_batch_position={}, projection={:?}", + self.max_visible_batch_position, self.projection ) } DisplayFormatType::TreeRender => { write!( f, - "MemTableScanExec\nvisibility_seq={}\nprojection={:?}", - self.visibility_seq, self.projection + "MemTableScanExec\nmax_visible_batch_position={}\nprojection={:?}", + self.max_visible_batch_position, self.projection ) } } @@ -135,7 +138,9 @@ impl ExecutionPlan for MemTableScanExec { _context: Arc, ) -> DataFusionResult { // Get all visible batches - let batches = self.batch_store.visible_record_batches(self.visibility_seq); + let batches = self + .batch_store + .visible_record_batches(self.max_visible_batch_position); // Apply projection to each batch let projection = self.projection.clone(); @@ -219,9 +224,10 @@ mod tests { let batch_store = Arc::new(LockFreeBatchStore::with_capacity(100)); let batch = create_test_batch(&schema, 0, 10); - batch_store.append(batch, 1).unwrap(); + batch_store.append(batch).unwrap(); - let exec = MemTableScanExec::new(batch_store, 1, None, schema); + // Batch is at position 0, max_visible=0 means position 0 is visible + let exec = MemTableScanExec::new(batch_store, 0, None, schema); let ctx = Arc::new(TaskContext::default()); let stream = exec.execute(0, ctx).unwrap(); @@ -236,19 +242,19 @@ mod tests { let schema = create_test_schema(); let batch_store = Arc::new(LockFreeBatchStore::with_capacity(100)); - // Insert batches with different sequences + // Insert 3 batches at positions 0, 1, 2 batch_store - .append(create_test_batch(&schema, 0, 10), 1) + .append(create_test_batch(&schema, 0, 10)) .unwrap(); batch_store - .append(create_test_batch(&schema, 10, 10), 2) + .append(create_test_batch(&schema, 10, 10)) .unwrap(); batch_store - .append(create_test_batch(&schema, 20, 10), 3) + .append(create_test_batch(&schema, 20, 10)) .unwrap(); - // Scan at seq 2 should see 2 batches - let exec = MemTableScanExec::new(batch_store.clone(), 2, None, schema.clone()); + // max_visible_batch_position=1 means positions 0 and 1 are visible (2 batches) + let exec = MemTableScanExec::new(batch_store.clone(), 1, None, schema.clone()); let ctx = Arc::new(TaskContext::default()); let stream = exec.execute(0, ctx).unwrap(); let batches: Vec = stream.try_collect().await.unwrap(); @@ -264,12 +270,12 @@ mod tests { let batch_store = Arc::new(LockFreeBatchStore::with_capacity(100)); let batch = create_test_batch(&schema, 0, 10); - batch_store.append(batch, 1).unwrap(); + batch_store.append(batch).unwrap(); // Project only "id" column (index 0) let projected_schema = Arc::new(Schema::new(vec![Field::new("id", DataType::Int32, false)])); - let exec = MemTableScanExec::new(batch_store, 1, Some(vec![0]), projected_schema); + let exec = MemTableScanExec::new(batch_store, 0, Some(vec![0]), projected_schema); let ctx = Arc::new(TaskContext::default()); let stream = exec.execute(0, ctx).unwrap(); @@ -285,7 +291,8 @@ mod tests { let schema = create_test_schema(); let batch_store = Arc::new(LockFreeBatchStore::with_capacity(100)); - let exec = MemTableScanExec::new(batch_store, 1, None, schema); + // Empty store with max_visible=0 should return no batches + let exec = MemTableScanExec::new(batch_store, 0, None, schema); let ctx = Arc::new(TaskContext::default()); let stream = exec.execute(0, ctx).unwrap(); @@ -300,13 +307,14 @@ mod tests { let batch_store = Arc::new(LockFreeBatchStore::with_capacity(100)); batch_store - .append(create_test_batch(&schema, 0, 10), 1) + .append(create_test_batch(&schema, 0, 10)) .unwrap(); batch_store - .append(create_test_batch(&schema, 10, 20), 2) + .append(create_test_batch(&schema, 10, 20)) .unwrap(); - let exec = MemTableScanExec::new(batch_store, 2, None, schema); + // max_visible=1 means positions 0 and 1 are visible + let exec = MemTableScanExec::new(batch_store, 1, None, schema); let stats = exec.partition_statistics(None).unwrap(); // Statistics are Absent to avoid DataFusion analysis bugs diff --git a/rust/lance/src/dataset/mem_wal/read/memtable/exec/split.rs b/rust/lance/src/dataset/mem_wal/scanner/exec/split.rs similarity index 97% rename from rust/lance/src/dataset/mem_wal/read/memtable/exec/split.rs rename to rust/lance/src/dataset/mem_wal/scanner/exec/split.rs index 27da286989b..8614079d184 100644 --- a/rust/lance/src/dataset/mem_wal/read/memtable/exec/split.rs +++ b/rust/lance/src/dataset/mem_wal/scanner/exec/split.rs @@ -194,9 +194,15 @@ mod tests { let schema = create_test_schema(); let batch_store = Arc::new(LockFreeBatchStore::with_capacity(100)); for batch in batches { - batch_store.append(batch, 1).unwrap(); + batch_store.append(batch).unwrap(); } - Arc::new(MemTableScanExec::new(batch_store, 1, None, schema)) + let max_batch_pos = batch_store.max_buffered_batch_position().unwrap_or(0); + Arc::new(MemTableScanExec::new( + batch_store, + max_batch_pos, + None, + schema, + )) } #[tokio::test] diff --git a/rust/lance/src/dataset/mem_wal/read/memtable/exec/vector.rs b/rust/lance/src/dataset/mem_wal/scanner/exec/vector.rs similarity index 93% rename from rust/lance/src/dataset/mem_wal/read/memtable/exec/vector.rs rename to rust/lance/src/dataset/mem_wal/scanner/exec/vector.rs index cc7b4c6df86..770eca8b79d 100644 --- a/rust/lance/src/dataset/mem_wal/read/memtable/exec/vector.rs +++ b/rust/lance/src/dataset/mem_wal/scanner/exec/vector.rs @@ -24,7 +24,7 @@ use futures::stream::{self, StreamExt}; use lance_core::{Error, Result}; use snafu::location; -use super::super::scanner::VectorQuery; +use super::super::builder::VectorQuery; use crate::dataset::mem_wal::write::{IndexRegistry, LockFreeBatchStore}; /// Distance column name in output. @@ -35,7 +35,7 @@ pub struct VectorIndexExec { batch_store: Arc, indexes: Arc, query: VectorQuery, - visibility_seq: u64, + max_visible_batch_position: usize, projection: Option>, output_schema: SchemaRef, properties: PlanProperties, @@ -49,7 +49,10 @@ impl Debug for VectorIndexExec { .field("column", &self.query.column) .field("k", &self.query.k) .field("nprobes", &self.query.nprobes) - .field("visibility_seq", &self.visibility_seq) + .field( + "max_visible_batch_position", + &self.max_visible_batch_position, + ) .field("index_name", &self.index_name) .finish() } @@ -63,14 +66,14 @@ impl VectorIndexExec { /// * `batch_store` - Lock-free batch store containing data /// * `indexes` - Index registry with IVF-PQ indexes /// * `query` - Vector query parameters - /// * `visibility_seq` - MVCC visibility sequence number + /// * `max_visible_batch_position` - MVCC visibility sequence number /// * `projection` - Optional column indices to project /// * `output_schema` - Schema after projection (will add _distance column) pub fn new( batch_store: Arc, indexes: Arc, query: VectorQuery, - visibility_seq: u64, + max_visible_batch_position: usize, projection: Option>, base_schema: SchemaRef, ) -> Result { @@ -113,7 +116,7 @@ impl VectorIndexExec { batch_store, indexes, query, - visibility_seq, + max_visible_batch_position, projection, output_schema, properties, @@ -122,17 +125,17 @@ impl VectorIndexExec { }) } - /// Compute the maximum visible row position based on visibility_seq. + /// Compute the maximum visible row position based on max_visible_batch_position. /// - /// Returns the last row position that is visible at the given visibility_seq, + /// Returns the last row position that is visible at the given max_visible_batch_position, /// or None if no batches are visible. fn compute_max_visible_row(&self) -> Option { let mut max_visible_row_exclusive: u64 = 0; let mut current_row: u64 = 0; - for stored_batch in self.batch_store.iter() { + for (batch_position, stored_batch) in self.batch_store.iter().enumerate() { let batch_end = current_row + stored_batch.num_rows as u64; - if stored_batch.seq <= self.visibility_seq { + if batch_position <= self.max_visible_batch_position { max_visible_row_exclusive = batch_end; } current_row = batch_end; @@ -258,23 +261,23 @@ impl DisplayAs for VectorIndexExec { DisplayFormatType::Default | DisplayFormatType::Verbose => { write!( f, - "VectorIndexExec: index={}, column={}, k={}, nprobes={}, visibility_seq={}", + "VectorIndexExec: index={}, column={}, k={}, nprobes={}, max_visible_batch_position={}", self.index_name, self.query.column, self.query.k, self.query.nprobes, - self.visibility_seq + self.max_visible_batch_position ) } DisplayFormatType::TreeRender => { write!( f, - "VectorIndexExec\nindex={}\ncolumn={}\nk={}\nnprobes={}\nvisibility_seq={}", + "VectorIndexExec\nindex={}\ncolumn={}\nk={}\nnprobes={}\nmax_visible_batch_position={}", self.index_name, self.query.column, self.query.k, self.query.nprobes, - self.visibility_seq + self.max_visible_batch_position ) } } diff --git a/rust/lance/src/dataset/mem_wal/util.rs b/rust/lance/src/dataset/mem_wal/util.rs index 0cd658c50c6..28e0a8ed5d4 100644 --- a/rust/lance/src/dataset/mem_wal/util.rs +++ b/rust/lance/src/dataset/mem_wal/util.rs @@ -97,8 +97,8 @@ pub fn generate_random_hash() -> String { /// WAL entry filename. /// /// Returns bit-reversed filename with .lance extension (Lance format). -pub fn wal_entry_filename(wal_id: u64) -> String { - bit_reversed_filename(wal_id, "lance") +pub fn wal_entry_filename(wal_entry_position: u64) -> String { + bit_reversed_filename(wal_entry_position, "lance") } /// Region manifest filename. diff --git a/rust/lance/src/dataset/mem_wal/write/watchable_cell.rs b/rust/lance/src/dataset/mem_wal/watchable_cell.rs similarity index 100% rename from rust/lance/src/dataset/mem_wal/write/watchable_cell.rs rename to rust/lance/src/dataset/mem_wal/watchable_cell.rs diff --git a/rust/lance/src/dataset/mem_wal/write.rs b/rust/lance/src/dataset/mem_wal/write.rs index 4e4512c46ca..da136fcd04d 100644 --- a/rust/lance/src/dataset/mem_wal/write.rs +++ b/rust/lance/src/dataset/mem_wal/write.rs @@ -1,50 +1,1256 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-FileCopyrightText: Copyright The Lance Authors +#![allow(clippy::print_stderr)] + //! Write path for MemWAL. //! //! This module contains all components for the write path: //! - [`RegionWriter`] - Main writer interface for a single region //! - [`MemTable`] - In-memory table storing Arrow RecordBatches -//! - [`WalBuffer`] - Write-ahead log buffer for durability (Arrow IPC format) +//! - [`WalFlusher`] - Write-ahead log buffer for durability (Arrow IPC format) //! - [`IndexRegistry`] - In-memory index management //! - [`MemTableFlusher`] - Flush MemTable to storage as single Lance file -mod batch_store; mod batch_write; mod flush; -mod indexes; -mod ivfpq_store; -mod memtable; -#[cfg(test)] -mod memtable_perf_test; -mod sequenced_batch; mod stats; mod wal; -mod watchable_cell; -mod writer; -pub use batch_write::{ - write_batch_channel, BackpressureController, BackpressureProvider, BackpressureStats, - DurabilityCell, DurabilityResult, DurabilityWatcher, WriteBatchHandler, WriteBatchMessage, - WriteBatchReceiver, WriteBatchResult, WriteBatchSender, WriterStateOps, WRITE_BATCH_TASK_NAME, -}; -pub use flush::MemTableFlusher; -pub use indexes::{ +use std::collections::VecDeque; +use std::sync::Arc; +use std::time::Instant; + +use arrow_array::RecordBatch; +use arrow_schema::Schema as ArrowSchema; +use async_trait::async_trait; +use lance_core::datatypes::Schema; +use lance_core::{Error, Result}; +use lance_index::mem_wal::RegionManifest; +use lance_io::object_store::ObjectStore; +use object_store::path::Path; +use snafu::location; +use tokio::sync::{mpsc, RwLock}; +use tracing::{debug, info}; +use uuid::Uuid; + +pub use super::batch_store::{LockFreeBatchStore, StoreFull, StoredBatch}; +pub use super::indexes::{ BTreeIndexConfig, BTreeMemIndex, CoverageResult, FtsIndexConfig, IndexCoverageInfo, - IndexRegistry, IndexUpdateHandler, IndexUpdateMsg, IvfPqIndexConfig, MemIndexConfig, + IndexRegistry, IvfPqIndexConfig, MemIndexConfig, }; -pub use memtable::CacheConfig; -pub use memtable::MemTable; -pub use sequenced_batch::{filter_visible, SequencedBatch, SequencedBatchBuilder}; -pub use stats::{new_shared_stats, SharedWriteStats, WriteStats, WriteStatsSnapshot}; -pub use wal::{WalBuffer, WalEntry, WalEntryData}; -pub use watchable_cell::{ +pub use super::memtable::CacheConfig; +pub use super::memtable::MemTable; +pub use super::watchable_cell::{ ClosedStatus, MonotonicSeq, SendSafely, WatchableOnceCell, WatchableOnceCellReader, }; -pub use writer::RegionWriter; +pub use batch_write::{ + BackpressureController, BackpressureStats, DurabilityCell, DurabilityResult, DurabilityWatcher, +}; +pub use flush::MemTableFlusher; +pub use stats::{new_shared_stats, SharedWriteStats, WriteStats, WriteStatsSnapshot}; +pub use wal::{WalEntry, WalEntryData, WalFlushResult, WalFlusher}; + +use flush::TriggerMemTableFlush; +use wal::TriggerWalFlush; + +use super::config::RegionWriterConfig; +use super::dispatcher::{DurableWatcher, MessageHandler, TaskExecutor}; +use super::epoch::EpochGuard; +use super::manifest::RegionManifestStore; + +fn log_ts() -> String { + chrono::Local::now().format("%H:%M:%S%.3f").to_string() +} + +/// Result of a write operation. +#[derive(Debug)] +pub struct WriteResult { + /// Batch ID in the MemTable. + pub batch_position: usize, + /// Watcher to await durability (if durable_write enabled). + pub durable_watcher: Option, +} + +/// RegionWriter state shared across tasks. +struct WriterState { + memtable: MemTable, + last_flushed_wal_entry_position: u64, + /// Total size of frozen memtables (for backpressure). + frozen_memtable_bytes: usize, + /// Flush watchers for frozen memtables (for backpressure). + frozen_flush_watchers: VecDeque<(usize, DurabilityWatcher)>, + /// Flag to prevent duplicate memtable flush requests. + flush_requested: bool, + /// Counter for WAL flush threshold crossings. + wal_flush_trigger_count: usize, + /// Last time a WAL flush was triggered (for time-based flush). + last_wal_flush_trigger_time: u64, +} + +fn start_time() -> std::time::Instant { + use std::sync::OnceLock; + static START: OnceLock = OnceLock::new(); + *START.get_or_init(std::time::Instant::now) +} + +fn now_millis() -> u64 { + start_time().elapsed().as_millis() as u64 +} + +/// Shared state for writer operations. +struct SharedWriterState { + state: Arc>, + wal_flusher: Arc, + wal_flush_tx: mpsc::UnboundedSender, + memtable_flush_tx: mpsc::UnboundedSender, + config: RegionWriterConfig, + schema: Arc, + pk_field_ids: Vec, + max_memtable_batches: usize, + max_memtable_rows: usize, + ivf_index_partition_capacity_safety_factor: usize, + index_configs: Vec, +} + +impl SharedWriterState { + #[allow(clippy::too_many_arguments)] + fn new( + state: Arc>, + wal_flusher: Arc, + wal_flush_tx: mpsc::UnboundedSender, + memtable_flush_tx: mpsc::UnboundedSender, + config: RegionWriterConfig, + schema: Arc, + pk_field_ids: Vec, + max_memtable_batches: usize, + max_memtable_rows: usize, + ivf_index_partition_capacity_safety_factor: usize, + index_configs: Vec, + ) -> Self { + Self { + state, + wal_flusher, + wal_flush_tx, + memtable_flush_tx, + config, + schema, + pk_field_ids, + max_memtable_batches, + max_memtable_rows, + ivf_index_partition_capacity_safety_factor, + index_configs, + } + } + + /// Freeze the current memtable and send it to the flush handler. + /// + /// Takes `&mut WriterState` directly since caller already holds the lock. + fn freeze_memtable(&self, state: &mut WriterState) -> Result { + let freeze_start = std::time::Instant::now(); + eprintln!("[{}][FREEZE] Starting freeze_memtable", log_ts()); + + let pending_wal_range = state.memtable.batch_store().pending_wal_flush_range(); + let last_wal_entry_position = state.last_flushed_wal_entry_position; + let old_batch_count = + state.memtable.batch_capacity() - state.memtable.remaining_batch_capacity(); + + eprintln!( + "[{}][FREEZE] Swapping memtable: old had {} batches, pending_wal_range={:?}", + log_ts(), + old_batch_count, + pending_wal_range + ); + + let old_batch_store = state.memtable.batch_store(); + let old_indexes = state.memtable.indexes_arc(); + + let next_generation = state.memtable.generation() + 1; + let mut new_memtable = MemTable::with_capacity( + self.schema.clone(), + next_generation, + self.pk_field_ids.clone(), + CacheConfig::default(), + self.max_memtable_batches, + )?; + + if !self.index_configs.is_empty() { + let indexes = Arc::new(IndexRegistry::from_configs( + &self.index_configs, + self.max_memtable_rows, + self.ivf_index_partition_capacity_safety_factor, + )?); + new_memtable.set_indexes_arc(indexes); + } + + let mut old_memtable = std::mem::replace(&mut state.memtable, new_memtable); + old_memtable.freeze(last_wal_entry_position); + let _memtable_flush_watcher = old_memtable.create_memtable_flush_completion(); + + if pending_wal_range.is_some() { + let completion_cell: WatchableOnceCell> = + WatchableOnceCell::new(); + let completion_reader = completion_cell.reader(); + old_memtable.set_wal_flush_completion(completion_reader); + + let end_batch_position = old_batch_store.len(); + eprintln!( + "[{}][FREEZE] Sending TriggerWalFlush (frozen) to WAL handler queue, end_batch_position={}", + log_ts(), + end_batch_position + ); + self.wal_flusher.trigger_flush( + old_batch_store, + old_indexes, + end_batch_position, + Some(completion_cell), + )?; + } + + let frozen_size = old_memtable.estimated_size(); + state.frozen_memtable_bytes += frozen_size; + state.last_flushed_wal_entry_position = last_wal_entry_position; + + let flush_watcher = old_memtable + .get_memtable_flush_watcher() + .expect("Flush watcher should exist after create_memtable_flush_completion"); + state + .frozen_flush_watchers + .push_back((frozen_size, flush_watcher)); + + let frozen_memtable = Arc::new(old_memtable); + + debug!( + "Frozen memtable generation {}, pending_count = {}", + next_generation - 1, + state.frozen_flush_watchers.len() + ); + + eprintln!( + "[{}][FREEZE] Complete: gen={} frozen_count={} new_capacity={} took={}ms", + log_ts(), + next_generation - 1, + state.frozen_flush_watchers.len(), + state.memtable.remaining_batch_capacity(), + freeze_start.elapsed().as_millis() + ); + + let _ = self.memtable_flush_tx.send(TriggerMemTableFlush { + memtable: frozen_memtable, + done: None, + }); + + Ok(next_generation) + } + + /// Track batch for WAL durability. + fn track_batch_for_wal(&self, batch_position: usize) -> DurabilityWatcher { + let _wal_watcher = self.wal_flusher.track_batch(batch_position); + // Return pre-resolved watcher for non-durable case + let cell: WatchableOnceCell = WatchableOnceCell::new(); + cell.write(DurabilityResult::ok()); + cell.reader() + } + + /// Check if memtable flush is needed and trigger if so. + /// + /// Takes `&mut WriterState` directly since caller already holds the lock. + fn maybe_trigger_memtable_flush(&self, state: &mut WriterState) -> Result<()> { + if state.flush_requested { + return Ok(()); + } + + let should_flush = state.memtable.estimated_size() >= self.config.max_memtable_size + || state.memtable.is_batch_store_full(); + + if should_flush { + state.flush_requested = true; + self.freeze_memtable(state)?; + state.flush_requested = false; + } + Ok(()) + } + + /// Check if WAL flush is needed and trigger if so. + /// + /// Takes `&mut WriterState` directly since caller already holds the lock. + fn maybe_trigger_wal_flush(&self, state: &mut WriterState) { + let threshold = self.config.max_wal_buffer_size; + + let batch_count = state.memtable.batch_count(); + let total_bytes = state.memtable.estimated_size(); + let batch_store = state.memtable.batch_store(); + let indexes = state.memtable.indexes_arc(); + + // Check if there are any unflushed batches + let has_pending = batch_store.pending_wal_flush_count() > 0; + + // Check time-based trigger first + let time_trigger = if let Some(interval) = self.config.max_wal_flush_interval { + let interval_millis = interval.as_millis() as u64; + let last_trigger = state.last_wal_flush_trigger_time; + let now = now_millis(); + + // If last_trigger is 0, this is the first write - start the timer but don't flush + if last_trigger == 0 { + state.last_wal_flush_trigger_time = now; + None + } else { + let elapsed = now.saturating_sub(last_trigger); + + if elapsed >= interval_millis && has_pending { + state.last_wal_flush_trigger_time = now; + Some(now) + } else { + None + } + } + } else { + None + }; + + // If time trigger fired, send a flush message + if time_trigger.is_some() { + eprintln!( + "[{}][WAL_TIME_TRIGGER] total_bytes={}, interval elapsed, triggering flush to batch #{}", + log_ts(), + total_bytes, + batch_count + ); + let _ = self.wal_flush_tx.send(TriggerWalFlush { + batch_store, + indexes, + end_batch_position: batch_count, + done: None, + }); + return; + } + + // Check size-based trigger + if threshold == 0 { + return; + } + + // Calculate how many thresholds have been crossed (1 at 10MB, 2 at 20MB, etc.) + let thresholds_crossed = total_bytes / threshold; + + // Trigger flush for each unclaimed threshold crossing + while state.wal_flush_trigger_count < thresholds_crossed { + state.wal_flush_trigger_count += 1; + // Update last trigger time so time-based trigger doesn't fire immediately after + state.last_wal_flush_trigger_time = now_millis(); + + eprintln!( + "[{}][WAL_SIZE_TRIGGER] total_bytes={}, threshold #{} crossed ({}MB), triggering flush to batch #{}", + log_ts(), + total_bytes, + state.wal_flush_trigger_count, + state.wal_flush_trigger_count * threshold / (1024 * 1024), + batch_count + ); + // Trigger WAL flush with captured batch range + let _ = self.wal_flush_tx.send(TriggerWalFlush { + batch_store: batch_store.clone(), + indexes: indexes.clone(), + end_batch_position: batch_count, + done: None, + }); + } + } +} + +impl SharedWriterState { + fn unflushed_memtable_bytes(&self) -> usize { + // Total unflushed bytes = active memtable + all frozen memtables + self.state + .try_read() + .ok() + .map(|s| { + let active = s.memtable.estimated_size(); + active + s.frozen_memtable_bytes + }) + .unwrap_or(0) + } + + fn oldest_memtable_watcher(&self) -> Option { + // Return a watcher for the oldest frozen memtable's flush completion. + // If no frozen memtables, return the active memtable's watcher since it will + // eventually be frozen and flushed. + self.state.try_read().ok().and_then(|s| { + // First try frozen memtable watchers + s.frozen_flush_watchers + .front() + .map(|(_, watcher)| watcher.clone()) + // If no frozen memtables, use active memtable's watcher + .or_else(|| s.memtable.get_memtable_flush_watcher()) + }) + } +} + +/// Main writer for a MemWAL region. +pub struct RegionWriter { + config: RegionWriterConfig, + epoch_guard: Arc, + state: Arc>, + wal_flusher: Arc, + task_executor: Arc, + manifest_store: Arc, + stats: SharedWriteStats, + writer_state: Arc, + backpressure: BackpressureController, +} + +impl RegionWriter { + /// Open or create a RegionWriter. + /// + /// The `base_path` should come from `ObjectStore::from_uri()` to ensure + /// WAL files are written inside the dataset directory. + pub async fn open( + object_store: Arc, + base_path: Path, + base_uri: impl Into, + config: RegionWriterConfig, + schema: Arc, + index_configs: Vec, + ) -> Result { + let base_uri = base_uri.into(); + let region_id = config.region_id; + let manifest_store = Arc::new(RegionManifestStore::new( + object_store.clone(), + &base_path, + region_id, + config.manifest_scan_batch_size, + )); + + // Claim the region (epoch-based fencing) + let (epoch_guard, manifest) = + EpochGuard::claim(manifest_store.clone(), config.region_spec_id).await?; + let epoch_guard = Arc::new(epoch_guard); + + info!( + "Opened RegionWriter for region {} (epoch {}, generation {})", + region_id, + epoch_guard.epoch(), + manifest.current_generation + ); + + // Create MemTable with primary key field IDs from schema + let lance_schema = Schema::try_from(schema.as_ref())?; + let pk_field_ids: Vec = lance_schema + .unenforced_primary_key() + .iter() + .map(|f| f.id) + .collect(); + let mut memtable = MemTable::with_capacity( + schema.clone(), + manifest.current_generation, + pk_field_ids.clone(), + CacheConfig::default(), + config.max_memtable_batches, + )?; + + // Create indexes if configured and set them on the MemTable + // Indexes are always created when index_configs is non-empty + // (they will be updated either sync or async based on config) + if !index_configs.is_empty() { + let indexes = Arc::new(IndexRegistry::from_configs( + &index_configs, + config.max_memtable_rows, + config.ivf_index_partition_capacity_safety_factor, + )?); + memtable.set_indexes_arc(indexes); + } + + let state = Arc::new(RwLock::new(WriterState { + memtable, + last_flushed_wal_entry_position: manifest.wal_id_last_seen, + frozen_memtable_bytes: 0, + frozen_flush_watchers: VecDeque::new(), + flush_requested: false, + wal_flush_trigger_count: 0, + last_wal_flush_trigger_time: 0, + })); + + // Create WAL flusher + let mut wal_flusher = WalFlusher::new( + &base_path, + region_id, + epoch_guard.epoch(), + manifest.wal_id_last_seen + 1, + ); + wal_flusher.set_object_store(object_store.clone()); + + // Create channels for background tasks + let (wal_flush_tx, wal_flush_rx) = mpsc::unbounded_channel(); + let (memtable_flush_tx, memtable_flush_rx) = mpsc::unbounded_channel(); + + wal_flusher.set_flush_channel(wal_flush_tx.clone()); + let wal_flusher = Arc::new(wal_flusher); + + // Create flusher + let flusher = Arc::new(MemTableFlusher::new( + object_store.clone(), + base_path, + base_uri, + region_id, + manifest_store.clone(), + )); + + // Create stats collector + let stats = new_shared_stats(); + + let backpressure = BackpressureController::new(config.clone()); + + // Create task executor + let task_executor = Arc::new(TaskExecutor::new()); + + // Start background WAL flush handler + // The WAL flush handler does parallel WAL I/O + index updates + eprintln!( + "[{}][WRITER] Creating wal_flusher with flush_interval={:?}", + log_ts(), + config.max_wal_flush_interval + ); + let wal_handler = WalFlushHandler::new(wal_flusher.clone(), state.clone(), stats.clone()); + task_executor.add_handler( + "wal_flusher".to_string(), + Box::new(wal_handler), + wal_flush_rx, + )?; + + // Start background MemTable flush handler + // Note: Freezing is handled by SharedWriterState, not this handler. + // This handler only processes frozen memtables from the queue. + let memtable_handler = + MemTableFlushHandler::new(state.clone(), flusher, epoch_guard.clone(), stats.clone()); + eprintln!("[{}][WRITER] Adding memtable_flusher handler", log_ts()); + task_executor.add_handler( + "memtable_flusher".to_string(), + Box::new(memtable_handler), + memtable_flush_rx, + )?; + eprintln!("[{}][WRITER] memtable_flusher handler added", log_ts()); + + // Create shared writer state for put() operations + let writer_state = Arc::new(SharedWriterState::new( + state.clone(), + wal_flusher.clone(), + wal_flush_tx, + memtable_flush_tx, + config.clone(), + schema.clone(), + pk_field_ids, + config.max_memtable_batches, + config.max_memtable_rows, + config.ivf_index_partition_capacity_safety_factor, + index_configs, + )); + + Ok(Self { + config, + epoch_guard, + state, + wal_flusher, + task_executor, + manifest_store, + stats, + writer_state, + backpressure, + }) + } + + /// Write a record batch to the region. + /// + /// # Arguments + /// + /// * `batch` - The record batch to write + /// + /// # Returns + /// + /// A WriteResult with fragment ID and optional durability watcher. + /// + /// # Note + /// + /// Fencing is detected lazily during WAL flush via atomic writes. + /// If another writer has taken over, the WAL flush will fail with + /// `AlreadyExists`, indicating this writer has been fenced. + pub async fn put(&self, batch: RecordBatch) -> Result { + static PUT_COUNT: std::sync::atomic::AtomicU64 = std::sync::atomic::AtomicU64::new(0); + let count = PUT_COUNT.fetch_add(1, std::sync::atomic::Ordering::Relaxed); + if count % 100 == 0 { + eprintln!("[{}][PUT] put #{}", log_ts(), count); + } + + let num_rows = batch.num_rows(); + if num_rows == 0 { + return Err(Error::invalid_input( + "Cannot write empty batch", + location!(), + )); + } + + // Apply backpressure if needed (before acquiring main lock) + let writer_state = &self.writer_state; + let bp_start = std::time::Instant::now(); + self.backpressure + .maybe_apply_backpressure(|| { + ( + writer_state.unflushed_memtable_bytes(), + writer_state.oldest_memtable_watcher(), + ) + }) + .await?; + let bp_elapsed = bp_start.elapsed(); + if bp_elapsed.as_millis() > 1 { + debug!( + "[{}][BP] waited {}ms | unflushed_memtable_bytes={}", + log_ts(), + bp_elapsed.as_millis(), + writer_state.unflushed_memtable_bytes() + ); + } + + let start = std::time::Instant::now(); + + // Acquire write lock for entire operation (atomic approach) + let (batch_position, durable_watcher, batch_store, indexes) = { + let mut state = self.state.write().await; + + // 1. Insert batch into memtable + let (batch_position, _row_offset, _estimated_size) = + state.memtable.insert_batch_only(batch).await?; + + // 2. Track batch for WAL durability + let durable_watcher = self.writer_state.track_batch_for_wal(batch_position); + + // 3. Check if WAL flush should be triggered + self.writer_state.maybe_trigger_wal_flush(&mut state); + + // 4. Check if memtable flush is needed + if let Err(e) = self.writer_state.maybe_trigger_memtable_flush(&mut state) { + tracing::warn!("Failed to trigger memtable flush: {}", e); + } + + // Get batch_store and indexes while we have the lock (for durable_write case) + let batch_store = state.memtable.batch_store(); + let indexes = state.memtable.indexes_arc(); + + (batch_position, durable_watcher, batch_store, indexes) + }; // Lock released here + + self.stats.record_put(start.elapsed()); + + debug!( + "Wrote {} rows to region {} (batch_position={})", + num_rows, self.config.region_id, batch_position + ); + + // Wait for durability if configured (outside the lock) + let durable_watcher = if self.config.durable_write { + // Must trigger a flush to ensure durability (flush up to and including this batch) + self.wal_flusher + .trigger_flush(batch_store, indexes, batch_position + 1, None)?; + durable_watcher.clone().await_value().await.into_result()?; + None + } else { + None + }; + + Ok(WriteResult { + batch_position, + durable_watcher, + }) + } + + /// Get a snapshot of current write statistics. + pub fn stats(&self) -> WriteStatsSnapshot { + self.stats.snapshot() + } + + /// Get the shared stats handle (for external monitoring). + pub fn stats_handle(&self) -> SharedWriteStats { + self.stats.clone() + } + + /// Get the current region manifest. + pub async fn manifest(&self) -> Result> { + self.manifest_store.read_latest().await + } + + /// Get the writer's epoch. + pub fn epoch(&self) -> u64 { + self.epoch_guard.epoch() + } + + /// Get the region ID. + pub fn region_id(&self) -> Uuid { + self.config.region_id + } + + /// Get current MemTable statistics. + pub async fn memtable_stats(&self) -> MemTableStats { + let state = self.state.read().await; + MemTableStats { + row_count: state.memtable.row_count(), + batch_count: state.memtable.batch_count(), + estimated_size: state.memtable.estimated_size(), + generation: state.memtable.generation(), + } + } + + /// Get WAL statistics. + pub fn wal_stats(&self) -> WalStats { + WalStats { + next_wal_entry_position: self.wal_flusher.next_wal_entry_position(), + } + } -pub use batch_store::{LockFreeBatchStore, StoreFull, StoredBatch}; + /// Close the writer gracefully. + /// + /// Flushes pending data and shuts down background tasks. + pub async fn close(self) -> Result<()> { + info!("Closing RegionWriter for region {}", self.config.region_id); + + // Send final WAL flush message and wait for completion + let state = self.state.read().await; + let batch_store = state.memtable.batch_store(); + let indexes = state.memtable.indexes_arc(); + let batch_count = state.memtable.batch_count(); + drop(state); + + // Only send flush if there are batches to flush + if batch_count > 0 { + // Create a completion cell to wait for flush + let done = WatchableOnceCell::new(); + let reader = done.reader(); + + // Send flush message with end_batch_position = batch_count to flush all pending + if self + .writer_state + .wal_flush_tx + .send(TriggerWalFlush { + batch_store, + indexes, + end_batch_position: batch_count, + done: Some(done), + }) + .is_ok() + { + // Wait for flush to complete + let mut reader = reader; + let _ = reader.await_value().await; + } + } + + // Shutdown background tasks + self.task_executor.shutdown_all().await?; + + info!("RegionWriter closed for region {}", self.config.region_id); + Ok(()) + } +} + +/// MemTable statistics. +#[derive(Debug, Clone)] +pub struct MemTableStats { + pub row_count: usize, + pub batch_count: usize, + pub estimated_size: usize, + pub generation: u64, +} + +/// WAL statistics. +#[derive(Debug, Clone)] +pub struct WalStats { + /// Next WAL entry position to be used. + pub next_wal_entry_position: u64, +} + +/// Background handler for WAL flush operations. +/// +/// This handler does parallel WAL I/O + index updates during flush. +/// Indexes are passed through the TriggerWalFlush message. +struct WalFlushHandler { + wal_flusher: Arc, + state: Arc>, + stats: SharedWriteStats, +} + +impl WalFlushHandler { + fn new( + wal_flusher: Arc, + state: Arc>, + stats: SharedWriteStats, + ) -> Self { + Self { + wal_flusher, + state, + stats, + } + } +} + +#[async_trait] +impl MessageHandler for WalFlushHandler { + async fn handle(&mut self, message: TriggerWalFlush) -> Result<()> { + let TriggerWalFlush { + batch_store, + indexes, + end_batch_position, + done, + } = message; + + let pending_count = batch_store.pending_wal_flush_count(); + eprintln!( + "[{}][WAL_FLUSH_HANDLER] Received TriggerWalFlush: pending={}, end_batch_position={}", + log_ts(), + pending_count, + end_batch_position + ); + + let result = self + .do_flush(batch_store, indexes, end_batch_position) + .await; + + // Notify completion if requested + if let Some(cell) = done { + cell.write(result.map_err(|e| e.to_string())); + } + + Ok(()) + } +} + +impl WalFlushHandler { + /// Unified flush method for both active and frozen memtables. + /// + /// Detects frozen vs active flush by comparing the passed batch_store with the + /// current active memtable's batch_store. If different, it's a frozen memtable flush. + /// + /// # Arguments + /// + /// * `batch_store` - The batch store to flush from + /// * `indexes` - Optional indexes to update in parallel with WAL I/O + /// * `end_batch_position` - End batch ID (exclusive). Flush batches in (max_flushed, end_batch_position). + async fn do_flush( + &self, + batch_store: Arc, + indexes: Option>, + end_batch_position: usize, + ) -> Result { + let start = Instant::now(); + // Use batch_store's watermark - this is the authoritative source + let max_flushed = batch_store.max_flushed_batch_position(); + // Convert to count-like value for comparison: number of batches already flushed + let flushed_up_to = max_flushed.map(|p| p + 1).unwrap_or(0); + + // Detect if this is a frozen memtable flush by comparing batch_store pointers. + // If the batch_store is different from the current active memtable's, it's frozen. + let is_frozen_flush = { + let state = self.state.read().await; + !Arc::ptr_eq(&batch_store, &state.memtable.batch_store()) + }; + + // Check if there's anything to flush (only skip for active memtable) + if !is_frozen_flush && flushed_up_to >= end_batch_position { + eprintln!( + "[{}][WAL_FLUSH_HANDLER] Skipping flush to batch #{} - already flushed up to position {:?}", + log_ts(), + end_batch_position, + max_flushed + ); + return Ok(WalFlushResult { + entry: None, + wal_io_duration: std::time::Duration::ZERO, + index_update_duration: std::time::Duration::ZERO, + index_update_duration_breakdown: std::collections::HashMap::new(), + rows_indexed: 0, + wal_bytes: 0, + }); + } + + // Flush batches up to end_batch_position + let flush_result = self + .wal_flusher + .flush_to_with_index_update(&batch_store, end_batch_position, indexes) + .await?; + + let batches_flushed = flush_result + .entry + .as_ref() + .map(|e| e.batch_positionitions.len()) + .unwrap_or(0); + + // Note: WAL watermark is already updated by flush_to_with_index_update() + // via batch_store.set_max_flushed_batch_position(). No need for separate mapping. + + // Record WAL flush stats + if batches_flushed > 0 { + self.stats + .record_wal_flush(start.elapsed(), flush_result.wal_bytes, batches_flushed); + self.stats.record_wal_io(flush_result.wal_io_duration); + self.stats.record_index_update( + flush_result.index_update_duration, + flush_result.rows_indexed, + ); + } + + eprintln!( + "[{}][WAL_FLUSH_HANDLER] Flush complete: {} batches, {}ms (S3={}ms, index={:?}), frozen={}", + log_ts(), + batches_flushed, + start.elapsed().as_millis(), + flush_result.wal_io_duration.as_millis(), + flush_result.index_update_duration_breakdown, + is_frozen_flush + ); + + Ok(flush_result) + } +} + +/// Background handler for MemTable flush operations. +/// +/// This handler receives frozen memtables directly via messages and flushes them to Lance storage. +/// Freezing is done by the writer (via SharedWriterState::freeze_memtable) to ensure +/// immediate memtable switching, so writes can continue on the new memtable while this +/// handler flushes in the background. +struct MemTableFlushHandler { + state: Arc>, + flusher: Arc, + epoch_guard: Arc, + /// Write statistics collector. + stats: SharedWriteStats, +} + +impl MemTableFlushHandler { + fn new( + state: Arc>, + flusher: Arc, + epoch_guard: Arc, + stats: SharedWriteStats, + ) -> Self { + Self { + state, + flusher, + epoch_guard, + stats, + } + } +} + +#[async_trait] +impl MessageHandler for MemTableFlushHandler { + async fn handle(&mut self, message: TriggerMemTableFlush) -> Result<()> { + let TriggerMemTableFlush { memtable, done } = message; + + eprintln!( + "[{}][FLUSH_HANDLER] Received TriggerMemTableFlush: gen={}, {} rows, {} batches", + log_ts(), + memtable.generation(), + memtable.row_count(), + memtable.batch_count() + ); + let result = self.flush_memtable(memtable).await; + if let Some(tx) = done { + // Send result through the channel - caller is waiting for it + let _ = tx.send(result); + } else { + // No done channel, propagate errors + result?; + } + Ok(()) + } +} + +impl MemTableFlushHandler { + /// Flush the given frozen memtable to Lance storage. + /// + /// This method waits for the WAL flush to complete (sent at freeze time), + /// then flushes to Lance storage. The WAL flush is already queued by + /// freeze_memtable to ensure strict ordering of WAL entries. + async fn flush_memtable(&mut self, memtable: Arc) -> Result { + let start = Instant::now(); + let memtable_size = memtable.estimated_size(); + eprintln!( + "[{}][MEMTABLE_FLUSH] Starting flush: gen={}, {} rows, {} batches, has_pending_wal={}", + log_ts(), + memtable.generation(), + memtable.row_count(), + memtable.batch_count(), + memtable.has_pending_wal_flush() + ); + + // Step 1: Wait for WAL flush completion (already queued at freeze time) + // The TriggerWalFlush message was sent by freeze_memtable to ensure + // strict ordering of WAL entries. + if let Some(mut completion_reader) = memtable.take_wal_flush_completion() { + let wal_start = std::time::Instant::now(); + eprintln!( + "[{}][MEMTABLE_FLUSH] Awaiting WAL flush completion...", + log_ts() + ); + let wal_result = completion_reader + .await_value() + .await + .map_err(|e| Error::io(format!("WAL flush failed: {}", e), snafu::location!()))?; + eprintln!( + "[{}][MEMTABLE_FLUSH] WAL flush completed in {}ms (S3={}ms, index={:?}, {} rows)", + log_ts(), + wal_start.elapsed().as_millis(), + wal_result.wal_io_duration.as_millis(), + wal_result.index_update_duration_breakdown, + wal_result.rows_indexed + ); + } else { + eprintln!( + "[{}][MEMTABLE_FLUSH] No pending WAL flush to wait for", + log_ts() + ); + } + + // Step 2: Flush the memtable to Lance storage + let flusher_start = std::time::Instant::now(); + let result = self.flusher.flush(&memtable, &self.epoch_guard).await?; + eprintln!( + "[{}][MEMTABLE_FLUSH] flusher.flush() took {}ms", + log_ts(), + flusher_start.elapsed().as_millis() + ); + + // Step 3: Signal completion and update backpressure tracking + // Signal memtable flush completion for backpressure watchers + memtable.signal_memtable_flush_complete(); + + // Update backpressure tracking - remove the oldest watcher and decrement bytes + { + let mut state = self.state.write().await; + if let Some((_size, _watcher)) = state.frozen_flush_watchers.pop_front() { + state.frozen_memtable_bytes = + state.frozen_memtable_bytes.saturating_sub(memtable_size); + } + } + + // Record stats + self.stats.record_memtable_flush( + start.elapsed(), + result.rows_flushed, + result.fragments_created, + ); + + info!( + "Flushed frozen memtable generation {} ({} rows, {} fragments in {:?})", + result.generation.generation, + result.rows_flushed, + result.fragments_created, + start.elapsed() + ); + + Ok(result) + } +} + +#[cfg(test)] +mod tests { + use super::*; + use arrow_array::{Int32Array, StringArray}; + use arrow_schema::{DataType, Field}; + use tempfile::TempDir; + + async fn create_local_store() -> (Arc, Path, String, TempDir) { + let temp_dir = tempfile::tempdir().unwrap(); + let uri = format!("file://{}", temp_dir.path().display()); + let (store, path) = ObjectStore::from_uri(&uri).await.unwrap(); + (store, path, uri, temp_dir) + } + + fn create_test_schema() -> Arc { + Arc::new(ArrowSchema::new(vec![ + Field::new("id", DataType::Int32, false), + Field::new("name", DataType::Utf8, true), + ])) + } + + fn create_test_batch(schema: &ArrowSchema, start_id: i32, num_rows: usize) -> RecordBatch { + RecordBatch::try_new( + Arc::new(schema.clone()), + vec![ + Arc::new(Int32Array::from_iter_values( + start_id..start_id + num_rows as i32, + )), + Arc::new(StringArray::from_iter_values( + (0..num_rows).map(|i| format!("name_{}", start_id as usize + i)), + )), + ], + ) + .unwrap() + } + + #[tokio::test] + async fn test_region_writer_basic_write() { + let (store, base_path, base_uri, _temp_dir) = create_local_store().await; + let schema = create_test_schema(); + + let config = RegionWriterConfig { + region_id: Uuid::new_v4(), + region_spec_id: 0, + durable_write: false, + sync_indexed_write: false, + max_wal_buffer_size: 1024 * 1024, + max_wal_flush_interval: None, + max_memtable_size: 64 * 1024 * 1024, + manifest_scan_batch_size: 2, + ..Default::default() + }; + + let writer = RegionWriter::open( + store, + base_path, + base_uri, + config.clone(), + schema.clone(), + vec![], + ) + .await + .unwrap(); + + // Write a batch + let batch = create_test_batch(&schema, 0, 10); + let result = writer.put(batch).await.unwrap(); + + assert_eq!(result.batch_position, 0); + + // Check stats + let stats = writer.memtable_stats().await; + assert_eq!(stats.row_count, 10); + assert_eq!(stats.batch_count, 1); + + // Close writer + writer.close().await.unwrap(); + } + + #[tokio::test] + async fn test_region_writer_multiple_writes() { + let (store, base_path, base_uri, _temp_dir) = create_local_store().await; + let schema = create_test_schema(); + + let config = RegionWriterConfig { + region_id: Uuid::new_v4(), + region_spec_id: 0, + durable_write: false, + sync_indexed_write: false, + max_wal_buffer_size: 1024 * 1024, + max_wal_flush_interval: None, + max_memtable_size: 64 * 1024 * 1024, + manifest_scan_batch_size: 2, + ..Default::default() + }; + + let writer = RegionWriter::open(store, base_path, base_uri, config, schema.clone(), vec![]) + .await + .unwrap(); + + // Write multiple batches + for i in 0..5 { + let batch = create_test_batch(&schema, i * 10, 10); + let result = writer.put(batch).await.unwrap(); + assert_eq!(result.batch_position, i as usize); + } + + let stats = writer.memtable_stats().await; + assert_eq!(stats.row_count, 50); + assert_eq!(stats.batch_count, 5); + + writer.close().await.unwrap(); + } + + #[tokio::test] + async fn test_region_writer_with_indexes() { + let (store, base_path, base_uri, _temp_dir) = create_local_store().await; + let schema = create_test_schema(); + + let config = RegionWriterConfig { + region_id: Uuid::new_v4(), + region_spec_id: 0, + durable_write: false, + sync_indexed_write: true, + max_wal_buffer_size: 1024 * 1024, + max_wal_flush_interval: None, + max_memtable_size: 64 * 1024 * 1024, + manifest_scan_batch_size: 2, + ..Default::default() + }; + + let index_configs = vec![MemIndexConfig::BTree(BTreeIndexConfig { + name: "id_idx".to_string(), + column: "id".to_string(), + })]; + + let writer = RegionWriter::open( + store, + base_path, + base_uri, + config, + schema.clone(), + index_configs, + ) + .await + .unwrap(); + + // Write a batch + let batch = create_test_batch(&schema, 0, 10); + writer.put(batch).await.unwrap(); + + let stats = writer.memtable_stats().await; + assert_eq!(stats.row_count, 10); + + writer.close().await.unwrap(); + } + + /// Test memtable auto-flush triggered by size threshold. + #[tokio::test] + async fn test_region_writer_auto_flush_by_size() { + let (store, base_path, base_uri, _temp_dir) = create_local_store().await; + let schema = create_test_schema(); + + // Use a small memtable size to trigger auto-flush + let config = RegionWriterConfig { + region_id: Uuid::new_v4(), + region_spec_id: 0, + durable_write: false, + sync_indexed_write: false, + max_wal_buffer_size: 1024 * 1024, + max_wal_flush_interval: None, + max_memtable_size: 1024, // Very small - will trigger flush quickly + manifest_scan_batch_size: 2, + ..Default::default() + }; + + let writer = RegionWriter::open(store, base_path, base_uri, config, schema.clone(), vec![]) + .await + .unwrap(); + + let initial_gen = writer.memtable_stats().await.generation; + + // Write batches until auto-flush triggers + for i in 0..20 { + let batch = create_test_batch(&schema, i * 10, 10); + writer.put(batch).await.unwrap(); + } + + // Give time for background flush to process + tokio::time::sleep(tokio::time::Duration::from_millis(100)).await; + + // Check that generation increased (indicating flush happened) + let stats = writer.memtable_stats().await; + assert!( + stats.generation > initial_gen, + "Generation should increment after auto-flush" + ); + + writer.close().await.unwrap(); + } +} #[cfg(test)] #[allow(clippy::print_stderr)] @@ -322,8 +1528,8 @@ mod region_writer_tests { .with_sync_indexed_write(false); eprintln!( - "[TEST] Config: flush_interval={:?}, wal_buffer_size={}", - config.max_flush_interval, config.max_wal_buffer_size + "[TEST] Config: flush_interval={:?}, wal_flush_size={}", + config.max_wal_flush_interval, config.max_wal_buffer_size ); let writer = dataset diff --git a/rust/lance/src/dataset/mem_wal/write/batch_write.rs b/rust/lance/src/dataset/mem_wal/write/batch_write.rs index f5f79a83e5d..05847934619 100644 --- a/rust/lance/src/dataset/mem_wal/write/batch_write.rs +++ b/rust/lance/src/dataset/mem_wal/write/batch_write.rs @@ -1,27 +1,16 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-FileCopyrightText: Copyright The Lance Authors -#![allow(clippy::print_stderr)] - -//! Batch write handling with single writer task pattern. +//! Batch write handling - backpressure control and durability tracking. use std::sync::atomic::{AtomicU64, Ordering}; use std::sync::Arc; -use std::time::Duration; -use arrow_array::RecordBatch; use lance_core::Result; -use tokio::sync::{mpsc, oneshot}; use tracing::{debug, warn}; use crate::dataset::mem_wal::config::RegionWriterConfig; -/// Get a timestamp for debug logging (HH:MM:SS.mmm format). -/// Uses wall clock time so all threads share the same time reference. -fn log_ts() -> String { - chrono::Local::now().format("%H:%M:%S%.3f").to_string() -} - /// Result of a durability notification. /// /// This is a simple enum that can be cloned, unlike `Result<(), Error>`. @@ -59,62 +48,11 @@ impl DurabilityResult { } /// Type alias for durability watchers. -pub type DurabilityWatcher = super::watchable_cell::WatchableOnceCellReader; +pub type DurabilityWatcher = + super::super::watchable_cell::WatchableOnceCellReader; /// Type alias for durability cells. -pub type DurabilityCell = super::watchable_cell::WatchableOnceCell; - -/// Name for the writer task (for logging). -pub const WRITE_BATCH_TASK_NAME: &str = "writer"; - -/// Message sent to the writer task for processing. -pub struct WriteBatchMessage { - /// The RecordBatch to write. - pub batch: RecordBatch, - /// Channel to send the result back to the caller. - pub done: oneshot::Sender>, -} - -impl std::fmt::Debug for WriteBatchMessage { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - f.debug_struct("WriteBatchMessage") - .field("batch_rows", &self.batch.num_rows()) - .field("batch_cols", &self.batch.num_columns()) - .finish() - } -} - -/// Result of a write batch operation. -#[derive(Debug)] -pub struct WriteBatchResult { - /// Batch ID in the MemTable. - pub batch_id: usize, - /// Sequence number assigned to this write. - pub seq: u64, - /// Watcher to await WAL durability. - pub durable_watcher: DurabilityWatcher, -} - -/// Type of backpressure that was triggered. -#[derive(Debug, Clone, Copy, PartialEq, Eq)] -pub enum BackpressureType { - /// Unflushed bytes (WAL + immutable memtables) exceeded threshold. - UnflushedBytes, - /// Too many immutable memtables waiting to flush. - ImmutableMemtables, - /// Active memtable batch store is nearly full. - BatchStoreFull, -} - -impl std::fmt::Display for BackpressureType { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - match self { - Self::UnflushedBytes => write!(f, "unflushed_bytes"), - Self::ImmutableMemtables => write!(f, "immutable_memtables"), - Self::BatchStoreFull => write!(f, "batch_store_full"), - } - } -} +pub type DurabilityCell = super::super::watchable_cell::WatchableOnceCell; /// Statistics for backpressure monitoring. #[derive(Debug, Default)] @@ -123,12 +61,6 @@ pub struct BackpressureStats { total_count: AtomicU64, /// Total time spent waiting on backpressure (in milliseconds). total_wait_ms: AtomicU64, - /// Count of backpressure events due to unflushed bytes. - unflushed_bytes_count: AtomicU64, - /// Count of backpressure events due to immutable memtables. - immutable_memtables_count: AtomicU64, - /// Count of backpressure events due to batch store being full. - batch_store_full_count: AtomicU64, } impl BackpressureStats { @@ -138,22 +70,9 @@ impl BackpressureStats { } /// Record a backpressure event. - pub fn record(&self, bp_type: BackpressureType, wait_ms: u64) { + pub fn record(&self, wait_ms: u64) { self.total_count.fetch_add(1, Ordering::Relaxed); self.total_wait_ms.fetch_add(wait_ms, Ordering::Relaxed); - - match bp_type { - BackpressureType::UnflushedBytes => { - self.unflushed_bytes_count.fetch_add(1, Ordering::Relaxed); - } - BackpressureType::ImmutableMemtables => { - self.immutable_memtables_count - .fetch_add(1, Ordering::Relaxed); - } - BackpressureType::BatchStoreFull => { - self.batch_store_full_count.fetch_add(1, Ordering::Relaxed); - } - } } /// Get the total backpressure count. @@ -166,25 +85,11 @@ impl BackpressureStats { self.total_wait_ms.load(Ordering::Relaxed) } - /// Get count of backpressure events by type. - pub fn count_by_type(&self, bp_type: BackpressureType) -> u64 { - match bp_type { - BackpressureType::UnflushedBytes => self.unflushed_bytes_count.load(Ordering::Relaxed), - BackpressureType::ImmutableMemtables => { - self.immutable_memtables_count.load(Ordering::Relaxed) - } - BackpressureType::BatchStoreFull => self.batch_store_full_count.load(Ordering::Relaxed), - } - } - /// Get a snapshot of all stats. pub fn snapshot(&self) -> BackpressureStatsSnapshot { BackpressureStatsSnapshot { total_count: self.total_count.load(Ordering::Relaxed), total_wait_ms: self.total_wait_ms.load(Ordering::Relaxed), - unflushed_bytes_count: self.unflushed_bytes_count.load(Ordering::Relaxed), - immutable_memtables_count: self.immutable_memtables_count.load(Ordering::Relaxed), - batch_store_full_count: self.batch_store_full_count.load(Ordering::Relaxed), } } } @@ -196,48 +101,9 @@ pub struct BackpressureStatsSnapshot { pub total_count: u64, /// Total time spent waiting on backpressure (in milliseconds). pub total_wait_ms: u64, - /// Count due to unflushed bytes. - pub unflushed_bytes_count: u64, - /// Count due to immutable memtables. - pub immutable_memtables_count: u64, - /// Count due to batch store being full. - pub batch_store_full_count: u64, -} - -/// Trait for providing backpressure state. -/// -/// Implemented by the writer to provide current memory usage for backpressure decisions. -#[async_trait::async_trait] -pub trait BackpressureProvider: Send + Sync { - /// Get estimated WAL buffer size in bytes. - fn wal_buffer_bytes(&self) -> usize; - - /// Get estimated total immutable memtable size in bytes. - fn immutable_memtable_bytes(&self) -> usize; - - /// Get the number of immutable memtables waiting to flush. - fn immutable_memtable_count(&self) -> usize; - - /// Get remaining batch capacity in the active memtable. - fn remaining_batch_capacity(&self) -> usize; - - /// Get total batch capacity of the active memtable. - fn batch_capacity(&self) -> usize; - - /// Trigger a memtable flush and wait for it to complete. - /// Returns when a new memtable is available with fresh capacity. - async fn trigger_memtable_flush_and_wait(&self); - - /// Get a watcher for the oldest WAL durability. - fn oldest_wal_watcher(&self) -> Option; - - /// Get a watcher for the oldest immutable memtable flush. - fn oldest_memtable_watcher(&self) -> Option; } /// Backpressure controller for managing write flow. -/// -/// Handles backpressure implementation in db.rs. pub struct BackpressureController { /// Configuration. config: RegionWriterConfig, @@ -262,343 +128,78 @@ impl BackpressureController { /// Check and apply backpressure if needed. /// /// This method blocks if the system is under memory pressure, waiting for - /// the oldest WAL or memtable to be flushed. + /// frozen memtables to be flushed to storage until under threshold. + /// + /// Backpressure is applied when: + /// - `unflushed_memtable_bytes` >= `max_unflushed_memtable_bytes` /// - /// Backpressure is applied when ANY of: - /// - Total unflushed bytes >= max_unflushed_bytes - /// - Immutable memtable count >= max_immutable_memtables - /// - Batch store remaining capacity < 10% (triggers memtable flush) - pub async fn maybe_apply_backpressure( - &self, - provider: &dyn BackpressureProvider, - ) -> Result<()> { + /// # Arguments + /// - `get_state`: Closure that returns current (unflushed_memtable_bytes, oldest_memtable_watcher) + /// + /// The closure is called in a loop to get fresh state after each wait. + pub async fn maybe_apply_backpressure(&self, mut get_state: F) -> Result<()> + where + F: FnMut() -> (usize, Option), + { + let start = std::time::Instant::now(); let mut iteration = 0u32; + loop { - // Calculate total unflushed bytes - let wal_bytes = provider.wal_buffer_bytes(); - let imm_bytes = provider.immutable_memtable_bytes(); - let total_unflushed = wal_bytes + imm_bytes; - let imm_count = provider.immutable_memtable_count(); - - // Check batch store capacity (trigger flush when < 10% remaining) - let remaining_batches = provider.remaining_batch_capacity(); - let total_batches = provider.batch_capacity(); - let batch_store_nearly_full = - total_batches > 0 && remaining_batches < total_batches / 10; - - // Check if any threshold is exceeded - let bytes_exceeded = total_unflushed >= self.config.max_unflushed_bytes; - let imm_exceeded = imm_count >= self.config.max_immutable_memtables; - - if !bytes_exceeded && !imm_exceeded && !batch_store_nearly_full { + let (unflushed_memtable_bytes, oldest_watcher) = get_state(); + + // Check if under threshold + if unflushed_memtable_bytes < self.config.max_unflushed_memtable_bytes { + if iteration > 0 { + let wait_ms = start.elapsed().as_millis() as u64; + self.stats.record(wait_ms); + } return Ok(()); } - // Determine primary backpressure type (priority: batch_store > imm > bytes) - let bp_type = if batch_store_nearly_full { - // Trigger memtable flush when batch store is nearly full and WAIT for it - eprintln!( - "[{}][BP_TRIGGER] iter={} batch_store_nearly_full: remaining={}/{} (<10%), triggering flush and waiting", - log_ts(), iteration, remaining_batches, total_batches - ); - let start = std::time::Instant::now(); - provider.trigger_memtable_flush_and_wait().await; - let wait_ms = start.elapsed().as_millis() as u64; - self.stats.record(BackpressureType::BatchStoreFull, wait_ms); - eprintln!( - "[{}][BP_TRIGGER] flush complete after {}ms, new remaining={}", - log_ts(), - wait_ms, - provider.remaining_batch_capacity() - ); - // After flush completes, loop to re-check all conditions - iteration += 1; - continue; - } else if imm_exceeded { - eprintln!( - "[{}][BP_TRIGGER] iter={} imm_exceeded: imm_count={} >= max={}", - log_ts(), - iteration, - imm_count, - self.config.max_immutable_memtables - ); - BackpressureType::ImmutableMemtables - } else { - eprintln!( - "[{}][BP_TRIGGER] iter={} bytes_exceeded: unflushed={} >= max={}", - log_ts(), - iteration, - total_unflushed, - self.config.max_unflushed_bytes - ); - BackpressureType::UnflushedBytes - }; - - // Log backpressure trigger + iteration += 1; + debug!( - backpressure_type = %bp_type, - unflushed_bytes = total_unflushed, - max_unflushed_bytes = self.config.max_unflushed_bytes, - immutable_memtables = imm_count, - max_immutable_memtables = self.config.max_immutable_memtables, - remaining_batch_capacity = remaining_batches, - total_batch_capacity = total_batches, + unflushed_memtable_bytes = unflushed_memtable_bytes, + max_unflushed_memtable_bytes = self.config.max_unflushed_memtable_bytes, + iteration = iteration, "Backpressure triggered" ); - iteration += 1; - // Need to apply backpressure - let start = std::time::Instant::now(); - - // Wait for oldest WAL or memtable to flush - let oldest_wal = provider.oldest_wal_watcher(); - let oldest_memtable = provider.oldest_memtable_watcher(); - - match (oldest_wal, oldest_memtable) { - (Some(mut wal_watcher), Some(mut mem_watcher)) => { - tokio::select! { - _ = wal_watcher.await_value() => {} - _ = mem_watcher.await_value() => {} - _ = tokio::time::sleep(self.config.backpressure_log_interval) => { - warn!( - backpressure_type = %bp_type, - unflushed_bytes = total_unflushed, - immutable_memtables = imm_count, - remaining_batch_capacity = remaining_batches, - interval_secs = self.config.backpressure_log_interval.as_secs(), - "Backpressure wait timeout" - ); - } - } - } - (Some(mut wal_watcher), None) => { - tokio::select! { - _ = wal_watcher.await_value() => {} - _ = tokio::time::sleep(self.config.backpressure_log_interval) => { - warn!( - backpressure_type = %bp_type, - unflushed_bytes = total_unflushed, - interval_secs = self.config.backpressure_log_interval.as_secs(), - "Backpressure wait timeout (WAL only)" - ); - } + // Wait for oldest memtable to flush + if let Some(mut mem_watcher) = oldest_watcher { + tokio::select! { + _ = mem_watcher.await_value() => {} + _ = tokio::time::sleep(self.config.backpressure_log_interval) => { + warn!( + unflushed_memtable_bytes = unflushed_memtable_bytes, + interval_secs = self.config.backpressure_log_interval.as_secs(), + iteration = iteration, + "Backpressure wait timeout, continuing to wait" + ); } } - (None, Some(mut mem_watcher)) => { - tokio::select! { - _ = mem_watcher.await_value() => {} - _ = tokio::time::sleep(self.config.backpressure_log_interval) => { - warn!( - backpressure_type = %bp_type, - immutable_memtables = imm_count, - interval_secs = self.config.backpressure_log_interval.as_secs(), - "Backpressure wait timeout (memtable only)" - ); - } - } - } - (None, None) => { - tokio::time::sleep(Duration::from_millis(100)).await; - } - } - - let wait_ms = start.elapsed().as_millis() as u64; - self.stats.record(bp_type, wait_ms); - } - } -} - -/// Sender for write batch messages. -pub type WriteBatchSender = mpsc::UnboundedSender; - -/// Receiver for write batch messages. -pub type WriteBatchReceiver = mpsc::UnboundedReceiver; - -/// Create a new write batch channel. -pub fn write_batch_channel() -> (WriteBatchSender, WriteBatchReceiver) { - mpsc::unbounded_channel() -} - -/// Handler for processing write batch messages. -/// -/// Runs in a dedicated background task and processes all writes sequentially. -pub struct WriteBatchHandler { - state: S, - /// Simple sequence counter for batch ordering. - next_seq: std::sync::atomic::AtomicU64, - stats: super::SharedWriteStats, -} - -impl WriteBatchHandler { - /// Create a new write batch handler. - pub fn new(state: S, stats: super::SharedWriteStats) -> Self { - Self { - state, - next_seq: std::sync::atomic::AtomicU64::new(1), - stats, - } - } -} - -/// Result of a batch insert operation. -#[derive(Debug)] -pub struct InsertBatchResult { - /// Batch ID in the MemTable. - pub batch_id: usize, - /// Row offset in the MemTable for index updates. - pub row_offset: u64, - /// Estimated size in bytes (for WAL buffer tracking). - pub estimated_size: usize, -} - -/// Trait for writer state operations needed by WriteBatchHandler. -/// -/// This abstraction allows the handler to be tested without full RegionWriter. -#[async_trait::async_trait] -pub trait WriterStateOps: Send + Sync { - /// Insert a batch into the memtable (WITHOUT index updates). - /// - /// Index updates are deferred to WAL flush time for parallel execution. - /// Returns batch_id and row_offset for subsequent index updates. - async fn insert_batch(&self, batch: RecordBatch, seq: u64) -> Result; - - /// Track batch for WAL durability. - /// - /// The batch data is stored in LockFreeBatchStore and read during WAL flush. - /// This method tracks the batch for size-based flush triggers. - fn track_batch_for_wal( - &self, - batch_id: usize, - row_offset: u64, - seq: u64, - estimated_size: usize, - ) -> DurabilityWatcher; - - /// Check if memtable flush is needed and trigger if so. - async fn maybe_trigger_memtable_flush(&self) -> Result<()>; - - /// Check if WAL flush is needed based on buffer size and trigger if so. - fn maybe_trigger_wal_flush(&self); -} - -#[async_trait::async_trait] -impl - crate::dataset::mem_wal::dispatcher::MessageHandler - for WriteBatchHandler -{ - async fn handle(&mut self, message: WriteBatchMessage) -> Result<()> { - let WriteBatchMessage { batch, done } = message; - let start = std::time::Instant::now(); - - let seq = self - .next_seq - .fetch_add(1, std::sync::atomic::Ordering::Relaxed); - - // Insert batch into memtable (no index update - deferred to WAL flush) - // The batch is moved into MemTable, not cloned - let insert_result = match self.state.insert_batch(batch, seq).await { - Ok(result) => result, - Err(e) => { - let _ = done.send(Err(e)); - return Ok(()); + } else { + // No watcher available - sleep briefly to avoid busy loop + tokio::time::sleep(std::time::Duration::from_millis(10)).await; } - }; - - // Track batch for WAL durability (size-based flush triggers) - // The batch data is read from LockFreeBatchStore during flush - let durable_watcher = self.state.track_batch_for_wal( - insert_result.batch_id, - insert_result.row_offset, - seq, - insert_result.estimated_size, - ); - - // Check if WAL flush should be triggered based on buffer size - self.state.maybe_trigger_wal_flush(); - - if let Err(e) = self.state.maybe_trigger_memtable_flush().await { - tracing::warn!("Failed to trigger memtable flush: {}", e); } - - self.stats.record_put(start.elapsed()); - - let result = WriteBatchResult { - batch_id: insert_result.batch_id, - seq, - durable_watcher, - }; - let _ = done.send(Ok(result)); - - Ok(()) } } #[cfg(test)] mod tests { use super::*; - use std::sync::atomic::AtomicUsize; - - struct MockBackpressureProvider { - wal_bytes: AtomicUsize, - imm_bytes: AtomicUsize, - imm_count: AtomicUsize, - } - - impl MockBackpressureProvider { - fn new(wal_bytes: usize, imm_bytes: usize, imm_count: usize) -> Self { - Self { - wal_bytes: AtomicUsize::new(wal_bytes), - imm_bytes: AtomicUsize::new(imm_bytes), - imm_count: AtomicUsize::new(imm_count), - } - } - } - - #[async_trait::async_trait] - impl BackpressureProvider for MockBackpressureProvider { - fn wal_buffer_bytes(&self) -> usize { - self.wal_bytes.load(Ordering::Relaxed) - } - - fn immutable_memtable_bytes(&self) -> usize { - self.imm_bytes.load(Ordering::Relaxed) - } - - fn immutable_memtable_count(&self) -> usize { - self.imm_count.load(Ordering::Relaxed) - } - - fn remaining_batch_capacity(&self) -> usize { - 1000 // Always plenty of capacity - } - - fn batch_capacity(&self) -> usize { - 1000 - } - - async fn trigger_memtable_flush_and_wait(&self) { - // No-op for mock - } - - fn oldest_wal_watcher(&self) -> Option { - None - } - - fn oldest_memtable_watcher(&self) -> Option { - None - } - } + use std::time::Duration; #[tokio::test] async fn test_no_backpressure_when_under_threshold() { - let config = RegionWriterConfig::default().with_max_unflushed_bytes(1024 * 1024); // 1MB + let config = RegionWriterConfig::default().with_max_unflushed_memtable_bytes(1024 * 1024); // 1MB let controller = BackpressureController::new(config); - let provider = MockBackpressureProvider::new(100, 100, 0); - // Should return immediately - well under threshold + // Should return immediately - well under threshold (100 bytes < 1MB) controller - .maybe_apply_backpressure(&provider) + .maybe_apply_backpressure(|| (100, None)) .await .unwrap(); @@ -606,253 +207,33 @@ mod tests { } #[tokio::test] - async fn test_backpressure_with_watcher() { + async fn test_backpressure_loops_until_under_threshold() { + use std::sync::atomic::{AtomicUsize, Ordering}; + use std::sync::Arc; + let config = RegionWriterConfig::default() - .with_max_unflushed_bytes(100) // Very low threshold + .with_max_unflushed_memtable_bytes(100) // Very low threshold .with_backpressure_log_interval(Duration::from_millis(50)); let controller = BackpressureController::new(config); - // Provider that exceeds threshold but has no watchers - #[allow(dead_code)] - struct HighPressureProvider; - #[async_trait::async_trait] - impl BackpressureProvider for HighPressureProvider { - fn wal_buffer_bytes(&self) -> usize { - 1000 - } - fn immutable_memtable_bytes(&self) -> usize { - 1000 - } - fn immutable_memtable_count(&self) -> usize { - 0 - } - fn remaining_batch_capacity(&self) -> usize { - 1000 - } - fn batch_capacity(&self) -> usize { - 1000 - } - async fn trigger_memtable_flush_and_wait(&self) {} - fn oldest_wal_watcher(&self) -> Option { - None - } - fn oldest_memtable_watcher(&self) -> Option { - None - } - } - - // This will timeout since there are no watchers, but provider always reports high pressure - // To avoid infinite loop, we need a provider that eventually reports low pressure - struct EventuallyLowProvider { - call_count: AtomicUsize, - } - #[async_trait::async_trait] - impl BackpressureProvider for EventuallyLowProvider { - fn wal_buffer_bytes(&self) -> usize { - if self.call_count.fetch_add(1, Ordering::Relaxed) > 0 { - 0 // After first check, report low - } else { - 1000 - } - } - fn immutable_memtable_bytes(&self) -> usize { - 0 - } - fn immutable_memtable_count(&self) -> usize { - 0 - } - fn remaining_batch_capacity(&self) -> usize { - 1000 - } - fn batch_capacity(&self) -> usize { - 1000 - } - async fn trigger_memtable_flush_and_wait(&self) {} - fn oldest_wal_watcher(&self) -> Option { - None - } - fn oldest_memtable_watcher(&self) -> Option { - None - } - } - - let provider = EventuallyLowProvider { - call_count: AtomicUsize::new(0), - }; + // Simulate: starts at 1000 bytes, drops by 400 each call (simulating memtable flushes) + let call_count = Arc::new(AtomicUsize::new(0)); + let call_count_clone = call_count.clone(); controller - .maybe_apply_backpressure(&provider) + .maybe_apply_backpressure(move || { + let count = call_count_clone.fetch_add(1, Ordering::Relaxed); + // 1000 -> 600 -> 200 -> under threshold (need 3 iterations) + let unflushed = 1000usize.saturating_sub(count * 400); + (unflushed, None) + }) .await .unwrap(); - // Should have recorded at least one backpressure event - assert!(controller.stats().count() >= 1); - } - - // Tests for WriteBatchHandler - mod handler_tests { - use super::*; - use crate::dataset::mem_wal::dispatcher::MessageHandler; - use crate::dataset::mem_wal::write::{new_shared_stats, WatchableOnceCell}; - use arrow_array::{Int32Array, RecordBatch as ArrowRecordBatch}; - use arrow_schema::{DataType, Field, Schema as ArrowSchema}; - use std::sync::Arc; - use tokio::sync::RwLock; - - /// Mock implementation of WriterStateOps for testing. - struct MockWriterState { - next_batch_id: RwLock, - next_row_offset: RwLock, - inserted_batches: RwLock>, - wal_append_count: AtomicUsize, - } - - impl MockWriterState { - fn new() -> Self { - Self { - next_batch_id: RwLock::new(0), - next_row_offset: RwLock::new(0), - inserted_batches: RwLock::new(Vec::new()), - wal_append_count: AtomicUsize::new(0), - } - } - } - - #[async_trait::async_trait] - impl WriterStateOps for Arc { - async fn insert_batch( - &self, - batch: RecordBatch, - seq: u64, - ) -> Result { - let mut id = self.next_batch_id.write().await; - let mut row_offset = self.next_row_offset.write().await; - let batch_id = *id; - let current_offset = *row_offset; - let estimated_size = batch - .columns() - .iter() - .map(|c| c.get_array_memory_size()) - .sum(); - *id += 1; - *row_offset += batch.num_rows() as u64; - self.inserted_batches.write().await.push((batch, seq)); - Ok(InsertBatchResult { - batch_id, - row_offset: current_offset, - estimated_size, - }) - } - - fn track_batch_for_wal( - &self, - _batch_id: usize, - _row_offset: u64, - _seq: u64, - _estimated_size: usize, - ) -> DurabilityWatcher { - self.wal_append_count.fetch_add(1, Ordering::Relaxed); - // Return a watcher that's immediately durable - let cell = WatchableOnceCell::new(); - cell.write(DurabilityResult::ok()); - cell.reader() - } - - async fn maybe_trigger_memtable_flush(&self) -> Result<()> { - Ok(()) - } - - fn maybe_trigger_wal_flush(&self) { - // No-op for mock - } - } - - fn create_test_batch(num_rows: usize) -> RecordBatch { - let schema = Arc::new(ArrowSchema::new(vec![Field::new( - "id", - DataType::Int32, - false, - )])); - let ids: Vec = (0..num_rows as i32).collect(); - ArrowRecordBatch::try_new(schema, vec![Arc::new(Int32Array::from(ids))]).unwrap() - } - - #[tokio::test] - async fn test_write_batch_handler_basic() { - let state = Arc::new(MockWriterState::new()); - let stats = new_shared_stats(); - - let mut handler = WriteBatchHandler::new(state.clone(), stats.clone()); - - // Create and send a write batch message - let (tx, rx) = oneshot::channel(); - let batch = create_test_batch(10); - let message = WriteBatchMessage { batch, done: tx }; - - // Process the message - handler.handle(message).await.unwrap(); - - // Verify result - let result = rx.await.unwrap().unwrap(); - assert_eq!(result.batch_id, 0); - assert_eq!(result.seq, 1); // First sequence number - - // Verify state updates - assert_eq!(state.inserted_batches.read().await.len(), 1); - assert_eq!(state.wal_append_count.load(Ordering::Relaxed), 1); - } - - #[tokio::test] - async fn test_write_batch_handler_multiple_writes() { - let state = Arc::new(MockWriterState::new()); - let stats = new_shared_stats(); - - let mut handler = WriteBatchHandler::new(state.clone(), stats.clone()); - - // Process multiple batches - for i in 0..5 { - let (tx, rx) = oneshot::channel(); - let batch = create_test_batch(10); - let message = WriteBatchMessage { batch, done: tx }; - - handler.handle(message).await.unwrap(); - - let result = rx.await.unwrap().unwrap(); - assert_eq!(result.batch_id, i); - assert_eq!(result.seq, (i + 1) as u64); - } - - // Verify all batches were inserted - assert_eq!(state.inserted_batches.read().await.len(), 5); - assert_eq!(state.wal_append_count.load(Ordering::Relaxed), 5); - } - - #[tokio::test] - async fn test_write_batch_handler_sequence_monotonic() { - let state = Arc::new(MockWriterState::new()); - let stats = new_shared_stats(); - - let mut handler = WriteBatchHandler::new(state.clone(), stats); - - let mut seqs = Vec::new(); - for _ in 0..10 { - let (tx, rx) = oneshot::channel(); - let batch = create_test_batch(5); - let message = WriteBatchMessage { batch, done: tx }; - - handler.handle(message).await.unwrap(); - let result = rx.await.unwrap().unwrap(); - seqs.push(result.seq); - } - - // Verify sequences are strictly increasing - for i in 1..seqs.len() { - assert!( - seqs[i] > seqs[i - 1], - "Sequences must be strictly increasing" - ); - } - } + // Should have called get_state 4 times (initial + 3 waits until under 100) + assert_eq!(call_count.load(Ordering::Relaxed), 4); + // Should have recorded backpressure wait time (waited 3 times) + assert_eq!(controller.stats().count(), 1); } } diff --git a/rust/lance/src/dataset/mem_wal/write/flush.rs b/rust/lance/src/dataset/mem_wal/write/flush.rs index 501dfdf43ee..aeb07374787 100644 --- a/rust/lance/src/dataset/mem_wal/write/flush.rs +++ b/rust/lance/src/dataset/mem_wal/write/flush.rs @@ -1,24 +1,10 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-FileCopyrightText: Copyright The Lance Authors -#![allow(clippy::print_stderr)] - //! MemTable flush to persistent storage. -//! -//! The flusher persists MemTable data as a flushed generation: -//! 1. Creates a Lance table directory with fragments -//! 2. Serializes indexes to the `_indices/` subdirectory -//! 3. Serializes bloom filter -//! 4. Updates the region manifest atomically use std::sync::Arc; -/// Get a timestamp for debug logging (HH:MM:SS.mmm format). -/// Uses wall clock time so all threads share the same time reference. -fn log_ts() -> String { - chrono::Local::now().format("%H:%M:%S%.3f").to_string() -} - use bytes::Bytes; use lance_core::{Error, Result}; use lance_index::mem_wal::{FlushedGeneration, RegionManifest}; @@ -31,50 +17,30 @@ use snafu::location; use tracing::{debug, info, warn}; use uuid::Uuid; -use super::indexes::MemIndexConfig; -use super::memtable::MemTable; +use super::super::indexes::MemIndexConfig; +use super::super::memtable::MemTable; use crate::dataset::mem_wal::epoch::EpochGuard; use crate::dataset::mem_wal::manifest::RegionManifestStore; use crate::dataset::mem_wal::util::{flushed_memtable_path, generate_random_hash}; use crate::Dataset; -/// Result of a MemTable flush operation. #[derive(Debug, Clone)] pub struct FlushResult { - /// The flushed generation info. pub generation: FlushedGeneration, - /// Number of rows flushed. pub rows_flushed: usize, - /// Number of fragments created. pub fragments_created: usize, - /// WAL ID up to which data is covered. - pub covered_wal_id: u64, + pub covered_wal_entry_position: u64, } -/// Flushes MemTable data to persistent storage. pub struct MemTableFlusher { - /// Object store for writing files. object_store: Arc, - /// Base path within the object store. base_path: Path, - /// Base URI for constructing dataset URIs. base_uri: String, - /// Region ID. region_id: Uuid, - /// Manifest store for atomic updates. manifest_store: Arc, } impl MemTableFlusher { - /// Create a new MemTable flusher. - /// - /// # Arguments - /// - /// * `object_store` - Object store for writing files - /// * `base_path` - Base path within the object store (from ObjectStore::from_uri) - /// * `base_uri` - Base URI (e.g., "s3://bucket/path" or "file:///path") - /// * `region_id` - Region UUID - /// * `manifest_store` - Manifest store for atomic updates pub fn new( object_store: Arc, base_path: Path, @@ -112,35 +78,12 @@ impl MemTableFlusher { } } - /// Flush the MemTable to storage. - /// - /// Creates a flushed generation containing: - /// - Data files (Lance format fragments) - /// - Index files (in `_indices/` subdirectory) - /// - Bloom filter (bloom_filter.bin) - /// - /// # Arguments - /// - /// * `memtable` - The MemTable to flush - /// * `epoch_guard` - Guard for fencing checks - /// - /// # Returns - /// - /// The flush result containing generation info and statistics. + /// Flush the MemTable to storage (data files, indexes, bloom filter). pub async fn flush( &self, memtable: &MemTable, epoch_guard: &EpochGuard, ) -> Result { - eprintln!( - "[{}] [FLUSHER] flush() called: {} rows, {} batches", - log_ts(), - memtable.row_count(), - memtable.batch_count() - ); - let flush_total_start = std::time::Instant::now(); - - // 1. Check if writer has been fenced epoch_guard.check_fenced().await?; if memtable.row_count() == 0 { @@ -150,7 +93,6 @@ impl MemTableFlusher { )); } - // Verify all fragments are flushed to WAL if !memtable.all_flushed_to_wal() { return Err(Error::invalid_input( "MemTable has unflushed fragments - WAL flush required first", @@ -158,11 +100,8 @@ impl MemTableFlusher { )); } - // 2. Generate random prefix for directory name let random_hash = generate_random_hash(); let generation = memtable.generation(); - - // 3. Create flushed generation directory let gen_path = flushed_memtable_path(&self.base_path, &self.region_id, &random_hash, generation); @@ -173,59 +112,28 @@ impl MemTableFlusher { memtable.row_count(), memtable.batch_count() ); - eprintln!( - "[{}] [FLUSHER] Starting flush: gen={}, {} rows, {} batches", - log_ts(), - generation, - memtable.row_count(), - memtable.batch_count() - ); - // 4. Write data as a Lance Dataset - // Dataset::write creates the full directory structure including _versions/, data/ - let lance_start = std::time::Instant::now(); self.write_data_file(&gen_path, memtable).await?; - eprintln!( - "[{}] [FLUSHER] write_data_file (Lance) took {}ms", - log_ts(), - lance_start.elapsed().as_millis() - ); - // 5. Serialize bloom filter (inside the generation directory) - let bloom_start = std::time::Instant::now(); let bloom_path = gen_path.child("bloom_filter.bin"); self.write_bloom_filter(&bloom_path, memtable.bloom_filter()) .await?; - eprintln!( - "[{}] [FLUSHER] write_bloom_filter took {}ms", - log_ts(), - bloom_start.elapsed().as_millis() - ); - // 6. Update region manifest - let manifest_start = std::time::Instant::now(); - let last_wal_id = memtable.last_flushed_wal_id(); + let last_wal_entry_position = memtable.last_flushed_wal_entry_position(); let new_manifest = self - .update_manifest(epoch_guard, generation, gen_path.as_ref(), last_wal_id) + .update_manifest( + epoch_guard, + generation, + gen_path.as_ref(), + last_wal_entry_position, + ) .await?; - eprintln!( - "[{}] [FLUSHER] update_manifest took {}ms", - log_ts(), - manifest_start.elapsed().as_millis() - ); info!( "Flushed generation {} for region {} (manifest version {})", generation, self.region_id, new_manifest.version ); - eprintln!( - "[{}] [FLUSHER] flush() complete: total={}ms, {} rows", - log_ts(), - flush_total_start.elapsed().as_millis(), - memtable.row_count() - ); - Ok(FlushResult { generation: FlushedGeneration { generation, @@ -233,16 +141,10 @@ impl MemTableFlusher { }, rows_flushed: memtable.row_count(), fragments_created: memtable.batch_count(), - covered_wal_id: last_wal_id, + covered_wal_entry_position: last_wal_entry_position, }) } - /// Write MemTable data to a single Lance Dataset file. - /// - /// Writes all batches from the BatchStore to a single Lance file for - /// optimal read performance. Creates a proper Lance Dataset structure with: - /// - `_versions/` directory for version manifests - /// - `data/` directory for fragment data files async fn write_data_file(&self, path: &Path, memtable: &MemTable) -> Result<()> { use arrow_array::RecordBatchIterator; @@ -250,43 +152,20 @@ impl MemTableFlusher { return Ok(()); } - // Get all batches directly from BatchStore - let scan_start = std::time::Instant::now(); let batches = memtable.scan_batches().await?; if batches.is_empty() { return Ok(()); } - let num_batches = batches.len(); - let total_rows: usize = batches.iter().map(|b| b.num_rows()).sum(); - eprintln!( - "[{}] [LANCE_WRITE] scan_batches: {}ms, {} batches, {} rows", - log_ts(), - scan_start.elapsed().as_millis(), - num_batches, - total_rows - ); - // Construct the full URI for the dataset let uri = self.path_to_uri(path); - - // Write all batches as a single Lance file - let write_start = std::time::Instant::now(); let reader = RecordBatchIterator::new(batches.into_iter().map(Ok), memtable.schema().clone()); Dataset::write(reader, &uri, None).await?; - eprintln!( - "[{}] [LANCE_WRITE] Dataset::write: {}ms, {} rows to {}", - log_ts(), - write_start.elapsed().as_millis(), - total_rows, - uri - ); debug!("Wrote Lance Dataset to {}", uri); Ok(()) } - /// Write bloom filter to storage. async fn write_bloom_filter( &self, path: &Path, @@ -303,28 +182,12 @@ impl MemTableFlusher { } /// Flush the MemTable to storage with indexes. - /// - /// Creates a flushed generation containing: - /// - Data files (Lance format fragments) - /// - Index files for BTree indexes - /// - Bloom filter (bloom_filter.bin) - /// - /// # Arguments - /// - /// * `memtable` - The MemTable to flush - /// * `epoch_guard` - Guard for fencing checks - /// * `index_configs` - Index configurations to create - /// - /// # Returns - /// - /// The flush result containing generation info and statistics. pub async fn flush_with_indexes( &self, memtable: &MemTable, epoch_guard: &EpochGuard, index_configs: &[MemIndexConfig], ) -> Result { - // 1. Check if writer has been fenced epoch_guard.check_fenced().await?; if memtable.row_count() == 0 { @@ -334,7 +197,6 @@ impl MemTableFlusher { )); } - // Verify all fragments are flushed to WAL if !memtable.all_flushed_to_wal() { return Err(Error::invalid_input( "MemTable has unflushed fragments - WAL flush required first", @@ -342,11 +204,8 @@ impl MemTableFlusher { )); } - // 2. Generate random prefix for directory name let random_hash = generate_random_hash(); let generation = memtable.generation(); - - // 3. Create flushed generation directory let gen_path = flushed_memtable_path(&self.base_path, &self.region_id, &random_hash, generation); @@ -358,10 +217,8 @@ impl MemTableFlusher { memtable.batch_count() ); - // 4. Write data as a Lance Dataset self.write_data_file(&gen_path, memtable).await?; - // 5. Create BTree indexes using preprocessed data from in-memory indexes let created_indexes = self .create_indexes(&gen_path, index_configs, memtable.indexes()) .await?; @@ -373,7 +230,6 @@ impl MemTableFlusher { ); } - // 6. Create IVF-PQ indexes from in-memory data if let Some(registry) = memtable.indexes() { for config in index_configs { if let MemIndexConfig::IvfPq(ivf_pq_config) = config { @@ -390,15 +246,18 @@ impl MemTableFlusher { } } - // 7. Serialize bloom filter let bloom_path = gen_path.child("bloom_filter.bin"); self.write_bloom_filter(&bloom_path, memtable.bloom_filter()) .await?; - // 8. Update region manifest - let last_wal_id = memtable.last_flushed_wal_id(); + let last_wal_entry_position = memtable.last_flushed_wal_entry_position(); let new_manifest = self - .update_manifest(epoch_guard, generation, gen_path.as_ref(), last_wal_id) + .update_manifest( + epoch_guard, + generation, + gen_path.as_ref(), + last_wal_entry_position, + ) .await?; info!( @@ -413,23 +272,16 @@ impl MemTableFlusher { }, rows_flushed: memtable.row_count(), fragments_created: memtable.batch_count(), - covered_wal_id: last_wal_id, + covered_wal_entry_position: last_wal_entry_position, }) } - /// Create indexes on a flushed dataset. - /// - /// Opens the flushed dataset and creates BTree indexes using CreateIndexBuilder. - /// When in-memory indexes are available, uses preprocessed (already sorted) data - /// to skip re-reading and re-sorting the data. - /// - /// IVF-PQ indexes are skipped since they require brute-force search on - /// small flushed generations (the in-memory index handles the fast path). + /// Create BTree indexes on the flushed dataset. async fn create_indexes( &self, gen_path: &Path, index_configs: &[MemIndexConfig], - mem_indexes: Option<&super::indexes::IndexRegistry>, + mem_indexes: Option<&super::super::indexes::IndexRegistry>, ) -> Result> { use arrow_array::RecordBatchIterator; @@ -437,17 +289,12 @@ impl MemTableFlusher { let uri = self.path_to_uri(gen_path); - // Filter to only BTree indexes (IVF-PQ, FTS, and HNSW are handled differently) let btree_configs: Vec<_> = index_configs .iter() .filter_map(|c| match c { MemIndexConfig::BTree(cfg) => Some(cfg), - MemIndexConfig::IvfPq(_) => { - // IVF-PQ indexes are handled separately via create_ivf_pq_index - None - } + MemIndexConfig::IvfPq(_) => None, MemIndexConfig::Fts(_) => { - // FTS indexes require special handling (tantivy integration) warn!( "Skipping FTS index '{}' for flushed generation (not yet implemented)", c.name() @@ -461,11 +308,9 @@ impl MemTableFlusher { return Ok(vec![]); } - // Open the flushed dataset let mut dataset = Dataset::open(&uri).await?; let mut created_indexes = Vec::new(); - // Create each BTree index for btree_cfg in btree_configs { debug!( "Creating BTree index '{}' on column '{}' for flushed generation", @@ -481,8 +326,6 @@ impl MemTableFlusher { ) .name(btree_cfg.name.clone()); - // Try to get preprocessed data from in-memory index - // This data is already sorted (from skip-list iteration order) if let Some(registry) = mem_indexes { if let Some(btree_index) = registry.get_btree(&btree_cfg.name) { let training_batches = btree_index.to_training_batches(8192)?; @@ -491,19 +334,13 @@ impl MemTableFlusher { let reader = RecordBatchIterator::new(training_batches.into_iter().map(Ok), schema); builder = builder.preprocessed_data(Box::new(reader)); - debug!( - "Using preprocessed data for BTree index '{}' (already sorted)", - btree_cfg.name - ); } } } let index_meta = builder.execute_uncommitted().await?; - created_indexes.push(index_meta.clone()); - // Commit the index to the dataset use crate::dataset::transaction::{Operation, Transaction}; let transaction = Transaction::new( index_meta.dataset_version, @@ -530,8 +367,8 @@ impl MemTableFlusher { async fn create_ivf_pq_index( &self, gen_path: &Path, - config: &super::indexes::IvfPqIndexConfig, - mem_index: &super::indexes::IvfPqMemIndex, + config: &super::super::indexes::IvfPqIndexConfig, + mem_index: &super::super::indexes::IvfPqMemIndex, ) -> Result { use arrow_schema::{Field, Schema as ArrowSchema}; use lance_core::ROW_ID; @@ -705,7 +542,7 @@ impl MemTableFlusher { epoch_guard: &EpochGuard, generation: u64, gen_path: &str, - covered_wal_id: u64, + covered_wal_entry_position: u64, ) -> Result { // Read current manifest let current = self @@ -723,8 +560,8 @@ impl MemTableFlusher { let new_manifest = RegionManifest { version: current.version + 1, - replay_after_wal_id: covered_wal_id, - wal_id_last_seen: current.wal_id_last_seen.max(covered_wal_id), + replay_after_wal_id: covered_wal_entry_position, + wal_id_last_seen: current.wal_id_last_seen.max(covered_wal_entry_position), current_generation: generation + 1, flushed_generations, ..current @@ -785,16 +622,22 @@ fn transpose_pq_batch( }) } -/// Background flush handler message. -#[derive(Debug)] -pub enum FlushMessage { - /// Request to flush the current MemTable. - FlushMemTable { - /// Optional channel to notify when flush completes. - done: Option>>, - }, - /// Periodic tick to check for flush conditions. - Tick, +/// Message to trigger flush of a frozen memtable to Lance storage. +pub struct TriggerMemTableFlush { + /// The frozen memtable to flush. + pub memtable: Arc, + /// Optional channel to notify when flush completes. + pub done: Option>>, +} + +impl std::fmt::Debug for TriggerMemTableFlush { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + f.debug_struct("TriggerMemTableFlush") + .field("memtable_gen", &self.memtable.generation()) + .field("memtable_rows", &self.memtable.row_count()) + .field("has_done", &self.done.is_some()) + .finish() + } } #[cfg(test)] @@ -927,7 +770,7 @@ mod tests { assert_eq!(result.generation.generation, 1); assert_eq!(result.rows_flushed, 10); assert_eq!(result.fragments_created, 1); - assert_eq!(result.covered_wal_id, 1); + assert_eq!(result.covered_wal_entry_position, 1); // Verify manifest was updated let updated_manifest = manifest_store.read_latest().await.unwrap().unwrap(); @@ -939,7 +782,7 @@ mod tests { #[tokio::test] async fn test_flusher_with_btree_index() { - use super::super::indexes::{BTreeIndexConfig, IndexRegistry}; + use super::super::super::indexes::{BTreeIndexConfig, IndexRegistry}; use lance_index::DatasetIndexExt; let (store, base_path, base_uri, _temp_dir) = create_local_store().await; diff --git a/rust/lance/src/dataset/mem_wal/write/sequenced_batch.rs b/rust/lance/src/dataset/mem_wal/write/sequenced_batch.rs deleted file mode 100644 index 052c86d1b05..00000000000 --- a/rust/lance/src/dataset/mem_wal/write/sequenced_batch.rs +++ /dev/null @@ -1,209 +0,0 @@ -// SPDX-License-Identifier: Apache-2.0 -// SPDX-FileCopyrightText: Copyright The Lance Authors - -//! MVCC-aware RecordBatch wrapper. - -use arrow_array::RecordBatch; - -/// A RecordBatch with MVCC sequence number. -/// -/// Each write to the MemTable creates a SequencedBatch with a unique, -/// monotonically increasing sequence number. -#[derive(Clone, Debug)] -pub struct SequencedBatch { - /// The RecordBatch data. - batch: RecordBatch, - /// MVCC sequence number assigned during write. - /// Higher numbers are newer writes. - seq: u64, - /// Batch ID within the MemTable (for index/WAL tracking). - batch_id: usize, -} - -impl SequencedBatch { - /// Create a new sequenced batch. - pub fn new(batch: RecordBatch, seq: u64, batch_id: usize) -> Self { - Self { - batch, - seq, - batch_id, - } - } - - /// Get the RecordBatch. - pub fn batch(&self) -> &RecordBatch { - &self.batch - } - - /// Get the sequence number. - pub fn seq(&self) -> u64 { - self.seq - } - - /// Get the batch ID. - pub fn batch_id(&self) -> usize { - self.batch_id - } - - /// Get the number of rows in this batch. - pub fn num_rows(&self) -> usize { - self.batch.num_rows() - } - - /// Get the schema of this batch. - pub fn schema(&self) -> arrow_schema::SchemaRef { - self.batch.schema() - } - - /// Check if this batch is visible at the given sequence number. - /// - /// A batch is visible if its sequence number is <= the visibility cutoff. - pub fn is_visible_at(&self, visibility_seq: u64) -> bool { - self.seq <= visibility_seq - } -} - -/// Filter a collection of sequenced batches by visibility. -/// -/// Returns only batches that are visible at the given sequence number. -pub fn filter_visible<'a>( - batches: impl Iterator, - visibility_seq: u64, -) -> Vec<&'a SequencedBatch> { - batches - .filter(|batch| batch.is_visible_at(visibility_seq)) - .collect() -} - -/// Builder for creating SequencedBatch instances with automatic sequence assignment. -pub struct SequencedBatchBuilder { - next_batch_id: usize, -} - -impl SequencedBatchBuilder { - /// Create a new builder starting at batch ID 0. - pub fn new() -> Self { - Self { next_batch_id: 0 } - } - - /// Create a new builder starting at the given batch ID. - pub fn with_start_batch_id(start_id: usize) -> Self { - Self { - next_batch_id: start_id, - } - } - - /// Build a sequenced batch with the given sequence number. - /// - /// The batch ID is automatically assigned and incremented. - pub fn build(&mut self, batch: RecordBatch, seq: u64) -> SequencedBatch { - let batch_id = self.next_batch_id; - self.next_batch_id += 1; - SequencedBatch::new(batch, seq, batch_id) - } - - /// Get the next batch ID that will be assigned. - pub fn next_batch_id(&self) -> usize { - self.next_batch_id - } -} - -impl Default for SequencedBatchBuilder { - fn default() -> Self { - Self::new() - } -} - -#[cfg(test)] -mod tests { - use super::*; - use arrow_array::Int32Array; - use arrow_schema::{DataType, Field, Schema as ArrowSchema}; - use std::sync::Arc; - - fn create_test_batch(num_rows: usize) -> RecordBatch { - let schema = Arc::new(ArrowSchema::new(vec![Field::new( - "id", - DataType::Int32, - false, - )])); - let ids: Vec = (0..num_rows as i32).collect(); - RecordBatch::try_new(schema, vec![Arc::new(Int32Array::from(ids))]).unwrap() - } - - #[test] - fn test_sequenced_batch_basic() { - let batch = create_test_batch(10); - let sequenced = SequencedBatch::new(batch, 42, 0); - - assert_eq!(sequenced.seq(), 42); - assert_eq!(sequenced.batch_id(), 0); - assert_eq!(sequenced.num_rows(), 10); - } - - #[test] - fn test_sequenced_batch_visibility() { - let batch = create_test_batch(5); - let sequenced = SequencedBatch::new(batch, 100, 0); - - // Visible at seq >= 100 - assert!(sequenced.is_visible_at(100)); - assert!(sequenced.is_visible_at(200)); - assert!(sequenced.is_visible_at(u64::MAX)); - - // Not visible at seq < 100 - assert!(!sequenced.is_visible_at(99)); - assert!(!sequenced.is_visible_at(0)); - } - - #[test] - fn test_filter_visible() { - let batches: Vec = (1..=5) - .map(|i| SequencedBatch::new(create_test_batch(5), i * 10, i as usize - 1)) - .collect(); - - // At seq 25, only batches with seq <= 25 are visible (seq 10, 20) - let visible = filter_visible(batches.iter(), 25); - assert_eq!(visible.len(), 2); - assert_eq!(visible[0].seq(), 10); - assert_eq!(visible[1].seq(), 20); - - // At seq 50, all batches are visible - let visible = filter_visible(batches.iter(), 50); - assert_eq!(visible.len(), 5); - - // At seq 5, no batches are visible - let visible = filter_visible(batches.iter(), 5); - assert_eq!(visible.len(), 0); - } - - #[test] - fn test_sequenced_batch_builder() { - let mut builder = SequencedBatchBuilder::new(); - - let batch1 = builder.build(create_test_batch(5), 10); - assert_eq!(batch1.batch_id(), 0); - assert_eq!(batch1.seq(), 10); - - let batch2 = builder.build(create_test_batch(3), 20); - assert_eq!(batch2.batch_id(), 1); - assert_eq!(batch2.seq(), 20); - - let batch3 = builder.build(create_test_batch(7), 30); - assert_eq!(batch3.batch_id(), 2); - assert_eq!(batch3.seq(), 30); - - assert_eq!(builder.next_batch_id(), 3); - } - - #[test] - fn test_sequenced_batch_builder_with_start_id() { - let mut builder = SequencedBatchBuilder::with_start_batch_id(100); - - let batch1 = builder.build(create_test_batch(5), 10); - assert_eq!(batch1.batch_id(), 100); - - let batch2 = builder.build(create_test_batch(5), 20); - assert_eq!(batch2.batch_id(), 101); - } -} diff --git a/rust/lance/src/dataset/mem_wal/write/wal.rs b/rust/lance/src/dataset/mem_wal/write/wal.rs index 7ec26e1c376..b326d3bde92 100644 --- a/rust/lance/src/dataset/mem_wal/write/wal.rs +++ b/rust/lance/src/dataset/mem_wal/write/wal.rs @@ -1,60 +1,35 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-FileCopyrightText: Copyright The Lance Authors -#![allow(clippy::print_stderr)] - -//! Write-Ahead Log (WAL) buffer for durability. -//! -//! The WAL buffer tracks which batches need to be flushed to storage. -//! Batch data is stored in the MemTable's BatchStore. -//! On flush, batches are written as Arrow IPC files. -//! -//! ## File Naming -//! -//! WAL files use bit-reversed 64-bit binary naming to distribute files evenly -//! across object store keyspace, optimizing S3 throughput. -//! -//! ## Writer Epoch -//! -//! Each WAL entry includes the writer epoch in its schema metadata for fencing -//! validation during recovery. On replay, entries with `epoch > current_epoch` -//! are from a fenced writer and are ignored. +//! Write-Ahead Log (WAL) flusher for durability. //! -//! ## Format -//! -//! WAL entries are stored as Arrow IPC files containing the batches directly. -//! This is simpler and faster than Lance format for write-ahead logging. +//! Batches are written as Arrow IPC streams with writer epoch metadata for fencing. +//! WAL files use bit-reversed naming to distribute files evenly across S3 keyspace. use std::io::Cursor; -use std::sync::atomic::{AtomicU64, AtomicUsize, Ordering}; +use std::sync::atomic::{AtomicU64, Ordering}; use std::sync::Arc; use std::time::Instant; -/// Get a timestamp for debug logging (HH:MM:SS.mmm format). -/// Uses wall clock time so all threads share the same time reference. -fn log_ts() -> String { - chrono::Local::now().format("%H:%M:%S%.3f").to_string() -} - use arrow_array::RecordBatch; -use arrow_ipc::reader::FileReader; -use arrow_ipc::writer::FileWriter; +use arrow_ipc::reader::StreamReader; +use arrow_ipc::writer::StreamWriter; use arrow_schema::Schema as ArrowSchema; use bytes::Bytes; use lance_core::{Error, Result}; use lance_io::object_store::ObjectStore; use object_store::path::Path; use snafu::location; -use tokio::sync::{mpsc, oneshot, watch}; +use tokio::sync::{mpsc, watch}; -use super::watchable_cell::WatchableOnceCell; +use super::super::watchable_cell::WatchableOnceCell; use tracing::debug; use uuid::Uuid; use crate::dataset::mem_wal::util::{region_wal_path, wal_entry_filename}; -use super::batch_store::LockFreeBatchStore; -use super::indexes::{BufferedBatch, IndexRegistry}; +use super::super::batch_store::LockFreeBatchStore; +use super::super::indexes::{BufferedBatch, IndexRegistry}; /// Key for storing writer epoch in Arrow IPC file schema metadata. pub const WRITER_EPOCH_KEY: &str = "writer_epoch"; @@ -69,25 +44,25 @@ pub struct BatchDurableWatcher { /// Watch receiver for the durable watermark. rx: watch::Receiver, /// Target batch ID to wait for. - target_batch_id: usize, + target_batch_position: usize, } impl BatchDurableWatcher { /// Create a new watcher for a specific batch ID. - pub fn new(rx: watch::Receiver, target_batch_id: usize) -> Self { + pub fn new(rx: watch::Receiver, target_batch_position: usize) -> Self { Self { rx, - target_batch_id, + target_batch_position, } } /// Wait until the batch is durable. /// - /// Returns Ok(()) when `durable_watermark >= target_batch_id`. + /// Returns Ok(()) when `durable_watermark >= target_batch_position`. pub async fn wait(&mut self) -> Result<()> { loop { let current = *self.rx.borrow(); - if current >= self.target_batch_id { + if current >= self.target_batch_position { return Ok(()); } self.rx @@ -99,14 +74,14 @@ impl BatchDurableWatcher { /// Check if the batch is already durable (non-blocking). pub fn is_durable(&self) -> bool { - *self.rx.borrow() >= self.target_batch_id + *self.rx.borrow() >= self.target_batch_position } } impl std::fmt::Debug for BatchDurableWatcher { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { f.debug_struct("BatchDurableWatcher") - .field("target_batch_id", &self.target_batch_id) + .field("target_batch_position", &self.target_batch_position) .field("current_watermark", &*self.rx.borrow()) .finish() } @@ -115,12 +90,12 @@ impl std::fmt::Debug for BatchDurableWatcher { /// A single WAL entry representing a batch of batches. #[derive(Debug, Clone)] pub struct WalEntry { - /// WAL entry ID (sequential, starting from 1). - pub id: u64, + /// WAL entry position (0-based, sequential). + pub position: u64, /// Writer epoch at the time of write. pub writer_epoch: u64, /// Batch IDs and their positions within this entry. - pub batch_positions: Vec<(usize, usize)>, // (batch_id, position) + pub batch_positionitions: Vec<(usize, usize)>, // (batch_position, position) } /// Result of a parallel WAL flush with index update. @@ -141,65 +116,43 @@ pub struct WalFlushResult { pub wal_bytes: usize, } -/// WAL flush message sent to background flush handler. -pub enum WalFlushMsg { - /// Trigger an immediate flush up to a specific batch ID. - /// The end_batch_id is captured at trigger time to ensure each flush - /// handles exactly the batches that caused the trigger. - TriggerWalFlush { - /// End batch ID (exclusive) - flush batches from last_flushed_id to this. - /// Captured at trigger time to bound how much each flush handles. - end_batch_id: usize, - /// Optional channel to send result. - done: Option>>, - }, - /// Flush a frozen memtable's remaining WAL batches. - /// Sent at freeze time to ensure ordering before any new memtable flushes. - FlushFrozenMemTable { - /// The frozen memtable's batch store. - batch_store: Arc, - /// The frozen memtable's indexes (for parallel index update). - indexes: Option>, - /// Cell to write completion result. - /// The reader is stored in the frozen MemTable for flush_oldest_immutable to await. - /// Uses Result since Error doesn't implement Clone. - done: WatchableOnceCell>, - }, - /// Periodic tick to check for flush. - Tick, +/// Message to trigger a WAL flush for a specific batch store. +/// +/// This unified message handles both: +/// - Normal periodic flushes (specific end_batch_position) +/// - Freeze-time flushes (end_batch_position = usize::MAX to flush all) +pub struct TriggerWalFlush { + /// The batch store to flush from. + pub batch_store: Arc, + /// The indexes to update in parallel (for WAL-coupled index updates). + pub indexes: Option>, + /// End batch position (exclusive) - flush batches after max_wal_flushed_batch_position up to this. + /// Use usize::MAX to flush all pending batches. + pub end_batch_position: usize, + /// Optional cell to write completion result. + /// Uses Result since Error doesn't implement Clone. + pub done: Option>>, } -impl std::fmt::Debug for WalFlushMsg { +impl std::fmt::Debug for TriggerWalFlush { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - match self { - Self::TriggerWalFlush { end_batch_id, .. } => f - .debug_struct("TriggerWalFlush") - .field("end_batch_id", end_batch_id) - .finish(), - Self::FlushFrozenMemTable { batch_store, .. } => f - .debug_struct("FlushFrozenMemTable") - .field("pending_batches", &batch_store.pending_wal_flush_count()) - .finish(), - Self::Tick => write!(f, "Tick"), - } + f.debug_struct("TriggerWalFlush") + .field( + "pending_batches", + &self.batch_store.pending_wal_flush_count(), + ) + .field("end_batch_position", &self.end_batch_position) + .finish() } } -/// Buffer for tracking batches that need to be flushed to WAL. -/// -/// Uses a watermark-based approach instead of a pending list: -/// - `last_flushed_id`: Watermark of last batch flushed to WAL (exclusive) -/// - Pending batches = `[last_flushed_id, current_batch_count)` in LockFreeBatchStore +/// Buffer for WAL operations. /// /// Durability is tracked via a watch channel that broadcasts the durable watermark. -/// This eliminates per-batch oneshot channels and the pending list. -pub struct WalBuffer { - /// Watermark: last batch index that was flushed to WAL (exclusive). - /// Batches `[0, last_flushed_id)` are durable. - /// Starts at 0 (meaning no batches flushed yet). - last_flushed_id: AtomicUsize, +/// The actual flush watermark is stored in `LockFreeBatchStore.max_flushed_batch_position`. +pub struct WalFlusher { /// Watch channel sender for durable watermark. - /// Broadcasts the highest batch_id that is now durable. + /// Broadcasts the highest batch_position that is now durable. durable_watermark_tx: watch::Sender, /// Watch channel receiver for creating new watchers. durable_watermark_rx: watch::Receiver, @@ -210,36 +163,48 @@ pub struct WalBuffer { /// Writer epoch (stored in WAL entries for fencing). writer_epoch: u64, /// Next WAL entry ID to use. - next_wal_id: AtomicU64, + next_wal_entry_position: AtomicU64, /// Channel to send flush messages. - flush_tx: Option>, + flush_tx: Option>, /// WAL directory path. wal_dir: Path, + /// Cell for WAL flush completion notification. + /// Created at construction and recreated after each flush. + /// Used by backpressure to wait for WAL flushes. + wal_flush_cell: + std::sync::Mutex>>, } -impl WalBuffer { - /// Create a new WAL buffer. +impl WalFlusher { + /// Create a new WAL flusher. /// /// # Arguments /// /// * `base_path` - Base path within the object store (from ObjectStore::from_uri) /// * `region_id` - Region UUID /// * `writer_epoch` - Current writer epoch - /// * `next_wal_id` - Next WAL entry ID (from recovery or 1 for new region) - pub fn new(base_path: &Path, region_id: Uuid, writer_epoch: u64, next_wal_id: u64) -> Self { + /// * `next_wal_entry_position` - Next WAL entry ID (from recovery or 1 for new region) + pub fn new( + base_path: &Path, + region_id: Uuid, + writer_epoch: u64, + next_wal_entry_position: u64, + ) -> Self { let wal_dir = region_wal_path(base_path, ®ion_id); // Initialize durable watermark at 0 (no batches durable yet) let (durable_watermark_tx, durable_watermark_rx) = watch::channel(0); + // Create initial WAL flush cell for backpressure + let wal_flush_cell = WatchableOnceCell::new(); Self { - last_flushed_id: AtomicUsize::new(0), durable_watermark_tx, durable_watermark_rx, object_store: None, region_id, writer_epoch, - next_wal_id: AtomicU64::new(next_wal_id), + next_wal_entry_position: AtomicU64::new(next_wal_entry_position), flush_tx: None, wal_dir, + wal_flush_cell: std::sync::Mutex::new(Some(wal_flush_cell)), } } @@ -249,7 +214,7 @@ impl WalBuffer { } /// Set the flush channel for background flush handler. - pub fn set_flush_channel(&mut self, tx: mpsc::UnboundedSender) { + pub fn set_flush_channel(&mut self, tx: mpsc::UnboundedSender) { self.flush_tx = Some(tx); } @@ -261,25 +226,11 @@ impl WalBuffer { /// /// # Arguments /// - /// * `batch_id` - Batch ID (index in the BatchStore) - pub fn track_batch(&self, batch_id: usize) -> BatchDurableWatcher { + /// * `batch_position` - Batch ID (index in the BatchStore) + pub fn track_batch(&self, batch_position: usize) -> BatchDurableWatcher { // Return a watcher that waits for this batch to become durable - // batch_id is 0-indexed, so we wait for watermark > batch_id (i.e., >= batch_id + 1) - BatchDurableWatcher::new(self.durable_watermark_rx.clone(), batch_id + 1) - } - - /// Check if there are batches pending WAL flush. - /// - /// # Arguments - /// - /// * `current_batch_count` - Current number of batches in the batch store - pub fn has_pending_batches(&self, current_batch_count: usize) -> bool { - self.last_flushed_id.load(Ordering::Acquire) < current_batch_count - } - - /// Get the last flushed batch ID (exclusive watermark). - pub fn last_flushed_id(&self) -> usize { - self.last_flushed_id.load(Ordering::Acquire) + // batch_position is 0-indexed, so we wait for watermark > batch_position (i.e., >= batch_position + 1) + BatchDurableWatcher::new(self.durable_watermark_rx.clone(), batch_position + 1) } /// Get the current durable watermark. @@ -287,199 +238,61 @@ impl WalBuffer { *self.durable_watermark_rx.borrow() } - /// Reset watermarks for a new memtable. + /// Get a watcher for WAL flush completion. /// - /// Called when a memtable is swapped out and a new one is created. - /// The new memtable starts with batch_id=0, so we reset the watermarks. - pub fn reset_for_new_memtable(&self) { - self.last_flushed_id.store(0, Ordering::Release); - // Note: We don't reset durable_watermark since that's for notifying - // watchers from the old memtable. New watchers will use the new batch IDs. + /// Returns a watcher that resolves when the next WAL flush completes. + /// Used by backpressure to wait for WAL flushes when the buffer is full. + pub fn wal_flush_watcher( + &self, + ) -> Option< + super::super::watchable_cell::WatchableOnceCellReader, + > { + self.wal_flush_cell + .lock() + .unwrap() + .as_ref() + .map(|cell| cell.reader()) } - /// Trigger an immediate flush up to a specific batch. - /// - /// # Arguments + /// Signal that a WAL flush has completed and create a new cell for the next flush. /// - /// * `end_batch_id` - End batch ID (exclusive). Use usize::MAX to flush all pending. - /// * `done` - Optional channel to receive flush result - pub fn trigger_flush( - &self, - end_batch_id: usize, - done: Option>>, - ) -> Result<()> { - if let Some(tx) = &self.flush_tx { - tx.send(WalFlushMsg::TriggerWalFlush { end_batch_id, done }) - .map_err(|_| Error::io("WAL flush channel closed", location!()))?; + /// Called after each successful WAL flush to notify backpressure waiters. + fn signal_wal_flush_complete(&self) { + let mut guard = self.wal_flush_cell.lock().unwrap(); + // Signal the current cell + if let Some(cell) = guard.take() { + cell.write(super::batch_write::DurabilityResult::ok()); } - Ok(()) + // Create a new cell for the next flush + *guard = Some(WatchableOnceCell::new()); } - /// Send a flush request for a frozen memtable. - /// - /// This message is sent at freeze time to ensure the WAL flush for this - /// memtable happens before any WAL flushes for the new memtable, preserving - /// strict write-time ordering of WAL entries. + /// Trigger an immediate flush for a specific batch store up to a specific batch ID. /// /// # Arguments /// - /// * `batch_store` - The frozen memtable's batch store - /// * `indexes` - The frozen memtable's indexes (for parallel index update) - /// * `done` - Cell to write completion result (reader stored in frozen MemTable) - pub fn trigger_frozen_memtable_flush( + /// * `batch_store` - The batch store to flush from + /// * `indexes` - Optional indexes to update in parallel with WAL I/O + /// * `end_batch_position` - End batch ID (exclusive). Use usize::MAX to flush all pending. + /// * `done` - Optional cell to write completion result + pub fn trigger_flush( &self, batch_store: Arc, indexes: Option>, - done: WatchableOnceCell>, + end_batch_position: usize, + done: Option>>, ) -> Result<()> { if let Some(tx) = &self.flush_tx { - tx.send(WalFlushMsg::FlushFrozenMemTable { + tx.send(TriggerWalFlush { batch_store, indexes, + end_batch_position, done, }) .map_err(|_| Error::io("WAL flush channel closed", location!()))?; } Ok(()) } - - /// Flush pending batches to WAL using watermark-based tracking. - /// - /// This method: - /// 1. Gets pending batch range from `[last_flushed_id, current_count)` - /// 2. Fetches batches from LockFreeBatchStore - /// 3. Writes to WAL as Arrow IPC - /// 4. Updates watermarks and notifies durability waiters - /// - /// # Arguments - /// - /// * `batch_store` - The LockFreeBatchStore to read batches from - /// - /// # Returns - /// - /// The WAL entry ID that was written, or None if no pending data. - pub async fn flush(&self, batch_store: &LockFreeBatchStore) -> Result> { - // Get pending batch range - let flushed_id = self.last_flushed_id.load(Ordering::Acquire); - let current_count = batch_store.len(); - - if current_count <= flushed_id { - return Ok(None); // No pending batches - } - - let object_store = self - .object_store - .as_ref() - .ok_or_else(|| Error::io("Object store not set on WAL buffer", location!()))?; - - let wal_id = self.next_wal_id.fetch_add(1, Ordering::SeqCst); - let filename = wal_entry_filename(wal_id); - let final_path = self.wal_dir.child(format!("{}.arrow", filename).as_str()); - - // Collect batches from the pending range - let mut batches = Vec::with_capacity(current_count - flushed_id); - let mut batch_positions = Vec::with_capacity(current_count - flushed_id); - - for batch_id in flushed_id..current_count { - if let Some(stored) = batch_store.get(batch_id) { - batch_positions.push((batch_id, batches.len())); - batches.push(stored.data.clone()); - } - } - - if batches.is_empty() { - return Ok(None); - } - - debug!( - "Flushing {} batches (IDs {}..{}) to WAL entry {} for region {}", - batches.len(), - flushed_id, - current_count, - wal_id, - self.region_id - ); - - // Write as Arrow IPC file - self.write_arrow_ipc(&final_path, object_store, &batches) - .await?; - - // Update watermarks - self.last_flushed_id.store(current_count, Ordering::Release); - - // Notify durability waiters by updating the durable watermark - // This wakes up all BatchDurableWatcher instances waiting for batch_id < current_count - let _ = self.durable_watermark_tx.send(current_count); - - let entry = WalEntry { - id: wal_id, - writer_epoch: self.writer_epoch, - batch_positions, - }; - - debug!("Wrote WAL entry {} to {}", wal_id, final_path); - Ok(Some(entry)) - } - - /// Write batches to an Arrow IPC file. - /// - /// The schema metadata contains `writer_epoch` for fencing validation. - async fn write_arrow_ipc( - &self, - path: &Path, - object_store: &ObjectStore, - batches: &[RecordBatch], - ) -> Result<()> { - if batches.is_empty() { - return Ok(()); - } - - // Get schema from first batch and add epoch metadata - let original_schema = batches[0].schema(); - let mut metadata = original_schema.metadata().clone(); - metadata.insert(WRITER_EPOCH_KEY.to_string(), self.writer_epoch.to_string()); - let schema_with_epoch = Arc::new(ArrowSchema::new_with_metadata( - original_schema.fields().to_vec(), - metadata, - )); - - // Write to in-memory buffer first, then upload - let mut buffer = Vec::new(); - { - let mut writer = FileWriter::try_new(&mut buffer, &schema_with_epoch).map_err(|e| { - Error::io( - format!("Failed to create Arrow IPC writer: {}", e), - location!(), - ) - })?; - - for batch in batches { - writer.write(batch).map_err(|e| { - Error::io( - format!("Failed to write batch to Arrow IPC: {}", e), - location!(), - ) - })?; - } - - writer.finish().map_err(|e| { - Error::io( - format!("Failed to finish Arrow IPC file: {}", e), - location!(), - ) - })?; - } - - // Upload to object store - object_store - .inner - .put(path, Bytes::from(buffer).into()) - .await - .map_err(|e| Error::io(format!("Failed to write WAL file: {}", e), location!()))?; - - Ok(()) - } - /// Flush pending batches to WAL and update indexes in parallel. /// /// This method: @@ -500,11 +313,15 @@ impl WalBuffer { batch_store: &LockFreeBatchStore, indexes: Option>, ) -> Result { - // Get pending batch range from per-memtable watermark - let flushed_id = batch_store.wal_flushed_batch_id(); + // Get pending batch range from per-memtable watermark (inclusive) + // start_batch_position is the first batch to flush + let start_batch_position = batch_store + .max_flushed_batch_position() + .map(|w| w + 1) + .unwrap_or(0); let current_count = batch_store.len(); - if current_count <= flushed_id { + if current_count <= start_batch_position { return Ok(WalFlushResult { entry: None, wal_io_duration: std::time::Duration::ZERO, @@ -518,35 +335,30 @@ impl WalBuffer { let object_store = self .object_store .as_ref() - .ok_or_else(|| Error::io("Object store not set on WAL buffer", location!()))?; + .ok_or_else(|| Error::io("Object store not set on WAL flusher", location!()))?; - let wal_id = self.next_wal_id.fetch_add(1, Ordering::SeqCst); - let filename = wal_entry_filename(wal_id); + let wal_entry_position = self.next_wal_entry_position.fetch_add(1, Ordering::SeqCst); + let filename = wal_entry_filename(wal_entry_position); let final_path = self.wal_dir.child(format!("{}.arrow", filename).as_str()); debug!( "Flushing batches {}..{} to WAL entry {} with parallel index update", - flushed_id, current_count, wal_id + start_batch_position, current_count, wal_entry_position ); // Collect batches and prepare index data - let mut batches = Vec::with_capacity(current_count - flushed_id); - let mut batch_positions = Vec::with_capacity(current_count - flushed_id); - let mut index_batches = Vec::with_capacity(current_count - flushed_id); + let mut batches = Vec::with_capacity(current_count - start_batch_position); + let mut batch_positionitions = Vec::with_capacity(current_count - start_batch_position); + let mut index_batches = Vec::with_capacity(current_count - start_batch_position); - for batch_id in flushed_id..current_count { - if let Some(stored) = batch_store.get(batch_id) { - batch_positions.push((batch_id, batches.len())); + for batch_position in start_batch_position..current_count { + if let Some(stored) = batch_store.get(batch_position) { + batch_positionitions.push((batch_position, batches.len())); batches.push(stored.data.clone()); index_batches.push(BufferedBatch { batch: stored.data.clone(), row_offset: stored.row_offset, - seq: if stored.seq == 0 { - None - } else { - Some(stored.seq) - }, - done: None, + batch_position: Some(batch_position), }); } } @@ -573,20 +385,21 @@ impl WalBuffer { metadata, )); - // Serialize WAL data (CPU work before I/O) + // Serialize WAL data as IPC stream (schema at start, no footer) let mut buffer = Vec::new(); { - let mut writer = FileWriter::try_new(&mut buffer, &schema_with_epoch).map_err(|e| { - Error::io( - format!("Failed to create Arrow IPC writer: {}", e), - location!(), - ) - })?; + let mut writer = + StreamWriter::try_new(&mut buffer, &schema_with_epoch).map_err(|e| { + Error::io( + format!("Failed to create Arrow IPC stream writer: {}", e), + location!(), + ) + })?; for batch in &batches { writer.write(batch).map_err(|e| { Error::io( - format!("Failed to write batch to Arrow IPC: {}", e), + format!("Failed to write batch to Arrow IPC stream: {}", e), location!(), ) })?; @@ -594,7 +407,7 @@ impl WalBuffer { writer.finish().map_err(|e| { Error::io( - format!("Failed to finish Arrow IPC file: {}", e), + format!("Failed to finish Arrow IPC stream: {}", e), location!(), ) })?; @@ -662,21 +475,23 @@ impl WalBuffer { let wal_io_duration = wal_result?; let (index_update_duration, index_update_duration_breakdown) = index_result?; - // Update per-memtable watermark - batch_store.set_wal_flushed_batch_id(current_count); + // Update per-memtable watermark (inclusive: last batch ID that was flushed) + batch_store.set_max_flushed_batch_position(current_count - 1); // Notify durability waiters (global channel) let _ = self.durable_watermark_tx.send(current_count); + // Signal WAL flush completion for backpressure waiters + self.signal_wal_flush_complete(); let entry = WalEntry { - id: wal_id, + position: wal_entry_position, writer_epoch: self.writer_epoch, - batch_positions, + batch_positionitions, }; debug!( "WAL entry {} written: wal_io={:?}, index={:?} ({:?}), {} rows", - wal_id, + wal_entry_position, wal_io_duration, index_update_duration, index_update_duration_breakdown, @@ -693,32 +508,36 @@ impl WalBuffer { }) } - /// Flush batches up to a specific end_batch_id with index updates. + /// Flush batches up to a specific end_batch_position with index updates. /// - /// This method flushes batches from `last_flushed_id` to `end_batch_id`, + /// This method flushes batches from `(max_wal_flushed_batch_position + 1)` to `end_batch_position`, /// allowing each trigger to flush only the batches that existed at trigger time. /// /// # Arguments /// /// * `batch_store` - The LockFreeBatchStore to read batches from - /// * `end_batch_id` - End batch ID (exclusive) - flush up to this batch + /// * `end_batch_position` - End batch ID (exclusive) - flush up to this batch /// * `indexes` - Optional IndexRegistry to update /// /// # Returns /// /// A `WalFlushResult` with timing metrics and the WAL entry. - /// Returns empty result if nothing to flush (already flushed past end_batch_id). + /// Returns empty result if nothing to flush (already flushed past end_batch_position). pub async fn flush_to_with_index_update( &self, batch_store: &LockFreeBatchStore, - end_batch_id: usize, + end_batch_position: usize, indexes: Option>, ) -> Result { - // Get current flush position from per-memtable watermark - let flushed_id = batch_store.wal_flushed_batch_id(); + // Get current flush position from per-memtable watermark (inclusive) + // start_batch_position is the first batch to flush + let start_batch_position = batch_store + .max_flushed_batch_position() + .map(|w| w + 1) + .unwrap_or(0); // If we've already flushed past this end, nothing to do - if flushed_id >= end_batch_id { + if start_batch_position >= end_batch_position { return Ok(WalFlushResult { entry: None, wal_io_duration: std::time::Duration::ZERO, @@ -732,30 +551,26 @@ impl WalBuffer { let object_store = self .object_store .as_ref() - .ok_or_else(|| Error::io("Object store not set on WAL buffer", location!()))?; + .ok_or_else(|| Error::io("Object store not set on WAL flusher", location!()))?; - let wal_id = self.next_wal_id.fetch_add(1, Ordering::SeqCst); - let filename = wal_entry_filename(wal_id); + let wal_entry_position = self.next_wal_entry_position.fetch_add(1, Ordering::SeqCst); + let filename = wal_entry_filename(wal_entry_position); let final_path = self.wal_dir.child(format!("{}.arrow", filename).as_str()); - // Collect batches in range [flushed_id, end_batch_id) - let mut batches = Vec::with_capacity(end_batch_id - flushed_id); - let mut batch_positions = Vec::with_capacity(end_batch_id - flushed_id); - let mut index_batches = Vec::with_capacity(end_batch_id - flushed_id); + // Collect batches in range [start_batch_position, end_batch_position) + let mut batches = Vec::with_capacity(end_batch_position - start_batch_position); + let mut batch_positionitions = + Vec::with_capacity(end_batch_position - start_batch_position); + let mut index_batches = Vec::with_capacity(end_batch_position - start_batch_position); - for batch_id in flushed_id..end_batch_id { - if let Some(stored) = batch_store.get(batch_id) { - batch_positions.push((batch_id, batches.len())); + for batch_position in start_batch_position..end_batch_position { + if let Some(stored) = batch_store.get(batch_position) { + batch_positionitions.push((batch_position, batches.len())); batches.push(stored.data.clone()); index_batches.push(BufferedBatch { batch: stored.data.clone(), row_offset: stored.row_offset, - seq: if stored.seq == 0 { - None - } else { - Some(stored.seq) - }, - done: None, + batch_position: Some(batch_position), }); } } @@ -773,16 +588,6 @@ impl WalBuffer { let rows_to_index: usize = index_batches.iter().map(|b| b.batch.num_rows()).sum(); - eprintln!( - "[{}] [WAL_FLUSH] Flushing range {}..{} ({} batches, {} rows) to WAL #{}", - log_ts(), - flushed_id, - end_batch_id, - batches.len(), - rows_to_index, - wal_id - ); - // Prepare WAL I/O data let schema = batches[0].schema(); let mut metadata = schema.metadata().clone(); @@ -792,20 +597,21 @@ impl WalBuffer { metadata, )); - // Serialize WAL data + // Serialize WAL data as IPC stream (schema at start, no footer) let mut buffer = Vec::new(); { - let mut writer = FileWriter::try_new(&mut buffer, &schema_with_epoch).map_err(|e| { - Error::io( - format!("Failed to create Arrow IPC writer: {}", e), - location!(), - ) - })?; + let mut writer = + StreamWriter::try_new(&mut buffer, &schema_with_epoch).map_err(|e| { + Error::io( + format!("Failed to create Arrow IPC stream writer: {}", e), + location!(), + ) + })?; for batch in &batches { writer.write(batch).map_err(|e| { Error::io( - format!("Failed to write batch to Arrow IPC: {}", e), + format!("Failed to write batch to Arrow IPC stream: {}", e), location!(), ) })?; @@ -813,7 +619,7 @@ impl WalBuffer { writer.finish().map_err(|e| { Error::io( - format!("Failed to finish Arrow IPC file: {}", e), + format!("Failed to finish Arrow IPC stream: {}", e), location!(), ) })?; @@ -876,26 +682,18 @@ impl WalBuffer { let wal_io_duration = wal_result?; let (index_update_duration, index_update_duration_breakdown) = index_result?; - eprintln!( - "[{}] [WAL_FLUSH] WAL #{} complete: S3={}ms, index={}ms ({:?}), {} batches", - log_ts(), - wal_id, - wal_io_duration.as_millis(), - index_update_duration.as_millis(), - index_update_duration_breakdown, - batches.len() - ); - - // Update per-memtable watermark - batch_store.set_wal_flushed_batch_id(end_batch_id); + // Update per-memtable watermark (inclusive: last batch ID that was flushed) + batch_store.set_max_flushed_batch_position(end_batch_position - 1); // Notify durability waiters (global channel) - let _ = self.durable_watermark_tx.send(end_batch_id); + let _ = self.durable_watermark_tx.send(end_batch_position); + // Signal WAL flush completion for backpressure waiters + self.signal_wal_flush_complete(); let entry = WalEntry { - id: wal_id, + position: wal_entry_position, writer_epoch: self.writer_epoch, - batch_positions, + batch_positionitions, }; Ok(WalFlushResult { @@ -909,8 +707,8 @@ impl WalBuffer { } /// Get the current WAL ID (last written + 1). - pub fn next_wal_id(&self) -> u64 { - self.next_wal_id.load(Ordering::SeqCst) + pub fn next_wal_entry_position(&self) -> u64 { + self.next_wal_entry_position.load(Ordering::SeqCst) } /// Get the region ID. @@ -918,244 +716,14 @@ impl WalBuffer { self.region_id } - /// Flush a limited range of batches to WAL with index updates. - /// - /// This method flushes at most `limit` pending batches to avoid large S3 uploads. - /// - /// # Arguments - /// - /// * `batch_store` - The LockFreeBatchStore to read batches from - /// * `limit` - Maximum number of batches to flush in this call - /// * `indexes` - Optional IndexRegistry to update - /// - /// # Returns - /// - /// A `WalFlushResult` with timing metrics and the WAL entry. - pub async fn flush_limited( - &self, - batch_store: &LockFreeBatchStore, - limit: usize, - indexes: Option>, - ) -> Result { - // Get pending batch range from per-memtable watermark - let flushed_id = batch_store.wal_flushed_batch_id(); - let current_count = batch_store.len(); - - if current_count <= flushed_id { - return Ok(WalFlushResult { - entry: None, - wal_io_duration: std::time::Duration::ZERO, - index_update_duration: std::time::Duration::ZERO, - index_update_duration_breakdown: std::collections::HashMap::new(), - rows_indexed: 0, - wal_bytes: 0, - }); - } - - // Limit the range to flush - let flush_end = (flushed_id + limit).min(current_count); - - let object_store = self - .object_store - .as_ref() - .ok_or_else(|| Error::io("Object store not set on WAL buffer", location!()))?; - - let wal_id = self.next_wal_id.fetch_add(1, Ordering::SeqCst); - let filename = wal_entry_filename(wal_id); - let final_path = self.wal_dir.child(format!("{}.arrow", filename).as_str()); - - // Collect batches and prepare index data - let mut batches = Vec::with_capacity(flush_end - flushed_id); - let mut batch_positions = Vec::with_capacity(flush_end - flushed_id); - let mut index_batches = Vec::with_capacity(flush_end - flushed_id); - - for batch_id in flushed_id..flush_end { - if let Some(stored) = batch_store.get(batch_id) { - batch_positions.push((batch_id, batches.len())); - batches.push(stored.data.clone()); - index_batches.push(BufferedBatch { - batch: stored.data.clone(), - row_offset: stored.row_offset, - seq: if stored.seq == 0 { - None - } else { - Some(stored.seq) - }, - done: None, - }); - } - } - - if batches.is_empty() { - return Ok(WalFlushResult { - entry: None, - wal_io_duration: std::time::Duration::ZERO, - index_update_duration: std::time::Duration::ZERO, - index_update_duration_breakdown: std::collections::HashMap::new(), - rows_indexed: 0, - wal_bytes: 0, - }); - } - - let rows_to_index: usize = index_batches.iter().map(|b| b.batch.num_rows()).sum(); - eprintln!( - "[{}] [WAL_FLUSH] flush_limited: {} batches (IDs {}..{}), {} rows to index", - log_ts(), - batches.len(), - flushed_id, - flush_end, - rows_to_index - ); - - // Prepare WAL I/O data - let schema = batches[0].schema(); - let mut metadata = schema.metadata().clone(); - metadata.insert(WRITER_EPOCH_KEY.to_string(), self.writer_epoch.to_string()); - let schema_with_epoch = Arc::new(ArrowSchema::new_with_metadata( - schema.fields().to_vec(), - metadata, - )); - - // Serialize WAL data (CPU work before I/O) - let serialize_start = Instant::now(); - let mut buffer = Vec::new(); - { - let mut writer = FileWriter::try_new(&mut buffer, &schema_with_epoch).map_err(|e| { - Error::io( - format!("Failed to create Arrow IPC writer: {}", e), - location!(), - ) - })?; - - for batch in &batches { - writer.write(batch).map_err(|e| { - Error::io( - format!("Failed to write batch to Arrow IPC: {}", e), - location!(), - ) - })?; - } - - writer.finish().map_err(|e| { - Error::io( - format!("Failed to finish Arrow IPC file: {}", e), - location!(), - ) - })?; - } - - let wal_bytes = buffer.len(); - eprintln!( - "[{}] [WAL_FLUSH] Serialized {} bytes in {}ms", - log_ts(), - wal_bytes, - serialize_start.elapsed().as_millis() - ); - - // WAL I/O task - let wal_path = final_path.clone(); - let wal_data = Bytes::from(buffer); - let store = object_store.clone(); - - // Index update task (runs in parallel via tokio::join!) - // Returns (overall_duration, per_index_durations) - let (wal_result, index_result) = if let Some(idx_registry) = indexes { - let wal_future = async { - let start = Instant::now(); - store - .inner - .put(&wal_path, wal_data.into()) - .await - .map_err(|e| { - Error::io(format!("Failed to write WAL file: {}", e), location!()) - })?; - Ok::<_, Error>(start.elapsed()) - }; - - let index_future = async { - let start = Instant::now(); - let per_index = tokio::task::spawn_blocking(move || { - idx_registry.insert_batches_parallel(&index_batches) - }) - .await - .map_err(|e| Error::Internal { - message: format!("Index update task panicked: {}", e), - location: location!(), - })??; - Ok::<_, Error>((start.elapsed(), per_index)) - }; - - tokio::join!(wal_future, index_future) - } else { - let wal_future = async { - let start = Instant::now(); - store - .inner - .put(&wal_path, wal_data.into()) - .await - .map_err(|e| { - Error::io(format!("Failed to write WAL file: {}", e), location!()) - })?; - Ok::<_, Error>(start.elapsed()) - }; - - ( - wal_future.await, - Ok((std::time::Duration::ZERO, std::collections::HashMap::new())), - ) - }; - - // Check for errors - let wal_io_duration = wal_result?; - let (index_update_duration, index_update_duration_breakdown) = index_result?; - eprintln!( - "[{}] [WAL_FLUSH] S3 put: {}ms, index update: {}ms ({:?}), {} rows", - log_ts(), - wal_io_duration.as_millis(), - index_update_duration.as_millis(), - index_update_duration_breakdown, - rows_to_index - ); - - // Update per-memtable watermark - only advance to the batches we actually flushed - batch_store.set_wal_flushed_batch_id(flush_end); - - // Notify durability waiters (global channel) - let _ = self.durable_watermark_tx.send(flush_end); - - let entry = WalEntry { - id: wal_id, - writer_epoch: self.writer_epoch, - batch_positions, - }; - - debug!( - "WAL entry {} written: wal_io={:?}, index={:?} ({:?}), {} rows", - wal_id, - wal_io_duration, - index_update_duration, - index_update_duration_breakdown, - rows_to_index - ); - - Ok(WalFlushResult { - entry: Some(entry), - wal_io_duration, - index_update_duration, - index_update_duration_breakdown, - rows_indexed: rows_to_index, - wal_bytes, - }) - } - /// Get the writer epoch. pub fn writer_epoch(&self) -> u64 { self.writer_epoch } /// Get the path for a WAL entry. - pub fn wal_entry_path(&self, wal_id: u64) -> Path { - let filename = wal_entry_filename(wal_id); + pub fn wal_entry_path(&self, wal_entry_position: u64) -> Path { + let filename = wal_entry_filename(wal_entry_position); self.wal_dir.child(format!("{}.arrow", filename).as_str()) } } @@ -1191,16 +759,16 @@ impl WalEntryData { .await .map_err(|e| Error::io(format!("Failed to get WAL file bytes: {}", e), location!()))?; - // Parse as Arrow IPC + // Parse as Arrow IPC stream let cursor = Cursor::new(data); - let reader = FileReader::try_new(cursor, None).map_err(|e| { + let reader = StreamReader::try_new(cursor, None).map_err(|e| { Error::io( - format!("Failed to open Arrow IPC reader: {}", e), + format!("Failed to open Arrow IPC stream reader: {}", e), location!(), ) })?; - // Extract writer epoch from schema metadata + // Extract writer epoch from schema metadata (at start of stream) let schema = reader.schema(); let writer_epoch = schema .metadata() @@ -1213,7 +781,7 @@ impl WalEntryData { for batch_result in reader { let batch = batch_result.map_err(|e| { Error::io( - format!("Failed to read batch from Arrow IPC: {}", e), + format!("Failed to read batch from Arrow IPC stream: {}", e), location!(), ) })?; @@ -1263,10 +831,10 @@ mod tests { } #[tokio::test] - async fn test_wal_buffer_track_batch() { + async fn test_wal_flusher_track_batch() { let (store, base_path, _temp_dir) = create_local_store().await; let region_id = Uuid::new_v4(); - let mut buffer = WalBuffer::new(&base_path, region_id, 1, 1); + let mut buffer = WalFlusher::new(&base_path, region_id, 1, 1); buffer.set_object_store(store); // Track a batch @@ -1274,16 +842,13 @@ mod tests { // Watcher should not be durable yet assert!(!watcher.is_durable()); - // Check has_pending_batches - assert!(buffer.has_pending_batches(1)); - assert!(!buffer.has_pending_batches(0)); } #[tokio::test] - async fn test_wal_buffer_flush() { + async fn test_wal_flusher_flush_with_index_update() { let (store, base_path, _temp_dir) = create_local_store().await; let region_id = Uuid::new_v4(); - let mut buffer = WalBuffer::new(&base_path, region_id, 1, 1); + let mut buffer = WalFlusher::new(&base_path, region_id, 1, 1); buffer.set_object_store(store); // Create a LockFreeBatchStore with some data @@ -1292,26 +857,29 @@ mod tests { let batch2 = create_test_batch(&schema, 5); let batch_store = LockFreeBatchStore::with_capacity(10); - batch_store.append(batch1, 1).unwrap(); - batch_store.append(batch2, 2).unwrap(); + batch_store.append(batch1).unwrap(); + batch_store.append(batch2).unwrap(); - // Track batch IDs in WAL buffer + // Track batch IDs in WAL flusher let mut watcher1 = buffer.track_batch(0); let mut watcher2 = buffer.track_batch(1); // Verify initial state assert!(!watcher1.is_durable()); assert!(!watcher2.is_durable()); - assert!(buffer.has_pending_batches(batch_store.len())); + assert!(batch_store.max_flushed_batch_position().is_none()); - // Flush - let entry = buffer.flush(&batch_store).await.unwrap().unwrap(); - assert_eq!(entry.id, 1); + // Flush using flush_with_index_update + let result = buffer + .flush_with_index_update(&batch_store, None) + .await + .unwrap(); + let entry = result.entry.unwrap(); + assert_eq!(entry.position, 1); assert_eq!(entry.writer_epoch, 1); - assert_eq!(entry.batch_positions.len(), 2); - assert_eq!(buffer.last_flushed_id(), 2); - // After flush, no pending batches - assert!(!buffer.has_pending_batches(batch_store.len())); + assert_eq!(entry.batch_positionitions.len(), 2); + // After flushing 2 batches (positions 0 and 1), max flushed position is 1 (inclusive) + assert_eq!(batch_store.max_flushed_batch_position(), Some(1)); // Watchers should be notified watcher1.wait().await.unwrap(); @@ -1324,26 +892,26 @@ mod tests { async fn test_wal_entry_read() { let (store, base_path, _temp_dir) = create_local_store().await; let region_id = Uuid::new_v4(); - let mut buffer = WalBuffer::new(&base_path, region_id, 42, 1); + let mut buffer = WalFlusher::new(&base_path, region_id, 42, 1); buffer.set_object_store(store.clone()); // Create a LockFreeBatchStore with some data let schema = create_test_schema(); let batch_store = LockFreeBatchStore::with_capacity(10); - batch_store - .append(create_test_batch(&schema, 10), 1) - .unwrap(); - batch_store - .append(create_test_batch(&schema, 5), 2) - .unwrap(); + batch_store.append(create_test_batch(&schema, 10)).unwrap(); + batch_store.append(create_test_batch(&schema, 5)).unwrap(); - // Track batch IDs and flush + // Track batch IDs and flush using flush_with_index_update let _watcher1 = buffer.track_batch(0); let _watcher2 = buffer.track_batch(1); - let entry = buffer.flush(&batch_store).await.unwrap().unwrap(); + let result = buffer + .flush_with_index_update(&batch_store, None) + .await + .unwrap(); + let entry = result.entry.unwrap(); // Read back the WAL entry - let wal_path = buffer.wal_entry_path(entry.id); + let wal_path = buffer.wal_entry_path(entry.position); let wal_data = WalEntryData::read(&store, &wal_path).await.unwrap(); // Verify the read data @@ -1352,47 +920,4 @@ mod tests { assert_eq!(wal_data.batches[0].num_rows(), 10); assert_eq!(wal_data.batches[1].num_rows(), 5); } - - #[tokio::test] - async fn test_wal_buffer_flush_limited() { - let (store, base_path, _temp_dir) = create_local_store().await; - let region_id = Uuid::new_v4(); - let mut buffer = WalBuffer::new(&base_path, region_id, 1, 1); - buffer.set_object_store(store); - - // Create a LockFreeBatchStore with 5 batches - let schema = create_test_schema(); - let batch_store = LockFreeBatchStore::with_capacity(10); - for i in 0..5 { - batch_store - .append(create_test_batch(&schema, 10), (i + 1) as u64) - .unwrap(); - let _ = buffer.track_batch(i); - } - - // Flush only 2 batches at a time - let result1 = buffer.flush_limited(&batch_store, 2, None).await.unwrap(); - let entry1 = result1.entry.unwrap(); - assert_eq!(entry1.batch_positions.len(), 2); - // Check per-memtable watermark (not global) - assert_eq!(batch_store.wal_flushed_batch_id(), 2); - - // Flush next 2 - let result2 = buffer.flush_limited(&batch_store, 2, None).await.unwrap(); - let entry2 = result2.entry.unwrap(); - assert_eq!(entry2.batch_positions.len(), 2); - // Check per-memtable watermark (not global) - assert_eq!(batch_store.wal_flushed_batch_id(), 4); - - // Flush remaining 1 - let result3 = buffer.flush_limited(&batch_store, 2, None).await.unwrap(); - let entry3 = result3.entry.unwrap(); - assert_eq!(entry3.batch_positions.len(), 1); - // Check per-memtable watermark (not global) - assert_eq!(batch_store.wal_flushed_batch_id(), 5); - - // No more pending - let result4 = buffer.flush_limited(&batch_store, 2, None).await.unwrap(); - assert!(result4.entry.is_none()); - } } diff --git a/rust/lance/src/dataset/mem_wal/write/writer.rs b/rust/lance/src/dataset/mem_wal/write/writer.rs deleted file mode 100644 index 4def64288ee..00000000000 --- a/rust/lance/src/dataset/mem_wal/write/writer.rs +++ /dev/null @@ -1,2081 +0,0 @@ -// SPDX-License-Identifier: Apache-2.0 -// SPDX-FileCopyrightText: Copyright The Lance Authors - -#![allow(clippy::print_stderr)] - -//! RegionWriter - Main write interface for MemWAL. -//! -//! The RegionWriter coordinates all write operations: -//! - Accepts record batches via `put()` -//! - Inserts into MemTable for immediate queryability -//! - Appends to WAL buffer for durability -//! - Updates indexes synchronously (if configured) -//! - Manages background tasks for WAL and MemTable flush - -use std::collections::VecDeque; -use std::sync::Arc; -use std::time::Duration; - -use arrow_array::RecordBatch; -use arrow_schema::Schema as ArrowSchema; -use async_trait::async_trait; -use lance_core::datatypes::Schema; -use lance_core::{Error, Result}; -use lance_index::mem_wal::RegionManifest; -use lance_io::object_store::ObjectStore; -use object_store::path::Path; -use snafu::location; -use tokio::sync::{mpsc, RwLock}; -use tracing::{debug, info, warn}; -use uuid::Uuid; - -use std::time::Instant; - -/// Get a timestamp for debug logging (HH:MM:SS.mmm format). -/// Uses wall clock time so all threads share the same time reference. -fn log_ts() -> String { - chrono::Local::now().format("%H:%M:%S%.3f").to_string() -} - -use super::batch_store::LockFreeBatchStore; -use super::batch_write::{ - write_batch_channel, BackpressureController, BackpressureProvider, DurabilityResult, - DurabilityWatcher, InsertBatchResult, WriteBatchHandler, WriteBatchMessage, WriteBatchSender, - WriterStateOps, WRITE_BATCH_TASK_NAME, -}; -use super::flush::{FlushMessage, FlushResult, MemTableFlusher}; -use super::indexes::{IndexRegistry, MemIndexConfig}; -use super::memtable::MemTable; -use super::stats::{new_shared_stats, SharedWriteStats, WriteStatsSnapshot}; -use super::wal::{WalBuffer, WalEntry, WalFlushMsg, WalFlushResult}; -use super::watchable_cell::WatchableOnceCell; -use crate::dataset::mem_wal::config::RegionWriterConfig; -use crate::dataset::mem_wal::dispatcher::{ - DurableWatcher, MessageFactory, MessageHandler, TaskExecutor, -}; -use crate::dataset::mem_wal::epoch::EpochGuard; -use crate::dataset::mem_wal::manifest::RegionManifestStore; - -/// Result of a write operation. -#[derive(Debug)] -pub struct WriteResult { - /// Batch ID in the MemTable. - pub batch_id: usize, - /// Watcher to await durability (if durable_write enabled). - pub durable_watcher: Option, -} - -/// RegionWriter state that can be shared across tasks. -struct WriterState { - /// Current active (mutable) memtable. - memtable: MemTable, - /// Queue of frozen memtables waiting to be flushed. - /// These are immutable (frozen) and will be flushed to Lance storage. - frozen_memtables: VecDeque>, - /// Last WAL ID that was flushed. - #[allow(dead_code)] // Will be used for WAL freeze pattern in Phase 3.1 - last_flushed_wal_id: u64, -} - -/// Shared state wrapper for WriteBatchHandler. -/// -/// This implements WriterStateOps to provide the writer task with access to: -/// - MemTable for inserts (WITHOUT index updates) -/// - WAL buffer for durability tracking (with batch data for deferred index updates) -/// - Flush triggers -/// -/// Index updates are deferred to WAL flush time, where they run in parallel with WAL I/O. -/// Shared flag to prevent duplicate memtable flush requests. -type FlushRequestedFlag = Arc; - -/// Counter for tracking how many WAL flush thresholds have been triggered. -/// This allows multiple parallel flushes - one per 10MB threshold crossing. -type WalFlushTriggerCount = Arc; - -/// Tracks the last time a WAL flush was triggered (millis since start). -type LastWalFlushTriggerTime = Arc; - -/// Reference start time for tracking flush trigger times. -fn start_time() -> std::time::Instant { - use std::sync::OnceLock; - static START: OnceLock = OnceLock::new(); - *START.get_or_init(std::time::Instant::now) -} - -/// Get current time as millis since start. -fn now_millis() -> u64 { - start_time().elapsed().as_millis() as u64 -} - -struct SharedWriterState { - state: Arc>, - wal_buffer: Arc, - wal_flush_tx: mpsc::UnboundedSender, - memtable_flush_tx: mpsc::UnboundedSender, - config: RegionWriterConfig, - /// Shared flag to track if a memtable flush request is already pending. - flush_requested: FlushRequestedFlag, - /// Counter for WAL flush threshold crossings (allows multiple parallel flushes). - wal_flush_trigger_count: WalFlushTriggerCount, - /// Last time a WAL flush was triggered (millis since start). - last_wal_flush_trigger_time: LastWalFlushTriggerTime, -} - -impl SharedWriterState { - #[allow(clippy::too_many_arguments)] - fn new( - state: Arc>, - wal_buffer: Arc, - wal_flush_tx: mpsc::UnboundedSender, - memtable_flush_tx: mpsc::UnboundedSender, - config: RegionWriterConfig, - flush_requested: FlushRequestedFlag, - wal_flush_trigger_count: WalFlushTriggerCount, - last_wal_flush_trigger_time: LastWalFlushTriggerTime, - ) -> Self { - Self { - state, - wal_buffer, - wal_flush_tx, - memtable_flush_tx, - config, - flush_requested, - wal_flush_trigger_count, - last_wal_flush_trigger_time, - } - } -} - -#[async_trait] -impl WriterStateOps for Arc { - async fn insert_batch(&self, batch: RecordBatch, seq: u64) -> Result { - let mut state = self.state.write().await; - - // Always use insert_batch_only (no index update) - // Index updates are deferred to WAL flush for parallel execution - let (batch_id, row_offset, estimated_size) = - state.memtable.insert_batch_only(batch, seq).await?; - - Ok(InsertBatchResult { - batch_id, - row_offset, - estimated_size, - }) - } - - fn track_batch_for_wal( - &self, - batch_id: usize, - _row_offset: u64, - _seq: u64, - _estimated_size: usize, - ) -> DurabilityWatcher { - // Track batch in WAL buffer for durability watcher - // Size-based flush triggers now use memtable.estimated_bytes() directly - let _wal_watcher = self.wal_buffer.track_batch(batch_id); - - // Return a pre-resolved watcher that's immediately "durable" for the non-durable case. - // For durable writes, the caller will trigger a flush and wait for it. - // This avoids spawning a task per write just to bridge watcher types. - let cell: WatchableOnceCell = WatchableOnceCell::new(); - cell.write(DurabilityResult::ok()); - cell.reader() - } - - async fn maybe_trigger_memtable_flush(&self) -> Result<()> { - // Fast path: if flush already requested, skip - if self - .flush_requested - .load(std::sync::atomic::Ordering::Acquire) - { - return Ok(()); - } - - let should_flush = { - let state = self.state.read().await; - let size_exceeded = state.memtable.estimated_size() >= self.config.max_memtable_size; - let batch_store_full = state.memtable.is_batch_store_full(); - size_exceeded || batch_store_full - }; - if should_flush { - // Atomically set flag - only send message if we win the race - if self - .flush_requested - .compare_exchange( - false, - true, - std::sync::atomic::Ordering::AcqRel, - std::sync::atomic::Ordering::Acquire, - ) - .is_ok() - { - self.memtable_flush_tx - .send(FlushMessage::FlushMemTable { done: None }) - .map_err(|_| Error::io("MemTable flush channel closed", location!()))?; - } - } - Ok(()) - } - - fn maybe_trigger_wal_flush(&self) { - let threshold = self.config.max_wal_buffer_size; - - // Get memtable stats - batch count and estimated bytes for size-based trigger - let (batch_count, total_bytes) = self - .state - .try_read() - .map(|s| (s.memtable.batch_count(), s.memtable.estimated_size())) - .unwrap_or((0, 0)); - - // Check if there are any unflushed batches - let has_pending = self.wal_buffer.has_pending_batches(batch_count); - - // Check time-based trigger first - let time_trigger = if let Some(interval) = self.config.max_flush_interval { - let interval_millis = interval.as_millis() as u64; - let last_trigger = self - .last_wal_flush_trigger_time - .load(std::sync::atomic::Ordering::Acquire); - let now = now_millis(); - - // If last_trigger is 0, this is the first write - start the timer but don't flush - if last_trigger == 0 { - let _ = self.last_wal_flush_trigger_time.compare_exchange( - 0, - now, - std::sync::atomic::Ordering::AcqRel, - std::sync::atomic::Ordering::Acquire, - ); - None - } else { - let elapsed = now.saturating_sub(last_trigger); - - if elapsed >= interval_millis && has_pending { - // Try to claim this time-based trigger - if self - .last_wal_flush_trigger_time - .compare_exchange( - last_trigger, - now, - std::sync::atomic::Ordering::AcqRel, - std::sync::atomic::Ordering::Acquire, - ) - .is_ok() - { - Some(now) - } else { - None - } - } else { - None - } - } - } else { - None - }; - - // If time trigger fired, send a flush message - if time_trigger.is_some() { - eprintln!( - "[{}][WAL_TIME_TRIGGER] total_bytes={}, interval elapsed, triggering flush to batch #{}", - log_ts(), - total_bytes, - batch_count - ); - let _ = self.wal_flush_tx.send(WalFlushMsg::TriggerWalFlush { - end_batch_id: batch_count, - done: None, - }); - // Time trigger sent, don't also send size trigger in same call - return; - } - - // Check size-based trigger - if threshold == 0 { - return; - } - - // Calculate how many thresholds have been crossed (1 at 10MB, 2 at 20MB, etc.) - let thresholds_crossed = total_bytes / threshold; - - // Try to trigger a flush for each unclaimed threshold crossing - // This allows multiple parallel flushes - one per 10MB boundary - loop { - let current_count = self - .wal_flush_trigger_count - .load(std::sync::atomic::Ordering::Acquire); - - if thresholds_crossed <= current_count { - // No new threshold crossed, nothing to trigger - break; - } - - // Try to claim the next threshold - if self - .wal_flush_trigger_count - .compare_exchange( - current_count, - current_count + 1, - std::sync::atomic::Ordering::AcqRel, - std::sync::atomic::Ordering::Acquire, - ) - .is_ok() - { - // Update last trigger time so time-based trigger doesn't fire immediately after - self.last_wal_flush_trigger_time - .store(now_millis(), std::sync::atomic::Ordering::Release); - - eprintln!( - "[{}][WAL_SIZE_TRIGGER] total_bytes={}, threshold #{} crossed ({}MB), triggering flush to batch #{}", - log_ts(), - total_bytes, - current_count + 1, - (current_count + 1) * threshold / (1024 * 1024), - batch_count - ); - // Trigger WAL flush with captured batch range - let _ = self.wal_flush_tx.send(WalFlushMsg::TriggerWalFlush { - end_batch_id: batch_count, - done: None, - }); - // Continue loop to check if more thresholds need triggering - } - // If compare_exchange failed, another thread claimed this threshold, retry - } - } -} - -#[async_trait] -impl BackpressureProvider for SharedWriterState { - fn wal_buffer_bytes(&self) -> usize { - // Return total memtable bytes as proxy for WAL buffer pressure - // This is a conservative estimate since some bytes may already be flushed - self.state - .try_read() - .ok() - .map(|s| s.memtable.estimated_size()) - .unwrap_or(0) - } - - fn immutable_memtable_bytes(&self) -> usize { - // Use try_read to avoid blocking - return 0 if lock is held - self.state - .try_read() - .ok() - .map(|s| s.frozen_memtables.iter().map(|m| m.estimated_size()).sum()) - .unwrap_or(0) - } - - fn immutable_memtable_count(&self) -> usize { - self.state - .try_read() - .ok() - .map(|s| s.frozen_memtables.len()) - .unwrap_or(0) - } - - fn remaining_batch_capacity(&self) -> usize { - self.state - .try_read() - .ok() - .map(|s| s.memtable.remaining_batch_capacity()) - .unwrap_or(0) - } - - fn batch_capacity(&self) -> usize { - self.state - .try_read() - .ok() - .map(|s| s.memtable.batch_capacity()) - .unwrap_or(0) - } - - async fn trigger_memtable_flush_and_wait(&self) { - eprintln!( - "[{}][TRIGGER] Sending FlushMemTable message and waiting for completion", - log_ts() - ); - let (tx, rx) = tokio::sync::oneshot::channel(); - let send_result = self - .memtable_flush_tx - .send(FlushMessage::FlushMemTable { done: Some(tx) }); - if send_result.is_err() { - debug!( - "[{}][TRIGGER] Failed to send FlushMemTable message", - log_ts() - ); - return; - } - // Wait for the flush to complete - match rx.await { - Ok(Ok(_)) => { - eprintln!("[{}][TRIGGER] Flush completed successfully", log_ts()); - } - Ok(Err(e)) => { - eprintln!("[{}][TRIGGER] Flush failed: {}", log_ts(), e); - } - Err(_) => { - eprintln!("[{}][TRIGGER] Flush channel closed unexpectedly", log_ts()); - } - } - } - - fn oldest_wal_watcher(&self) -> Option { - // WAL doesn't currently have per-entry watchers, return None - None - } - - fn oldest_memtable_watcher(&self) -> Option { - // Durability is guaranteed by WAL, not by memtable flush. - // Memtable flush is for query performance and WAL truncation. - None - } -} - -/// Main writer for a MemWAL region. -/// -/// Coordinates all write operations including: -/// - In-memory storage (MemTable) -/// - Durability (WAL buffer) -/// - Index maintenance (WAL-coupled: indexes updated during WAL flush) -/// - Background flush tasks -pub struct RegionWriter { - config: RegionWriterConfig, - epoch_guard: Arc, - state: Arc>, - wal_buffer: Arc, - task_executor: Arc, - #[allow(dead_code)] - object_store: Arc, - manifest_store: Arc, - flusher: Arc, - #[allow(dead_code)] - wal_flush_tx: mpsc::UnboundedSender, - memtable_flush_tx: mpsc::UnboundedSender, - schema: Arc, - pk_field_ids: Vec, - index_configs: Vec, - stats: SharedWriteStats, - write_batch_tx: WriteBatchSender, - backpressure: BackpressureController, - /// Shared flag to prevent duplicate memtable flush requests. - flush_requested: FlushRequestedFlag, - /// Counter for WAL flush threshold crossings (allows multiple parallel flushes). - wal_flush_trigger_count: WalFlushTriggerCount, - /// Last time a WAL flush was triggered (millis since start). - last_wal_flush_trigger_time: LastWalFlushTriggerTime, -} - -impl RegionWriter { - /// Open or create a RegionWriter. - /// - /// # Arguments - /// - /// * `object_store` - Object store for persistence - /// * `base_path` - Base path within the object store (from ObjectStore::from_uri) - /// * `base_uri` - Base URI (e.g., "s3://bucket/path" or "file:///path") - /// * `config` - Writer configuration - /// * `schema` - Arrow schema for data - /// * `index_configs` - Optional index configurations - /// - /// # Returns - /// - /// A new RegionWriter ready for writes. - /// - /// # Note - /// - /// The `base_path` should come from `ObjectStore::from_uri()`. When you call - /// `ObjectStore::from_uri("s3://bucket/path/to/dataset")`, it returns a store - /// rooted at the bucket level and a `base_path` of `path/to/dataset`. You must - /// pass this `base_path` to ensure WAL files are written inside the dataset directory. - pub async fn open( - object_store: Arc, - base_path: Path, - base_uri: impl Into, - config: RegionWriterConfig, - schema: Arc, - index_configs: Vec, - ) -> Result { - let base_uri = base_uri.into(); - let region_id = config.region_id; - let manifest_store = Arc::new(RegionManifestStore::new( - object_store.clone(), - &base_path, - region_id, - config.manifest_scan_batch_size, - )); - - // Claim the region (epoch-based fencing) - let (epoch_guard, manifest) = - EpochGuard::claim(manifest_store.clone(), config.region_spec_id).await?; - let epoch_guard = Arc::new(epoch_guard); - - info!( - "Opened RegionWriter for region {} (epoch {}, generation {})", - region_id, - epoch_guard.epoch(), - manifest.current_generation - ); - - // Create MemTable with primary key field IDs from schema - let lance_schema = Schema::try_from(schema.as_ref())?; - let pk_field_ids: Vec = lance_schema - .unenforced_primary_key() - .iter() - .map(|f| f.id) - .collect(); - let mut memtable = MemTable::with_capacity( - schema.clone(), - manifest.current_generation, - pk_field_ids.clone(), - super::memtable::CacheConfig::default(), - config.max_memtable_batches, - )?; - - // Create indexes if configured and set them on the MemTable - // Indexes are always created when index_configs is non-empty - // (they will be updated either sync or async based on config) - let indexes_arc = if !index_configs.is_empty() { - let indexes = Arc::new(IndexRegistry::from_configs( - &index_configs, - config.max_memtable_rows, - config.ivf_index_partition_capacity_safety_factor, - )?); - memtable.set_indexes_arc(indexes.clone()); - Some(indexes) - } else { - None - }; - - let state = Arc::new(RwLock::new(WriterState { - memtable, - frozen_memtables: VecDeque::new(), - last_flushed_wal_id: manifest.wal_id_last_seen, - })); - - // Create WAL buffer - let mut wal_buffer = WalBuffer::new( - &base_path, - region_id, - epoch_guard.epoch(), - manifest.wal_id_last_seen + 1, - ); - wal_buffer.set_object_store(object_store.clone()); - - // Create channels for background tasks - let (wal_flush_tx, wal_flush_rx) = mpsc::unbounded_channel(); - let (memtable_flush_tx, memtable_flush_rx) = mpsc::unbounded_channel(); - - wal_buffer.set_flush_channel(wal_flush_tx.clone()); - let wal_buffer = Arc::new(wal_buffer); - - // Create flusher - let flusher = Arc::new(MemTableFlusher::new( - object_store.clone(), - base_path, - base_uri, - region_id, - manifest_store.clone(), - )); - - // Create stats collector - let stats = new_shared_stats(); - - let backpressure = BackpressureController::new(config.clone()); - - // Shared flag to prevent duplicate memtable flush requests - let flush_requested: FlushRequestedFlag = - Arc::new(std::sync::atomic::AtomicBool::new(false)); - - // Counter for WAL flush threshold crossings (allows multiple parallel flushes) - let wal_flush_trigger_count: WalFlushTriggerCount = - Arc::new(std::sync::atomic::AtomicUsize::new(0)); - - // Last time a WAL flush was triggered (for time-based flush) - // Initialize to 0 - timer starts on first write, not writer creation - let last_wal_flush_trigger_time: LastWalFlushTriggerTime = - Arc::new(std::sync::atomic::AtomicU64::new(0)); - - // Create task executor - let task_executor = Arc::new(TaskExecutor::new()); - - // Start background WAL flush handler - // The WAL flush handler does parallel WAL I/O + index updates - eprintln!( - "[{}][WRITER] Creating wal_flusher with flush_interval={:?}", - log_ts(), - config.max_flush_interval - ); - let wal_handler = WalFlushHandler::new( - wal_buffer.clone(), - state.clone(), - indexes_arc.clone(), // Pass indexes for WAL-coupled updates - config.max_memtable_size, - memtable_flush_tx.clone(), - stats.clone(), - backpressure.stats().clone(), - ); - task_executor.add_handler( - "wal_flusher".to_string(), - Box::new(wal_handler), - wal_flush_rx, - )?; - - // Start background MemTable flush handler - let memtable_handler = MemTableFlushHandler::new( - state.clone(), - flusher.clone(), - epoch_guard.clone(), - wal_buffer.clone(), - indexes_arc, // Pass indexes for WAL flush during memtable freeze - config.max_memtable_size, - config.max_memtable_rows, - config.max_memtable_batches, - config.ivf_index_partition_capacity_safety_factor, - schema.clone(), - pk_field_ids.clone(), - index_configs.clone(), - stats.clone(), - flush_requested.clone(), // Share flag with writer - ); - eprintln!("[{}][WRITER] Adding memtable_flusher handler", log_ts()); - task_executor.add_handler( - "memtable_flusher".to_string(), - Box::new(memtable_handler), - memtable_flush_rx, - )?; - eprintln!("[{}][WRITER] memtable_flusher handler added", log_ts()); - - let (write_batch_tx, write_batch_rx) = write_batch_channel(); - - // Create shared writer state for the handler - let shared_writer_state = Arc::new(SharedWriterState::new( - state.clone(), - wal_buffer.clone(), - wal_flush_tx.clone(), - memtable_flush_tx.clone(), - config.clone(), - flush_requested.clone(), // Share flag with flush handler - wal_flush_trigger_count.clone(), - last_wal_flush_trigger_time.clone(), - )); - - // Start the single writer task - let write_handler = WriteBatchHandler::new(shared_writer_state, stats.clone()); - task_executor.add_handler( - WRITE_BATCH_TASK_NAME.to_string(), - Box::new(write_handler), - write_batch_rx, - )?; - - Ok(Self { - config, - epoch_guard, - state, - wal_buffer, - task_executor, - object_store, - manifest_store, - flusher, - wal_flush_tx, - memtable_flush_tx, - schema, - pk_field_ids, - index_configs, - stats, - write_batch_tx, - backpressure, - flush_requested, - wal_flush_trigger_count, - last_wal_flush_trigger_time, - }) - } - - /// Write a record batch to the region. - /// - /// # Arguments - /// - /// * `batch` - The record batch to write - /// - /// # Returns - /// - /// A WriteResult with fragment ID and optional durability watcher. - /// - /// # Note - /// - /// Fencing is detected lazily during WAL flush via atomic writes. - /// If another writer has taken over, the WAL flush will fail with - /// `AlreadyExists`, indicating this writer has been fenced. - pub async fn put(&self, batch: RecordBatch) -> Result { - static PUT_COUNT: std::sync::atomic::AtomicU64 = std::sync::atomic::AtomicU64::new(0); - let count = PUT_COUNT.fetch_add(1, std::sync::atomic::Ordering::Relaxed); - if count % 100 == 0 { - eprintln!("[{}][PUT] put #{}", log_ts(), count); - } - - let num_rows = batch.num_rows(); - if num_rows == 0 { - return Err(Error::invalid_input( - "Cannot write empty batch", - location!(), - )); - } - - // Apply backpressure if needed - let shared_state = SharedWriterState::new( - self.state.clone(), - self.wal_buffer.clone(), - self.wal_flush_tx.clone(), - self.memtable_flush_tx.clone(), - self.config.clone(), - self.flush_requested.clone(), - self.wal_flush_trigger_count.clone(), - self.last_wal_flush_trigger_time.clone(), - ); - let bp_start = std::time::Instant::now(); - self.backpressure - .maybe_apply_backpressure(&shared_state) - .await?; - let bp_elapsed = bp_start.elapsed(); - if bp_elapsed.as_millis() > 1 { - debug!( - "[{}][BP] waited {}ms | remaining_batches={} total_batches={}", - log_ts(), - bp_elapsed.as_millis(), - shared_state.remaining_batch_capacity(), - shared_state.batch_capacity() - ); - } - - let (tx, rx) = tokio::sync::oneshot::channel(); - let message = WriteBatchMessage { batch, done: tx }; - - self.write_batch_tx - .send(message) - .map_err(|_| Error::io("Write batch channel closed", location!()))?; - - // Wait for result from writer task - let result = rx - .await - .map_err(|_| Error::io("Write batch result channel closed", location!()))??; - - debug!( - "Wrote {} rows to region {} (batch_id={}, seq={})", - num_rows, self.config.region_id, result.batch_id, result.seq - ); - - // 4. Wait for durability if configured - let durable_watcher = if self.config.durable_write { - // Must trigger a flush to ensure durability (flush up to and including this batch) - self.wal_buffer.trigger_flush(result.batch_id + 1, None)?; - result - .durable_watcher - .clone() - .await_value() - .await - .into_result()?; - None - } else { - // Stats recording is now done in WriteBatchHandler - None - }; - - Ok(WriteResult { - batch_id: result.batch_id, - durable_watcher, - }) - } - - /// Get a snapshot of current write statistics. - pub fn stats(&self) -> WriteStatsSnapshot { - self.stats.snapshot() - } - - /// Get the shared stats handle (for external monitoring). - pub fn stats_handle(&self) -> SharedWriteStats { - self.stats.clone() - } - - /// Trigger a WAL flush. - /// - /// Blocks until the flush completes. - /// - /// # Note - /// - /// Fencing is detected via atomic WAL writes. If another writer has - /// already written this WAL entry, returns an error. - pub async fn flush_wal(&self) -> Result> { - let state = self.state.read().await; - self.wal_buffer.flush(&state.memtable.batch_store()).await - } - - /// Trigger a MemTable flush. - /// - /// Freezes current memtable, adds to immutable queue, creates new memtable, - /// and flushes the oldest immutable memtable. - pub async fn flush_memtable(&self) -> Result { - self.epoch_guard.check_fenced().await?; - - let start = Instant::now(); - let next_generation; - - // Freeze current memtable and add to queue - // WAL flush (with parallel index updates) happens during this process - let last_wal_id = { - let mut state = self.state.write().await; - - // Get current indexes for WAL flush - let indexes = state.memtable.indexes_arc(); - - // Flush WAL with parallel index update while holding the lock - let wal_id = if let Some(result) = self - .wal_buffer - .flush_with_index_update(&state.memtable.batch_store(), indexes) - .await? - .entry - { - let batch_ids: Vec = - result.batch_positions.iter().map(|(id, _)| *id).collect(); - let positions: Vec = - result.batch_positions.iter().map(|(_, pos)| *pos).collect(); - state - .memtable - .mark_wal_flushed(&batch_ids, result.id, &positions); - result.id - } else { - state.last_flushed_wal_id - }; - - // Create new memtable - next_generation = state.memtable.generation() + 1; - let mut new_memtable = MemTable::with_capacity( - self.schema.clone(), - next_generation, - self.pk_field_ids.clone(), - super::memtable::CacheConfig::default(), - self.config.max_memtable_batches, - )?; - - // Recreate indexes on the new memtable if configured - if !self.index_configs.is_empty() { - let indexes = Arc::new(IndexRegistry::from_configs( - &self.index_configs, - self.config.max_memtable_rows, - self.config.ivf_index_partition_capacity_safety_factor, - )?); - new_memtable.set_indexes_arc(indexes); - } - - // Swap memtables and freeze the old one - let mut old_memtable = std::mem::replace(&mut state.memtable, new_memtable); - - // Mark the old memtable as frozen with the WAL ID - old_memtable.freeze(wal_id); - - // Add to the frozen queue - state.frozen_memtables.push_back(Arc::new(old_memtable)); - state.last_flushed_wal_id = wal_id; - - // Note: No need to reset WAL watermarks - each memtable tracks its own - // watermark in its batch_store. The new memtable starts with watermark=0. - - wal_id - }; - - debug!( - "Frozen memtable generation {}, last_wal_id={}", - next_generation - 1, - last_wal_id - ); - - // Flush from queue - let frozen = { - let mut state = self.state.write().await; - state.frozen_memtables.pop_front() - }; - - let Some(frozen) = frozen else { - return Err(Error::Internal { - message: "No frozen memtable to flush after freeze".to_string(), - location: location!(), - }); - }; - - let result = self.flusher.flush(&frozen, &self.epoch_guard).await?; - - // Note: Durability is guaranteed by WAL, not by this flush. - // This flush is for query performance and WAL truncation. - - info!( - "Flushed memtable generation {}, created new generation {} ({} rows, {} fragments in {:?})", - result.generation.generation, - next_generation, - result.rows_flushed, - result.fragments_created, - start.elapsed() - ); - - Ok(result) - } - - /// Check if MemTable flush should be triggered based on size, partition capacity, or batch count. - #[allow(dead_code)] // Flush is now triggered by WriteBatchHandler - async fn maybe_trigger_memtable_flush(&self) -> Result<()> { - let should_flush = { - let state = self.state.read().await; - let size_exceeded = state.memtable.estimated_size() >= self.config.max_memtable_size; - let batch_store_full = state.memtable.is_batch_store_full(); - size_exceeded || batch_store_full - }; - if should_flush { - self.memtable_flush_tx - .send(FlushMessage::FlushMemTable { done: None }) - .map_err(|_| Error::io("MemTable flush channel closed", location!()))?; - } - Ok(()) - } - - /// Get the current region manifest. - pub async fn manifest(&self) -> Result> { - self.manifest_store.read_latest().await - } - - /// Get the writer's epoch. - pub fn epoch(&self) -> u64 { - self.epoch_guard.epoch() - } - - /// Get the region ID. - pub fn region_id(&self) -> Uuid { - self.config.region_id - } - - /// Get current MemTable statistics. - pub async fn memtable_stats(&self) -> MemTableStats { - let state = self.state.read().await; - MemTableStats { - row_count: state.memtable.row_count(), - batch_count: state.memtable.batch_count(), - estimated_size: state.memtable.estimated_size(), - generation: state.memtable.generation(), - } - } - - /// Get WAL buffer statistics. - pub fn wal_stats(&self) -> WalStats { - WalStats { - last_flushed_id: self.wal_buffer.last_flushed_id(), - next_wal_id: self.wal_buffer.next_wal_id(), - } - } - - /// Close the writer gracefully. - /// - /// Flushes pending data and shuts down background tasks. - pub async fn close(self) -> Result<()> { - info!("Closing RegionWriter for region {}", self.config.region_id); - - // Flush WAL using watermark-based approach - let state = self.state.read().await; - if let Err(e) = self.wal_buffer.flush(&state.memtable.batch_store()).await { - warn!("Error flushing WAL during close: {}", e); - } - drop(state); - - // Shutdown background tasks - self.task_executor.shutdown_all().await?; - - info!("RegionWriter closed for region {}", self.config.region_id); - Ok(()) - } -} - -/// MemTable statistics. -#[derive(Debug, Clone)] -pub struct MemTableStats { - pub row_count: usize, - pub batch_count: usize, - pub estimated_size: usize, - pub generation: u64, -} - -/// WAL buffer statistics. -#[derive(Debug, Clone)] -pub struct WalStats { - pub last_flushed_id: usize, - pub next_wal_id: u64, -} - -/// Background handler for WAL flush operations. -/// -/// This handler does parallel WAL I/O + index updates during flush. -struct WalFlushHandler { - wal_buffer: Arc, - state: Arc>, - /// Indexes for WAL-coupled updates (updated in parallel with WAL I/O). - indexes: Option>, - #[allow(dead_code)] - max_memtable_size: usize, - memtable_flush_tx: mpsc::UnboundedSender, - stats: SharedWriteStats, - backpressure_stats: Arc, - /// Counter for periodic stats logging (log every N ticks). - #[allow(dead_code)] - tick_count: u64, - /// Log stats every this many ticks. - #[allow(dead_code)] - stats_log_interval_ticks: u64, -} - -impl WalFlushHandler { - #[allow(clippy::too_many_arguments)] - fn new( - wal_buffer: Arc, - state: Arc>, - indexes: Option>, - max_memtable_size: usize, - memtable_flush_tx: mpsc::UnboundedSender, - stats: SharedWriteStats, - backpressure_stats: Arc, - ) -> Self { - Self { - wal_buffer, - state, - indexes, - max_memtable_size, - memtable_flush_tx, - stats, - backpressure_stats, - tick_count: 0, - stats_log_interval_ticks: 0, - } - } -} - -#[async_trait] -impl MessageHandler for WalFlushHandler { - // No tickers - time-based flush is now checked in maybe_trigger_wal_flush() - // This eliminates the priority conflict between Tick and TriggerWalFlush messages - - async fn handle(&mut self, message: WalFlushMsg) -> Result<()> { - match message { - WalFlushMsg::TriggerWalFlush { end_batch_id, done } => { - eprintln!( - "[{}][WAL_FLUSH_HANDLER] Received TriggerWalFlush for batch #{}, starting flush", - log_ts(), - end_batch_id - ); - let result = self.do_flush_to(end_batch_id).await; - if let Some(tx) = done { - let _ = tx.send(result.map(|entry| entry.map(|e| e.id).unwrap_or(0))); - } - } - WalFlushMsg::FlushFrozenMemTable { - batch_store, - indexes, - done, - } => { - // Flush all remaining WAL batches for a frozen memtable. - // This message is sent at freeze time to ensure strict ordering: - // all WAL entries for the old memtable are flushed before any - // WAL entries for the new memtable. - let pending_count = batch_store.pending_wal_flush_count(); - eprintln!( - "[{}][WAL_FLUSH_HANDLER] Received FlushFrozenMemTable with {} pending batches", - log_ts(), - pending_count - ); - - let result = self.do_flush_frozen_memtable(&batch_store, indexes).await; - // Convert Result to Result - // since lance_core::Error doesn't implement Clone - done.write(result.map_err(|e| e.to_string())); - } - WalFlushMsg::Tick => { - // Tick is deprecated - time-based flush is now handled in maybe_trigger_wal_flush() - // This code path should not be hit in normal operation - debug!( - "[{}][WAL_TICK] DEPRECATED: Tick message received, this should not happen", - log_ts() - ); - - // Periodic stats logging (if enabled) - if self.stats_log_interval_ticks > 0 { - self.tick_count += 1; - if self.tick_count % self.stats_log_interval_ticks == 0 { - self.log_periodic_stats().await; - } - } - } - } - Ok(()) - } -} - -impl WalFlushHandler { - /// Log periodic stats including write throughput and backpressure hits. - async fn log_periodic_stats(&self) { - let write_stats = self.stats.snapshot(); - let bp_stats = self.backpressure_stats.snapshot(); - - // Get memtable info for context - let (memtable_rows, memtable_batches, memtable_size_mb) = { - if let Ok(state) = self.state.try_read() { - ( - state.memtable.row_count(), - state.memtable.batch_count(), - state.memtable.estimated_size() as f64 / (1024.0 * 1024.0), - ) - } else { - (0, 0, 0.0) - } - }; - - // Log write stats - info!( - puts = write_stats.put_count, - put_throughput = format!("{:.0}/s", write_stats.put_throughput()), - avg_put_latency_us = write_stats - .avg_put_latency() - .map(|d| d.as_micros()) - .unwrap_or(0), - wal_flushes = write_stats.wal_flush_count, - memtable_flushes = write_stats.memtable_flush_count, - memtable_rows = memtable_rows, - memtable_batches = memtable_batches, - memtable_size_mb = format!("{:.2}", memtable_size_mb), - "Periodic write stats" - ); - - // Log backpressure stats if any occurred - if bp_stats.total_count > 0 { - info!( - total_backpressure_events = bp_stats.total_count, - total_wait_ms = bp_stats.total_wait_ms, - unflushed_bytes_events = bp_stats.unflushed_bytes_count, - immutable_memtables_events = bp_stats.immutable_memtables_count, - "Periodic backpressure stats" - ); - } - } - - #[allow(dead_code)] - async fn do_flush(&self) -> Result> { - let start = Instant::now(); - - // Get the batch_store from memtable - this is lock-free read - let batch_store = { - let state = self.state.read().await; - state.memtable.batch_store() - }; - - let last_flushed = self.wal_buffer.last_flushed_id(); - let current_count = batch_store.len(); - let pending_count = current_count.saturating_sub(last_flushed); - - if pending_count == 0 { - return Ok(None); - } - - debug!( - "[{}] [WAL_FLUSH] Starting: {} pending batches (IDs {}..{})", - log_ts(), - pending_count, - last_flushed, - current_count - ); - - // Flush all pending batches at once - let s3_start = Instant::now(); - let flush_result = self - .wal_buffer - .flush_with_index_update(&batch_store, self.indexes.clone()) - .await?; - let s3_elapsed = s3_start.elapsed(); - let batches_flushed = flush_result - .entry - .as_ref() - .map(|e| e.batch_positions.len()) - .unwrap_or(0); - debug!( - "[{}][WAL_FLUSH] S3 I/O complete: {}ms for {} batches ({} bytes)", - log_ts(), - s3_elapsed.as_millis(), - batches_flushed, - flush_result.wal_bytes - ); - - // Update MemTable with WAL mapping - if let Some(ref entry) = flush_result.entry { - let mut state = self.state.write().await; - let batch_ids: Vec = entry.batch_positions.iter().map(|(id, _)| *id).collect(); - let positions: Vec = entry.batch_positions.iter().map(|(_, pos)| *pos).collect(); - state - .memtable - .mark_wal_flushed(&batch_ids, entry.id, &positions); - } - - // Record WAL flush stats (total time) - if batches_flushed > 0 { - self.stats - .record_wal_flush(start.elapsed(), flush_result.wal_bytes, batches_flushed); - - // Record sub-component stats for bottleneck diagnosis - self.stats.record_wal_io(flush_result.wal_io_duration); - self.stats.record_index_update( - flush_result.index_update_duration, - flush_result.rows_indexed, - ); - } - - debug!( - "[{}][WAL_FLUSH] Complete: total={}ms, {} batches flushed", - log_ts(), - start.elapsed().as_millis(), - batches_flushed - ); - - self.maybe_trigger_memtable_flush().await; - - Ok(flush_result.entry) - } - - /// Flush batches up to a specific end_batch_id. - /// - /// This method flushes batches in range [last_flushed_id, end_batch_id), - /// ensuring each trigger handles only the batches that existed at trigger time. - async fn do_flush_to(&self, end_batch_id: usize) -> Result> { - let start = Instant::now(); - - // Get the batch_store from memtable - let batch_store = { - let state = self.state.read().await; - state.memtable.batch_store() - }; - - let last_flushed = self.wal_buffer.last_flushed_id(); - - // If we've already flushed past this end, nothing to do - if last_flushed >= end_batch_id { - eprintln!( - "[{}][WAL_FLUSH_HANDLER] Skipping flush to batch #{} - already at #{}", - log_ts(), - end_batch_id, - last_flushed - ); - return Ok(None); - } - - // Flush up to the specified end_batch_id - let flush_result = self - .wal_buffer - .flush_to_with_index_update(&batch_store, end_batch_id, self.indexes.clone()) - .await?; - - let batches_flushed = flush_result - .entry - .as_ref() - .map(|e| e.batch_positions.len()) - .unwrap_or(0); - - // Update MemTable with WAL mapping - if let Some(ref entry) = flush_result.entry { - let mut state = self.state.write().await; - let batch_ids: Vec = entry.batch_positions.iter().map(|(id, _)| *id).collect(); - let positions: Vec = entry.batch_positions.iter().map(|(_, pos)| *pos).collect(); - state - .memtable - .mark_wal_flushed(&batch_ids, entry.id, &positions); - } - - // Record WAL flush stats - if batches_flushed > 0 { - self.stats - .record_wal_flush(start.elapsed(), flush_result.wal_bytes, batches_flushed); - self.stats.record_wal_io(flush_result.wal_io_duration); - self.stats.record_index_update( - flush_result.index_update_duration, - flush_result.rows_indexed, - ); - } - - self.maybe_trigger_memtable_flush().await; - - Ok(flush_result.entry) - } - - async fn maybe_trigger_memtable_flush(&self) { - let should_flush = { - let state = self.state.read().await; - let size_exceeded = state.memtable.estimated_size() >= self.max_memtable_size; - let batch_store_full = state.memtable.is_batch_store_full(); - (size_exceeded || batch_store_full) && state.memtable.all_flushed_to_wal() - }; - if should_flush { - let _ = self.memtable_flush_tx.send(FlushMessage::Tick); - } - } - - /// Flush all remaining WAL batches for a frozen memtable. - /// - /// This method is called when processing `FlushFrozenMemTable` messages, - /// which are sent at freeze time to ensure strict ordering of WAL entries. - async fn do_flush_frozen_memtable( - &self, - batch_store: &LockFreeBatchStore, - indexes: Option>, - ) -> Result { - let start = Instant::now(); - - // Flush all pending batches for this frozen memtable - let flush_result = self - .wal_buffer - .flush_with_index_update(batch_store, indexes) - .await?; - - let batches_flushed = flush_result - .entry - .as_ref() - .map(|e| e.batch_positions.len()) - .unwrap_or(0); - - // Record WAL flush stats - if batches_flushed > 0 { - self.stats - .record_wal_flush(start.elapsed(), flush_result.wal_bytes, batches_flushed); - self.stats.record_wal_io(flush_result.wal_io_duration); - self.stats.record_index_update( - flush_result.index_update_duration, - flush_result.rows_indexed, - ); - } - - eprintln!( - "[{}][WAL_FLUSH_HANDLER] FlushFrozenMemTable complete: {} batches, {}ms (S3={}ms, index={:?})", - log_ts(), - batches_flushed, - start.elapsed().as_millis(), - flush_result.wal_io_duration.as_millis(), - flush_result.index_update_duration_breakdown - ); - - Ok(flush_result) - } -} - -/// Background handler for MemTable flush operations. -struct MemTableFlushHandler { - state: Arc>, - flusher: Arc, - epoch_guard: Arc, - wal_buffer: Arc, - /// Current indexes for WAL-coupled updates during memtable freeze. - indexes: Option>, - max_memtable_size: usize, - /// Maximum rows for index pre-allocation. - max_memtable_rows: usize, - /// Maximum batches for batch store pre-allocation. - max_memtable_batches: usize, - /// Safety factor for partition capacity. - ivf_index_partition_capacity_safety_factor: usize, - /// Schema for creating new memtables after flush. - schema: Arc, - /// Primary key field IDs for creating new memtables. - pk_field_ids: Vec, - /// Index configs for recreating indexes on new memtables. - index_configs: Vec, - /// Write statistics collector. - stats: SharedWriteStats, - /// Shared flag to clear when flush completes. - flush_requested: FlushRequestedFlag, -} - -impl MemTableFlushHandler { - #[allow(clippy::too_many_arguments)] - fn new( - state: Arc>, - flusher: Arc, - epoch_guard: Arc, - wal_buffer: Arc, - indexes: Option>, - max_memtable_size: usize, - max_memtable_rows: usize, - max_memtable_batches: usize, - ivf_index_partition_capacity_safety_factor: usize, - schema: Arc, - pk_field_ids: Vec, - index_configs: Vec, - stats: SharedWriteStats, - flush_requested: FlushRequestedFlag, - ) -> Self { - Self { - state, - flusher, - epoch_guard, - wal_buffer, - indexes, - max_memtable_size, - max_memtable_rows, - max_memtable_batches, - ivf_index_partition_capacity_safety_factor, - schema, - pk_field_ids, - index_configs, - stats, - flush_requested, - } - } -} - -#[async_trait] -impl MessageHandler for MemTableFlushHandler { - fn tickers(&mut self) -> Vec<(Duration, MessageFactory)> { - // No tickers - memtable flush is triggered by WalFlushHandler during WAL flush ticks - vec![] - } - - async fn handle(&mut self, message: FlushMessage) -> Result<()> { - match message { - FlushMessage::FlushMemTable { done } => { - let state = self.state.read().await; - let remaining = state.memtable.remaining_batch_capacity(); - let batch_count = state.memtable.batch_count(); - let last_flushed = self.wal_buffer.last_flushed_id(); - drop(state); - eprintln!( - "[{}][FLUSH_HANDLER] Received FlushMemTable: batches={}, remaining={}, pending_batches={}", - log_ts(), batch_count, remaining, batch_count.saturating_sub(last_flushed) - ); - let result = self.do_flush().await; - if let Some(tx) = done { - let _ = tx.send(result); - } - } - FlushMessage::Tick => { - // Tick is sent by WalFlushHandler when memtable triggers are reached - let should_flush = { - let state = self.state.read().await; - let size_exceeded = state.memtable.estimated_size() >= self.max_memtable_size; - let batch_store_full = state.memtable.is_batch_store_full(); - let remaining = state.memtable.remaining_batch_capacity(); - let all_flushed = state.memtable.all_flushed_to_wal(); - debug!( - "[{}][FLUSH_HANDLER] Tick: size_exceeded={} batch_store_full={} remaining={} all_flushed={}", - log_ts(), size_exceeded, batch_store_full, remaining, all_flushed - ); - (size_exceeded || batch_store_full) && all_flushed - }; - if should_flush { - eprintln!("[{}][FLUSH_HANDLER] Tick triggering flush", log_ts()); - let _ = self.do_flush().await; - } - } - } - Ok(()) - } -} - -impl MemTableFlushHandler { - /// Freeze the current memtable and add it to the immutable queue. - /// - /// This method is designed to be instant (sub-millisecond): - /// 1. Acquire write lock and swap memtables - /// 2. Send WAL flush request for the frozen memtable (ensures ordering) - /// 3. Lance flush happens in flush_oldest_immutable after WAL is complete - /// - /// The WAL flush request is sent at freeze time to ensure strict ordering: - /// all WAL entries for this memtable are flushed before any WAL entries - /// for the new memtable. This guarantees WAL entries are ordered by write time. - /// - /// This allows writes to continue immediately on the new memtable - /// while background processing handles WAL and Lance flushes. - async fn freeze_memtable(&mut self) -> Result { - let freeze_start = std::time::Instant::now(); - eprintln!("[{}][FREEZE] Starting freeze_memtable", log_ts()); - - // Acquire write lock for the memtable swap - let mut state = self.state.write().await; - - // Get pending WAL flush info from the memtable's own batch_store - let pending_wal_range = state.memtable.batch_store().pending_wal_flush_range(); - - let last_wal_id = state.last_flushed_wal_id; - let old_batch_count = - state.memtable.batch_capacity() - state.memtable.remaining_batch_capacity(); - - eprintln!( - "[{}][FREEZE] Swapping memtable: old had {} batches, pending_wal_range={:?}", - log_ts(), - old_batch_count, - pending_wal_range - ); - - // Capture batch_store and indexes from old memtable BEFORE swap - let old_batch_store = state.memtable.batch_store(); - let old_indexes = state.memtable.indexes_arc(); - - // Create a new empty memtable with the next generation - let next_generation = state.memtable.generation() + 1; - let mut new_memtable = MemTable::with_capacity( - self.schema.clone(), - next_generation, - self.pk_field_ids.clone(), - super::memtable::CacheConfig::default(), - self.max_memtable_batches, - )?; - - // Recreate indexes on the new memtable - let new_indexes = if !self.index_configs.is_empty() { - let indexes = Arc::new(IndexRegistry::from_configs( - &self.index_configs, - self.max_memtable_rows, - self.ivf_index_partition_capacity_safety_factor, - )?); - new_memtable.set_indexes_arc(indexes.clone()); - Some(indexes) - } else { - None - }; - - // Update our indexes reference for future WAL flushes on new memtable - self.indexes = new_indexes; - - // Swap memtables and freeze the old one - let mut old_memtable = std::mem::replace(&mut state.memtable, new_memtable); - - // Mark the old memtable as frozen with the WAL ID - old_memtable.freeze(last_wal_id); - - // Create WAL flush completion cell if there are pending batches - if pending_wal_range.is_some() { - let completion_cell: WatchableOnceCell> = - WatchableOnceCell::new(); - let completion_reader = completion_cell.reader(); - - // Store the reader in the old memtable so flush_oldest_immutable can await it - old_memtable.set_wal_flush_completion(completion_reader); - - // Send WAL flush request for this frozen memtable. - // This goes into the WAL flush queue BEFORE any new writes to the new memtable, - // ensuring strict write-time ordering of WAL entries. - eprintln!( - "[{}][FREEZE] Sending FlushFrozenMemTable to WAL handler queue", - log_ts() - ); - self.wal_buffer.trigger_frozen_memtable_flush( - old_batch_store, - old_indexes, - completion_cell, - )?; - } - - // Add to the frozen queue as Arc - state.frozen_memtables.push_back(Arc::new(old_memtable)); - state.last_flushed_wal_id = last_wal_id; - - // Note: No need to reset WAL watermarks - each memtable tracks its own - // watermark in its batch_store. The new memtable starts with watermark=0. - - debug!( - "Frozen memtable generation {}, queue size = {}", - next_generation - 1, - state.frozen_memtables.len() - ); - - eprintln!( - "[{}][FREEZE] Complete: gen={} frozen_queue={} new_capacity={} took={}ms", - log_ts(), - next_generation - 1, - state.frozen_memtables.len(), - state.memtable.remaining_batch_capacity(), - freeze_start.elapsed().as_millis() - ); - - Ok(next_generation) - } - - /// Flush the oldest frozen memtable from the queue. - /// - /// This method waits for the WAL flush to complete (sent at freeze time), - /// then flushes to Lance storage. The WAL flush is already queued by - /// freeze_memtable to ensure strict ordering of WAL entries. - async fn flush_oldest_immutable(&mut self) -> Result> { - let start = Instant::now(); - eprintln!( - "[{}][LANCE_FLUSH] Starting flush_oldest_immutable", - log_ts() - ); - - // Pop the oldest frozen memtable from the queue - let frozen = { - let mut state = self.state.write().await; - state.frozen_memtables.pop_front() - }; - - let Some(frozen) = frozen else { - eprintln!("[{}][LANCE_FLUSH] No frozen memtable in queue", log_ts()); - return Ok(None); - }; - - eprintln!( - "[{}][LANCE_FLUSH] Frozen memtable: {} rows, {} batches, has_pending_wal={}", - log_ts(), - frozen.row_count(), - frozen.batch_count(), - frozen.has_pending_wal_flush() - ); - - // Step 1: Wait for WAL flush completion (already queued at freeze time) - // The FlushFrozenMemTable message was sent by freeze_memtable to ensure - // strict ordering of WAL entries. - if let Some(mut completion_reader) = frozen.take_wal_flush_completion() { - let wal_start = std::time::Instant::now(); - eprintln!( - "[{}][LANCE_FLUSH] Awaiting WAL flush completion...", - log_ts() - ); - let wal_result = completion_reader - .await_value() - .await - .map_err(|e| Error::io(format!("WAL flush failed: {}", e), snafu::location!()))?; - eprintln!( - "[{}][LANCE_FLUSH] WAL flush completed in {}ms (S3={}ms, index={:?}, {} rows)", - log_ts(), - wal_start.elapsed().as_millis(), - wal_result.wal_io_duration.as_millis(), - wal_result.index_update_duration_breakdown, - wal_result.rows_indexed - ); - } else { - eprintln!( - "[{}][LANCE_FLUSH] No pending WAL flush to wait for", - log_ts() - ); - } - - // Step 2: Flush the memtable to Lance storage - let flusher_start = std::time::Instant::now(); - let result = self.flusher.flush(&frozen, &self.epoch_guard).await?; - eprintln!( - "[{}][LANCE_FLUSH] flusher.flush() took {}ms", - log_ts(), - flusher_start.elapsed().as_millis() - ); - - // Record stats - self.stats.record_memtable_flush( - start.elapsed(), - result.rows_flushed, - result.fragments_created, - ); - - // Note: Durability is guaranteed by WAL, not by this flush. - // This flush is for query performance and WAL truncation. - - info!( - "Flushed frozen memtable generation {} ({} rows, {} fragments in {:?})", - result.generation.generation, - result.rows_flushed, - result.fragments_created, - start.elapsed() - ); - - Ok(Some(result)) - } - - async fn do_flush(&mut self) -> Result { - // Check if memtable has data before flushing - // This prevents spurious flushes from queued messages - let batch_count = { - let state = self.state.read().await; - state.memtable.batch_count() - }; - - if batch_count == 0 { - debug!( - "[{}][MEMTABLE_FLUSH] Skipping flush - no data (batches=0)", - log_ts() - ); - // Return a dummy result - no actual flush needed - return Ok(FlushResult { - generation: lance_index::mem_wal::FlushedGeneration { - generation: 0, - path: String::new(), - }, - rows_flushed: 0, - fragments_created: 0, - covered_wal_id: 0, - }); - } - - debug!( - "[{}][MEMTABLE_FLUSH] Starting do_flush: {} batches", - log_ts(), - batch_count - ); - let flush_start = std::time::Instant::now(); - - // Step 1: Freeze current memtable and add to queue - let freeze_start = std::time::Instant::now(); - let _next_generation = self.freeze_memtable().await?; - debug!( - "[{}][MEMTABLE_FLUSH] freeze_memtable took {}ms", - log_ts(), - freeze_start.elapsed().as_millis() - ); - - // Step 2: Flush from queue - let lance_start = std::time::Instant::now(); - let result = match self.flush_oldest_immutable().await? { - Some(result) => { - debug!( - "[{}][MEMTABLE_FLUSH] flush_oldest_immutable (Lance format) took {}ms, {} rows, {} fragments", - log_ts(), lance_start.elapsed().as_millis(), - result.rows_flushed, - result.fragments_created - ); - Ok(result) - } - None => Err(Error::Internal { - message: "No immutable memtable to flush after freeze".to_string(), - location: location!(), - }), - }; - - debug!( - "[{}][MEMTABLE_FLUSH] do_flush complete: {}ms (freeze={}ms, lance={}ms)", - log_ts(), - flush_start.elapsed().as_millis(), - freeze_start.elapsed().as_millis(), - lance_start.elapsed().as_millis() - ); - - // Clear the flush_requested flag so new flush requests can be made - self.flush_requested - .store(false, std::sync::atomic::Ordering::Release); - - result - } -} - -#[cfg(test)] -mod tests { - use super::*; - use arrow_array::{Int32Array, StringArray}; - use arrow_schema::{DataType, Field}; - use tempfile::TempDir; - - async fn create_local_store() -> (Arc, Path, String, TempDir) { - let temp_dir = tempfile::tempdir().unwrap(); - let uri = format!("file://{}", temp_dir.path().display()); - let (store, path) = ObjectStore::from_uri(&uri).await.unwrap(); - (store, path, uri, temp_dir) - } - - fn create_test_schema() -> Arc { - Arc::new(ArrowSchema::new(vec![ - Field::new("id", DataType::Int32, false), - Field::new("name", DataType::Utf8, true), - ])) - } - - fn create_test_batch(schema: &ArrowSchema, start_id: i32, num_rows: usize) -> RecordBatch { - RecordBatch::try_new( - Arc::new(schema.clone()), - vec![ - Arc::new(Int32Array::from_iter_values( - start_id..start_id + num_rows as i32, - )), - Arc::new(StringArray::from_iter_values( - (0..num_rows).map(|i| format!("name_{}", start_id as usize + i)), - )), - ], - ) - .unwrap() - } - - #[tokio::test] - async fn test_region_writer_basic_write() { - let (store, base_path, base_uri, _temp_dir) = create_local_store().await; - let schema = create_test_schema(); - - let config = RegionWriterConfig { - region_id: Uuid::new_v4(), - region_spec_id: 0, - durable_write: false, - sync_indexed_write: false, - max_wal_buffer_size: 1024 * 1024, - max_flush_interval: None, - max_memtable_size: 64 * 1024 * 1024, - manifest_scan_batch_size: 2, - ..Default::default() - }; - - let writer = RegionWriter::open( - store, - base_path, - base_uri, - config.clone(), - schema.clone(), - vec![], - ) - .await - .unwrap(); - - // Write a batch - let batch = create_test_batch(&schema, 0, 10); - let result = writer.put(batch).await.unwrap(); - - assert_eq!(result.batch_id, 0); - - // Check stats - let stats = writer.memtable_stats().await; - assert_eq!(stats.row_count, 10); - assert_eq!(stats.batch_count, 1); - - // Close writer - writer.close().await.unwrap(); - } - - #[tokio::test] - async fn test_region_writer_multiple_writes() { - let (store, base_path, base_uri, _temp_dir) = create_local_store().await; - let schema = create_test_schema(); - - let config = RegionWriterConfig { - region_id: Uuid::new_v4(), - region_spec_id: 0, - durable_write: false, - sync_indexed_write: false, - max_wal_buffer_size: 1024 * 1024, - max_flush_interval: None, - max_memtable_size: 64 * 1024 * 1024, - manifest_scan_batch_size: 2, - ..Default::default() - }; - - let writer = RegionWriter::open(store, base_path, base_uri, config, schema.clone(), vec![]) - .await - .unwrap(); - - // Write multiple batches - for i in 0..5 { - let batch = create_test_batch(&schema, i * 10, 10); - let result = writer.put(batch).await.unwrap(); - assert_eq!(result.batch_id, i as usize); - } - - let stats = writer.memtable_stats().await; - assert_eq!(stats.row_count, 50); - assert_eq!(stats.batch_count, 5); - - writer.close().await.unwrap(); - } - - #[tokio::test] - async fn test_region_writer_wal_flush() { - let (store, base_path, base_uri, _temp_dir) = create_local_store().await; - let schema = create_test_schema(); - - let config = RegionWriterConfig { - region_id: Uuid::new_v4(), - region_spec_id: 0, - durable_write: false, - sync_indexed_write: false, - max_wal_buffer_size: 1024 * 1024, - max_flush_interval: None, - max_memtable_size: 64 * 1024 * 1024, - manifest_scan_batch_size: 2, - ..Default::default() - }; - - let writer = RegionWriter::open(store, base_path, base_uri, config, schema.clone(), vec![]) - .await - .unwrap(); - - // Write a batch - let batch = create_test_batch(&schema, 0, 10); - writer.put(batch).await.unwrap(); - - // Flush WAL - let entry = writer.flush_wal().await.unwrap(); - assert!(entry.is_some()); - let entry = entry.unwrap(); - assert_eq!(entry.id, 1); - assert_eq!(entry.batch_positions.len(), 1); - - writer.close().await.unwrap(); - } - - #[tokio::test] - async fn test_region_writer_with_indexes() { - let (store, base_path, base_uri, _temp_dir) = create_local_store().await; - let schema = create_test_schema(); - - let config = RegionWriterConfig { - region_id: Uuid::new_v4(), - region_spec_id: 0, - durable_write: false, - sync_indexed_write: true, - max_wal_buffer_size: 1024 * 1024, - max_flush_interval: None, - max_memtable_size: 64 * 1024 * 1024, - manifest_scan_batch_size: 2, - ..Default::default() - }; - - use crate::dataset::mem_wal::write::BTreeIndexConfig; - let index_configs = vec![MemIndexConfig::BTree(BTreeIndexConfig { - name: "id_idx".to_string(), - column: "id".to_string(), - })]; - - let writer = RegionWriter::open( - store, - base_path, - base_uri, - config, - schema.clone(), - index_configs, - ) - .await - .unwrap(); - - // Write a batch - let batch = create_test_batch(&schema, 0, 10); - writer.put(batch).await.unwrap(); - - let stats = writer.memtable_stats().await; - assert_eq!(stats.row_count, 10); - - writer.close().await.unwrap(); - } - - /// Test memtable flush with many batches to verify memtable is cleared after flush. - #[tokio::test] - async fn test_region_writer_memtable_flush_clears_memtable() { - let (store, base_path, base_uri, _temp_dir) = create_local_store().await; - let schema = create_test_schema(); - - // Use a larger memtable size to avoid auto-flush during puts - // (auto-flush would race with the explicit flush_memtable call) - let config = RegionWriterConfig { - region_id: Uuid::new_v4(), - region_spec_id: 0, - durable_write: false, - sync_indexed_write: false, - max_wal_buffer_size: 1024 * 1024, // 1MB WAL buffer - max_flush_interval: None, - max_memtable_size: 64 * 1024 * 1024, // 64MB memtable - manifest_scan_batch_size: 2, - ..Default::default() - }; - - let writer = RegionWriter::open(store, base_path, base_uri, config, schema.clone(), vec![]) - .await - .unwrap(); - - let num_batches = 100; - let batch_size = 20; - - // Write many batches - for i in 0..num_batches { - let batch = create_test_batch(&schema, (i * batch_size) as i32, batch_size); - writer.put(batch).await.unwrap(); - } - - // Flush memtable (this also flushes WAL first) - let result = writer.flush_memtable().await.unwrap(); - - // After flush, the memtable should be cleared (new generation) - let stats = writer.memtable_stats().await; - - // The memtable should have been cleared after flush - // New memtable should have 0 rows - assert_eq!(stats.row_count, 0, "Memtable should be cleared after flush"); - assert_eq!( - stats.batch_count, 0, - "Memtable should have no fragments after flush" - ); - - // Generation should have been incremented - assert!( - stats.generation > result.generation.generation, - "Generation should increment after flush" - ); - - writer.close().await.unwrap(); - } - - /// Test that repeated writes and flushes work correctly (no accumulation). - #[tokio::test] - async fn test_region_writer_multiple_flush_cycles() { - let (store, base_path, base_uri, _temp_dir) = create_local_store().await; - let schema = create_test_schema(); - - let config = RegionWriterConfig { - region_id: Uuid::new_v4(), - region_spec_id: 0, - durable_write: false, - sync_indexed_write: false, - max_wal_buffer_size: 1024 * 1024, - max_flush_interval: None, - max_memtable_size: 64 * 1024 * 1024, - manifest_scan_batch_size: 2, - ..Default::default() - }; - - let writer = RegionWriter::open(store, base_path, base_uri, config, schema.clone(), vec![]) - .await - .unwrap(); - - // First write cycle - for i in 0..10 { - let batch = create_test_batch(&schema, i * 10, 10); - writer.put(batch).await.unwrap(); - } - - // Check stats before flush - let stats_before = writer.memtable_stats().await; - assert_eq!(stats_before.row_count, 100); - assert_eq!(stats_before.batch_count, 10); - let gen1 = stats_before.generation; - - // Flush memtable (this also flushes WAL first) - writer.flush_memtable().await.unwrap(); - - // Memtable should be cleared - let stats_after_flush1 = writer.memtable_stats().await; - assert_eq!(stats_after_flush1.row_count, 0); - assert_eq!(stats_after_flush1.batch_count, 0); - let gen2 = stats_after_flush1.generation; - assert!(gen2 > gen1, "Generation should increment after flush"); - - // Second write cycle - for i in 0..20 { - let batch = create_test_batch(&schema, 100 + i * 10, 10); - writer.put(batch).await.unwrap(); - } - - // Check stats before second flush - let stats_before2 = writer.memtable_stats().await; - assert_eq!(stats_before2.row_count, 200); - assert_eq!(stats_before2.batch_count, 20); - assert_eq!(stats_before2.generation, gen2); - - // Flush again - writer.flush_memtable().await.unwrap(); - - // Memtable should be cleared again - let stats_after_flush2 = writer.memtable_stats().await; - assert_eq!(stats_after_flush2.row_count, 0); - assert_eq!(stats_after_flush2.batch_count, 0); - let gen3 = stats_after_flush2.generation; - assert!( - gen3 > gen2, - "Generation should increment after second flush" - ); - - writer.close().await.unwrap(); - } -}