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