Scott Lystig Fritchie
2b64028bbd
Add kick_projection_reaction, implement yo:tell_author_yo()
2015-07-03 04:30:05 +09:00
Scott Lystig Fritchie
ff66638eb3
Sequencer changes file sequence number when epoch_id change is detected
2015-07-03 02:04:04 +09:00
Scott Lystig Fritchie
9cf77f4406
WIP: Refactoring and prototyping goop, broken test
2015-07-03 00:59:04 +09:00
Scott Lystig Fritchie
8820a71152
Clean up comment cruft & line wrap yak shaving
2015-07-02 14:44:47 +09:00
Scott Lystig Fritchie
da3a56dd74
Fix epoch checking in eunit tests and enforcement by FLU (always permit list_files())
2015-07-01 18:12:22 +09:00
Scott Lystig Fritchie
38c1a2ab5d
Fix Epoch handling in machi_flu_psup_test.erl
2015-07-01 17:46:35 +09:00
Scott Lystig Fritchie
576d3d76a2
Extend machi_chain_manager1_pulse fudge time factor
2015-07-01 17:46:10 +09:00
Scott Lystig Fritchie
f5ae417b9e
Clarify verify_file_checksums_test_
2015-07-01 14:16:31 +09:00
Scott Lystig Fritchie
670bd2cafc
Add some flexibility to machi_chain_manager1_converge_demo:t/1 and t/2
2015-07-01 14:08:17 +09:00
Scott Lystig Fritchie
7542fe8225
WIP: all eunit tests are passing again, yay
2015-06-30 16:12:23 +09:00
Scott Lystig Fritchie
e9d50a2128
WIP: Reinstate one eunit test, fix type bugs
2015-06-30 15:51:03 +09:00
Scott Lystig Fritchie
d54c74f58a
WIP: yank out io:format
2015-06-29 16:53:41 +09:00
Scott Lystig Fritchie
3089288338
WIP: giant hairball 13: all unit tests are passing again, yay!
2015-06-29 16:48:06 +09:00
Scott Lystig Fritchie
b25ab3b7ac
WIP: giant hairball 11
2015-06-29 16:24:57 +09:00
Scott Lystig Fritchie
64817dd7e8
WIP: giant hairball 01
2015-06-29 16:10:43 +09:00
Scott Lystig Fritchie
3cf18817df
WIP: hairball, but timing_pb_encoding_test() works!
2015-06-27 00:12:42 +09:00
Scott Lystig Fritchie
b5c824c5c0
WIP: hairball, but bad_checksum_test() works!
2015-06-27 00:06:21 +09:00
Scott Lystig Fritchie
2fd27fdae6
WIP: hairball, but flu_projection_smoke_test() works!
2015-06-26 23:58:34 +09:00
Scott Lystig Fritchie
920a5c33d7
WIP: giant hairball 6
2015-06-26 22:32:53 +09:00
Scott Lystig Fritchie
77b4da16c3
WIP: giant hairball 5
2015-06-26 21:36:07 +09:00
Scott Lystig Fritchie
6d95d8669c
WIP: giant hairball, bleh, low-level checksum_list() barely working
2015-06-26 16:25:12 +09:00
Scott Lystig Fritchie
d9694a992a
Alright, use term_to_binary() for opaque/sexp-style encoding, only 15x slower.
...
machi_flu1_test: timing_pb_encoding_test_... speed factor=15.12 [2.678 s] ok
2015-06-25 16:11:46 +09:00
Scott Lystig Fritchie
2763b16ca2
timing_pb_encoding_test_... speed factor=35.95 [2.730 s] ok
...
So, the PB style encoding of the Mpb_LL_WriteProjectionReq message
is about 35-36 times slower than using Erlang's term_to_binary()
and binary_to_term(). {sigh}
2015-06-25 16:11:44 +09:00
Scott Lystig Fritchie
5d8b648a24
All projection store protocol operations are now using Protocol Buffers!
...
So, there's some cheating going on, because some of the parts of
the #projection_v1{} and #p_srvr{} records aren't fully specified.
Those parts are being specified as "opaque" in the field names, e.g.
optional bytes opaque_flap = 10;
optional bytes opaque_inner = 11;
required bytes opaque_dbg = 12;
required bytes opaque_dbg2 = 13;
The serialization that's being used is erlang term sexprs. That isn't
portable. So if/when we really need to deal with a non-Erlang
language, we'll have to straighten this out further.
2015-06-25 15:26:35 +09:00
Scott Lystig Fritchie
4fc0578a9d
WIP: bugfixes, machi_flu1_test still broken
2015-06-25 15:08:40 +09:00
Scott Lystig Fritchie
1b0cf06f1c
Fix type problem, oops
2015-06-24 14:06:17 +09:00
Scott Lystig Fritchie
2068f70700
WIP: encoding #p_srvr and #projection_v1, just starting. Damn tedious.
2015-06-24 12:50:37 +09:00
Scott Lystig Fritchie
ceebe3d491
WIP: list_files #2
2015-06-23 17:17:14 +09:00
Scott Lystig Fritchie
73f71c406e
WIP: list_files end-to-end!
2015-06-23 17:08:15 +09:00
Scott Lystig Fritchie
6722b3c0f1
WIP: checksum_list incomplete implementation....
2015-06-23 16:53:06 +09:00
Scott Lystig Fritchie
6e77a4ea74
WIP: read_chunk end-to-end!
2015-06-23 16:24:08 +09:00
Scott Lystig Fritchie
44c22bf752
WIP: read_chunk #1
2015-06-23 15:34:48 +09:00
Scott Lystig Fritchie
a8782eed5a
WIP: write_chunk #1
2015-06-23 15:13:13 +09:00
Scott Lystig Fritchie
cb06c53dc0
WIP: PB append_chunk end-to-end works!
2015-06-23 14:45:24 +09:00
Scott Lystig Fritchie
5ef499ec73
WIP: append_chunk #1
2015-06-23 14:08:10 +09:00
Scott Lystig Fritchie
bb8e725c26
WIP: 'auth' request placeholders
2015-06-22 18:16:15 +09:00
Scott Lystig Fritchie
db7f1476b9
WIP: 'echo' request works end-to-end, yay!
2015-06-22 18:04:17 +09:00
Scott Lystig Fritchie
3d05f543df
WIP: new test case is failing, quick fix soon
2015-06-22 17:49:07 +09:00
Scott Lystig Fritchie
dc9f272c44
Nearly dumbest-possible Protocol Buffers client request & response round trip
2015-06-19 17:21:04 +09:00
Scott Lystig Fritchie
3c300bb9f1
Add write_chunk() to machi_cr_client.erl
2015-06-19 14:49:09 +09:00
Scott Lystig Fritchie
40c0a72b48
Add test/machi_pb_test.erl, finish PB refactoring
2015-06-19 13:00:28 +09:00
Scott Lystig Fritchie
3ce3fb93b9
Use infinity timeout for sanity check
2015-06-17 12:42:53 +09:00
Scott Lystig Fritchie
cc87f682fe
Fix broken eunit test machi_flu_psup_test.erl
2015-06-15 13:02:25 +09:00
Scott Lystig Fritchie
b244a3b8e4
Reduce verbosity, try fix up convergence demo for chain len=4
2015-06-15 12:41:16 +09:00
Scott Lystig Fritchie
be62300b3b
Bug fixes: model and real bugs, thanks PULSE and converge_demo both!
2015-06-04 17:39:29 +09:00
Scott Lystig Fritchie
d3df2bd31d
WIP: remove repair_always_done option, it was flawed
2015-06-03 15:26:22 +09:00
Scott Lystig Fritchie
87417d2872
WIP: get the old jalopy into runnable shape
2015-06-03 11:48:55 +09:00
Scott Lystig Fritchie
c1318d3bbb
WIP: wip wip a doowip
2015-06-02 22:13:15 +09:00
Scott Lystig Fritchie
deabe14d29
Un-proplist-ify the inner projection
2015-06-02 20:55:18 +09:00
Scott Lystig Fritchie
207be8729b
Un-proplist-ify the flapping_i info
2015-06-02 20:32:52 +09:00
Scott Lystig Fritchie
0f10b45161
Dialyzer fixes, derp!
2015-06-02 19:07:13 +09:00
Scott Lystig Fritchie
67019493aa
Round 1 of cleanup
2015-06-02 18:10:45 +09:00
Scott Lystig Fritchie
b51473be09
Change eunit fixture to timeout for machi_cr_client_test:smoke_test
2015-06-02 12:40:07 +09:00
Scott Lystig Fritchie
dd4160b963
Add basic {error, bad_checksum} tests to proxy & CR clients
2015-06-02 12:36:51 +09:00
Scott Lystig Fritchie
e3162fdcda
Rudimentary client-side checksum and server-side checksum type tags
2015-06-01 14:25:55 +09:00
Scott Lystig Fritchie
7ba962e9fb
Fix handling of {error, partial_read}
2015-05-21 15:12:46 +09:00
Scott Lystig Fritchie
b5ddfaf019
Finish basic API for machi_cr_client.erl
2015-05-19 20:04:36 +09:00
Scott Lystig Fritchie
a4266e8aa4
Fix known chain repair bugs, add basic smoke test
2015-05-19 19:32:48 +09:00
Scott Lystig Fritchie
152e487060
WIP: read-repair, new test is failing, yay
2015-05-19 15:15:05 +09:00
Scott Lystig Fritchie
079d15dd5c
Derp, remove debugging goop + fix eunit @ write_chunk() response change
2015-05-19 14:05:18 +09:00
Scott Lystig Fritchie
185c670b2f
WIP: refactoring machi_cr_client:append_chunk*
2015-05-18 19:06:06 +09:00
Scott Lystig Fritchie
a06055ac23
WIP: rearrange client code to approach some semblance of modularity someday
2015-05-17 16:18:30 +09:00
Scott Lystig Fritchie
6c07522359
Add new API func, append_chunk_extra()
2015-05-17 14:10:42 +09:00
Scott Lystig Fritchie
eec029b08f
WIP: aside, fix FLU wedge status @ init()
2015-05-13 17:59:32 +09:00
Scott Lystig Fritchie
0dd9282789
WIP: fix other broken eunit tests, surrounding wedge state
2015-05-08 21:24:07 +09:00
Scott Lystig Fritchie
6f7818fca7
WIP: additional tests for wedge state
2015-05-08 19:50:47 +09:00
Scott Lystig Fritchie
316126fa59
WIP: additional tests for wedge state
2015-05-08 19:07:57 +09:00
Scott Lystig Fritchie
376c4a9ae1
WIP: failing test for append while wedged
2015-05-08 18:22:44 +09:00
Scott Lystig Fritchie
7906e6c235
WIP: basic wedge notifications now working
2015-05-08 18:17:41 +09:00
Scott Lystig Fritchie
ca854373f8
WIP: new test fails: check for not wedged
2015-05-08 17:07:03 +09:00
Scott Lystig Fritchie
d6d003618d
WIP: add wedge_status() query to proxy client
2015-05-08 16:58:06 +09:00
Scott Lystig Fritchie
1dc759b908
WIP: add wedge_status() query to client
2015-05-08 16:53:10 +09:00
Scott Lystig Fritchie
762aef557f
WIP: Set the stage for FLU wedging API
2015-05-08 15:36:53 +09:00
Scott Lystig Fritchie
ae1d038abe
Change default value of chmgr's use_partition_simulator to false
2015-05-08 13:40:44 +09:00
Scott Lystig Fritchie
238c8472cd
WIP: timeout comments
2015-05-07 18:52:01 +09:00
Scott Lystig Fritchie
a7bd8e43d3
Clean up machi_flu_psup_test.erl
2015-05-02 17:10:23 +09:00
Scott Lystig Fritchie
1675020150
WIP, tests pass again, includign the newest one
2015-05-02 00:33:49 +09:00
Scott Lystig Fritchie
65993dfcb6
WIP: tests pass, but not finished yet
2015-05-01 14:52:19 +09:00
Scott Lystig Fritchie
53f6a753f4
WIP: tests pass, but not finished yet
2015-05-01 14:51:42 +09:00
Scott Lystig Fritchie
7bafc1c28a
WIP: stop for the night, we are broken
2015-04-30 23:16:08 +09:00
Scott Lystig Fritchie
99fd7e7fe1
Add test/machi_flu_psup_test.erl, small cleanups
2015-04-30 21:20:21 +09:00
Scott Lystig Fritchie
442e79e4f1
Add machi_flu_psup.erl to supervise all 3 FLU processes (see below)
...
Introduce machi_flu_psup:start_flu_package/4 as a way to start all
related FLU processes
* The projection store
* The chain manager
* The FLU itself
... as well as linked processes.
http://www.snookles.com/scotttmp/flu-tree-20150430.png shows one FLU
running, "a". The process registered "a" is the append server,
"some-prefix" for the sequencer & writer for the current <<"some-prefix">>
file, and a process each for 3 active TCP connections to that FLU.
2015-04-30 19:15:27 +09:00
Scott Lystig Fritchie
02bc7fe0bc
WIP: Fix bug that flaps inside an inner projection, oops!
2015-04-14 18:23:00 +09:00
Scott Lystig Fritchie
9e587b3d11
WIP: crufty TODO & comment cleanup
2015-04-14 16:17:49 +09:00
Scott Lystig Fritchie
59936eda62
WIP: By Jove, I believe the chain manager is working
2015-04-14 15:30:24 +09:00
Scott Lystig Fritchie
09051aecce
WIP: experiments for transitioning out of inner/nested projection state
2015-04-14 00:54:38 +09:00
Scott Lystig Fritchie
0b8ea13f7a
WIP: some TODO cleanup & related refactoring
2015-04-10 22:00:52 +09:00
Scott Lystig Fritchie
4334c71a4d
WIP: compiler warning fixups
2015-04-10 11:08:17 +09:00
Scott Lystig Fritchie
4f7177067e
WIP: Type fixups
2015-04-09 21:32:04 +09:00
Scott Lystig Fritchie
1984c3c350
WIP: convergence demo runs, but badly!
2015-04-09 21:08:15 +09:00
Scott Lystig Fritchie
2b1eb9b144
WIP: Move convergence demo to new module machi_chain_manager1_converg_demo.erl
2015-04-09 18:08:29 +09:00
Scott Lystig Fritchie
6cd9dfc977
WIP: nonunanimous_setup_and_fix_test() passes
2015-04-09 17:47:43 +09:00
Scott Lystig Fritchie
e06adabb6a
WIP: bogus flapping in nonunanimous_setup_and_fix_test()
2015-04-09 17:13:38 +09:00
Scott Lystig Fritchie
8deea3bb01
WIP: smoke1 in chain manager works
2015-04-09 14:44:58 +09:00
Scott Lystig Fritchie
a92c5fec0a
WIP: remove old smoke0 code from machi_proxy_flu1_client_test.erl
2015-04-09 12:21:15 +09:00
Scott Lystig Fritchie
ce67fb662a
WIP: more projection refactoring, eunit tests pass for the moment
2015-04-09 12:16:58 +09:00
Scott Lystig Fritchie
0e38eddaa9
WIP: baby step, machi_chain_manager1_test:smoke0_test() works
2015-04-06 20:07:39 +09:00
Scott Lystig Fritchie
16e283fe5b
API overhaul, add machi_proxy_flu1_client.erl, add chain manager (tests commented out)
2015-04-06 18:43:52 +09:00
Scott Lystig Fritchie
a79f385fa7
Fix type problem for return of get_latest_epoch
2015-04-06 15:49:47 +09:00
Scott Lystig Fritchie
99bfa2a3b8
Import of machi_chain_manager1.erl and friends; tests broken
2015-04-06 14:16:20 +09:00