Commit graph

41 commits

Author SHA1 Message Date
Joe Ardent
745206b29b use lin-kv and gossip to reduce worst-case lag 2024-06-07 16:29:14 -07:00
Joe Ardent
5f6312dfb8 Send less data; no KV.
This has good messages/op (2.3), but bad highest lag (39 seconds):

{:perf {:latency-graph {:valid? true},
        :rate-graph {:valid? true},
        :valid? true},
 :timeline {:valid? true},
 :exceptions {:valid? true},
 :stats {:valid? true,
         :count 18643,
         :ok-count 18635,
         :fail-count 0,
         :info-count 8,
         :by-f {:assign {:valid? true,
                         :count 2258,
                         :ok-count 2258,
                         :fail-count 0,
                         :info-count 0},
                :crash {:valid? false,
                        :count 8,
                        :ok-count 0,
                        :fail-count 0,
                        :info-count 8},
                :poll {:valid? true,
                       :count 8537,
                       :ok-count 8537,
                       :fail-count 0,
                       :info-count 0},
                :send {:valid? true,
                       :count 7840,
                       :ok-count 7840,
                       :fail-count 0,
                       :info-count 0}}},
 :availability {:valid? true, :ok-fraction 0.9995709},
 :net {:all {:send-count 43768,
             :recv-count 43768,
             :msg-count 43768,
             :msgs-per-op 2.3476908},
       :clients {:send-count 43768,
                 :recv-count 43768,
                 :msg-count 43768},
       :servers {:send-count 0,
                 :recv-count 0,
                 :msg-count 0,
                 :msgs-per-op 0.0},
       :valid? true},
 :workload {:valid? true,
            :worst-realtime-lag {:time 39.787998673,
                                 :process 6,
                                 :key "9",
                                 :lag 39.771318684},
            :bad-error-types (),
            :error-types (),
            :info-txn-causes ()},
 :valid? true}
2024-06-07 14:13:10 -07:00
Joe Ardent
a492ca56a4 actually implement list_committed_offsets 2024-06-07 13:12:37 -07:00
Joe Ardent
5222d55a61 passes 5a 2024-06-06 22:19:13 -07:00
Joe Ardent
8ada835f81 update nebkor-maelstrom dep 2024-06-05 22:12:51 -07:00
Joe Ardent
a49ddffa56 use the crates.io version of nebkor-maelstrom 2024-06-04 19:01:20 -07:00
Joe Ardent
af6d2c0b27 flatten runner code even more 2024-06-04 16:00:30 -07:00
Joe Ardent
23b95677bf don't use internal state in the node 2024-06-04 14:30:28 -07:00
Joe Ardent
7a0147f88e do a read on each add 2024-06-04 13:04:55 -07:00
Joe Ardent
4c89bf7a5c passes global counter 2024-06-04 12:58:38 -07:00
Joe Ardent
95588c0dad dry out message creation 2024-06-04 12:23:05 -07:00
Joe Ardent
ecd137c662 unify rpcresults 2024-06-04 11:52:09 -07:00
Joe Ardent
77316fa927 Add KV impl.
use kv in counter, still doesn't pass.
2024-06-04 11:34:00 -07:00
Joe Ardent
e92af7cf92 remove Network struct 2024-06-04 10:21:36 -07:00
Joe Ardent
8109448dac remove needless reference-take. 2024-06-03 22:21:26 -07:00
Joe Ardent
30d7a487d6 tweak 2024-06-03 18:14:15 -07:00
Joe Ardent
f1864ad7b0 add readme and thanks to maelbreaker 2024-06-03 17:57:11 -07:00
Joe Ardent
2793508a93 framework works 2024-06-03 16:54:15 -07:00
Joe Ardent
6f45521660 new IO works for old challenges. 2024-06-02 11:13:31 -07:00
Joe Ardent
e6d76ba37c still deadlocking 2024-05-30 21:52:52 -07:00
Joe Ardent
c53edd921a deadlocks on writing to stdout 2024-05-30 14:36:05 -07:00
Joe Ardent
8638ffe67f add support for callback on init in the runner. 2024-05-29 14:46:09 -07:00
Joe Ardent
461087023d Make handle take Message by value.
This makes closures easier to deal with in RPC calls.
2024-05-29 13:58:11 -07:00
Joe Ardent
9e1d05983d non-working gg-counter, empty kv impl 2024-05-28 13:35:32 -07:00
Joe Ardent
6ed80d17fb destroys 3e: msg/op is 8, median latency is 600ms, max is 1.4s 2024-05-22 15:35:08 -07:00
Joe Ardent
f092e0f9e4 passes 3d; changes io to use channels. 2024-05-22 15:24:19 -07:00
Joe Ardent
28e6e76008 Passes fault-tolerant multi-node broadcast. 2024-05-20 14:01:05 -07:00
Joe Ardent
417f01d484 port gg-uid to nebkor-maelstrom 2024-05-20 12:55:12 -07:00
Joe Ardent
851e9a6711 Move all lib-y code into nebkor-maelstrom, have gg-echo use it fully. 2024-05-20 12:43:21 -07:00
Joe Ardent
634ba4a2ba added runner 2024-05-19 18:58:46 -07:00
Joe Ardent
35e89d7c7d echo works, only external crate is serde 2024-05-19 17:08:47 -07:00
Joe Ardent
11d6734d29 futzing 2024-05-19 15:22:20 -07:00
Joe Ardent
cdc191a3a1 re-add custom maelstrom crate 2024-05-19 15:19:43 -07:00
Joe Ardent
0be4e33b36 try to be fault tolerant, fail. 2024-05-18 17:50:37 -07:00
Joe Ardent
75aaf3418b adds gossiping; passes multibroadcast, not fault-tolerant. 2024-05-17 18:05:57 -07:00
Joe Ardent
8f869ff0d5 single-node broadcast works 2024-05-17 17:27:47 -07:00
Joe Ardent
3186c08f32 finished with generating unique ids 2024-05-17 16:26:02 -07:00
Joe Ardent
d07f852e7c use workspace deps 2024-05-17 15:51:19 -07:00
Joe Ardent
4fecd6cc9a use an off-the-shelf crate for maelstrom node.
The echo server is basically copied from the example for the crate, but it's
nothing special.
2024-05-17 15:46:10 -07:00
Joe Ardent
98412c147b add readme and license. 2024-05-17 11:32:50 -07:00
Joe Ardent
e2844fc7e0 protocol should be good enough to start 2024-05-17 11:20:28 -07:00