Commit graph

35 commits

Author SHA1 Message Date
Michael Whittaker
ef292ba35e Caught bug in f-resilient quorum computation. 2021-02-02 23:01:04 -08:00
Michael Whittaker
bdd4e8925e Added cap limits on graphs.
Surprisingly hard to understand what the cap limit should be.
2021-02-02 23:00:23 -08:00
Michael Whittaker
03b307d5f0 Added quorum system tests. 2021-01-31 21:55:05 -08:00
Michael Whittaker
a981d44d7f Added strategy tests.
Also normalized make_strategy.
2021-01-31 21:24:55 -08:00
Michael Whittaker
4b2ef408d7 Added a way to make a custom strategy. 2021-01-31 17:48:36 -08:00
Michael Whittaker
42e4296b04 Added some TODOs to Expr.
Right now, there is not a nice way to check that two expressions are
equal. It would be fun to implement this, though it may not be super
fast.
2021-01-31 17:47:35 -08:00
Michael Whittaker
32f5bb2125 Added quorum system tests + bug fix.
I was computing uniform strategies wrong. Looks like adding tests cases
was the right move!
2021-01-31 17:47:06 -08:00
Michael Whittaker
6d1b865b67 Added expr tests + bug fix.
I wasn't computing the resilience of a choose quorum system correctly.
I'm happy I decided to add some unit tests!
2021-01-31 17:28:14 -08:00
Michael Whittaker
dced6388af Added search procedure. 2021-01-31 12:31:22 -08:00
Michael Whittaker
a42bccaf0c Tidied up code.
Some of the code was nasty. I cleaned it up a bit. I also started moving
tests into a tests/ directory. You can run python -m unittest to run
them. I still need to add more tests to make sure things are working as
expected.
2021-01-30 18:47:25 -08:00
Michael Whittaker
63b88c38d5 First full stab at multiple objectives. 2021-01-29 18:09:50 -08:00
Michael Whittaker
18f97ac866 Progress on multiple objectives. 2021-01-29 17:46:00 -08:00
Michael Whittaker
31e875f957 Tidied up load dist code. 2021-01-29 00:01:47 -08:00
Michael Whittaker
cb8c5d0e6c Refactoring plotting to separate file. 2021-01-28 23:47:41 -08:00
Michael Whittaker
cf520371d9 Added load distribution plotting.
Still need to add capacity plots.
2021-01-28 22:46:57 -08:00
Michael Whittaker
bcfc4d4098 Added some geometry code.
I'll use this for load vs read fraction plots.
2021-01-28 19:26:36 -08:00
Michael Whittaker
5d973428d2 Added util plot + misc cleanup. 2021-01-27 21:22:54 -08:00
Michael Whittaker
5303a004cc Added capacity plotting. 2021-01-27 16:56:21 -08:00
Michael Whittaker
9aac3a7541 Added load plots.
I merged Strategy and ExplicitStrategy for now. I also pruned zero
probability quorums from the strategies. The load plots are cool. I want
to plot capacity plots now, though it's a little tricky.
2021-01-27 16:22:16 -08:00
Michael Whittaker
2a1b56e987 Fixed buggy load computation.
I was incorrectly computing load on a distribution of read fractions. I
have to compute the load for each fr separately and then weight them.
2021-01-27 14:56:00 -08:00
Michael Whittaker
5b6ccba1f3 Removed old unused file. 2021-01-22 16:30:14 -08:00
Michael Whittaker
21deb75622 Added capacity. 2021-01-22 16:29:49 -08:00
Michael Whittaker
68a939b3e6 More efficently(?) check quorum system validity. 2021-01-22 14:51:44 -08:00
Michael Whittaker
7f1a1a3934 Split up code into separate modules. 2021-01-22 14:47:07 -08:00
Michael Whittaker
630effa405 Added duplicate free resilience computation. 2021-01-22 14:20:46 -08:00
Michael Whittaker
2d4bcc1a09 Raise error if there are no f-resilient quorums. 2021-01-22 12:10:43 -08:00
Michael Whittaker
6193204c7d Added f-resilient strategies. 2021-01-22 12:07:35 -08:00
Michael Whittaker
f6c291d844 Added option to pass write fraction. 2021-01-22 11:28:13 -08:00
Michael Whittaker
cf5e451d68 Added resilience computation. 2021-01-22 11:10:05 -08:00
Michael Whittaker
59b2e746a4 Added examples.py 2021-01-20 22:04:18 -08:00
Michael Whittaker
1b84ec3134 Added read and write capacity handling.
This stuff is weird because it's obvious how to adjust the LP, but
understanding what things mean intuitively is weird. I settled on the
new load being the inverse of the peak throughput possible. With default
load, we assume capacity at every node is 1.
2021-01-20 21:52:19 -08:00
Michael Whittaker
11fe478c2b Added optimal load strategy with LP. 2021-01-20 17:59:46 -08:00
Michael Whittaker
efbeb8dc44 Added some more skeleton around strategies. 2021-01-20 17:11:59 -08:00
Michael Whittaker
56992f1c8d Added Choose and QuorumSystem. 2021-01-20 16:41:09 -08:00
Michael Whittaker
3f28929d07 Added basic library skeleton. 2021-01-20 16:12:26 -08:00