Scott Lystig Fritchie
3c6f1be5d0
Change read_chunk options to use new #read_opts{}
2015-12-29 18:47:08 +09:00
Scott Lystig Fritchie
e24acb7246
Clean up internal protocol<->tuple mappings for correct epoch checking
2015-12-29 17:26:09 +09:00
Scott Lystig Fritchie
3d730ea215
write_chunk API refactoring; all tests pass; todo tasks remain
2015-12-29 14:13:33 +09:00
Scott Lystig Fritchie
6089ee6851
read_chunk API refactoring; all tests pass; todo tasks remain
2015-12-29 14:13:33 +09:00
Scott Lystig Fritchie
2932a17ea6
append_chunk API refactoring; all tests pass; todo tasks remain
2015-12-29 14:13:29 +09:00
Scott Lystig Fritchie
c49ccafdc6
Merge slf/flu-config-rcd-style
2015-12-18 15:41:02 +09:00
Scott Lystig Fritchie
9472bad37b
Clean up test errors
2015-12-10 15:57:35 +09:00
Shunichi Shinohara
2e2d282afc
Use outside of ephemeral port range to listen on
...
When there is TCP_WAIT connection whose local part has
port to be listened, listen (bind) will fail by eaddrinuse
_on Linux_ (won't on Mac OS X).
This commit also adds some logs and pattern matches.
Reference
- Ephemeral port - Wikipedia, the free encyclopedia
https://en.wikipedia.org/wiki/Ephemeral_port
"Many Linux kernels use the port range 32768 to 61000.[note 2]
FreeBSD has used the IANA port range since release 4.6. Previous
versions, including the Berkeley Software Distribution (BSD), use
ports 1024 to 5000 as ephemeral ports.[2]"
- Demostration of collision between already-closed ephemeral port
and listen port on Linux (Mac OS X allows)
https://gist.github.com/shino/36ae1e01608366d52236
2015-12-09 18:04:50 +09:00
Shunichi Shinohara
aa0a0413d1
Cosmetics of comments, specs, whitespaces and unit tests refactoring
2015-12-09 09:58:34 +09:00
Scott Lystig Fritchie
37f33fae7b
Fix bad_arg errors in low level eunit tests ... all pass now, yay!
2015-12-02 16:00:13 +09:00
UENISHI Kota
0f688d6279
Update read_chunk() PB protocol to return trimmed chunks
2015-10-22 23:11:43 +09:00
UENISHI Kota
3e975f53b8
Allow read_chunk() to return partial chunks
...
This is simply a change of read_chunk() protocol, where a response of
read_chunk() becomes list of written bytes along with checksum. All
related code including repair is changed as such. This is to pass all
tests and not actually supporting partial chunks.
2015-10-19 15:37:17 +09:00
Scott Lystig Fritchie
00ac0f4cd3
Reduce compiler warnings and verbose output that clutters eunit test output
2015-10-16 17:41:01 +09:00
Mark Allen
ec9682520a
Fix tests with bad file names.
...
Either catch the {error, bad_arg} tuple or modify the file name to
conform to the machi conventions of prefix^uuid^seqno.
2015-10-13 21:13:12 -05:00
Scott Lystig Fritchie
5131ebdd16
Change eunit expectations from change to using psup
2015-10-12 15:38:47 +09:00
Mark Allen
855f94925c
Validate semantics on partial reads
2015-10-11 23:05:00 -05:00
Mark Allen
5926cef44a
Make test start up more reliable
2015-10-08 15:49:22 -05:00
Scott Lystig Fritchie
c12231c7b6
Fix other tests to accomodate new semantics
2015-08-25 19:45:31 +09:00
Scott Lystig Fritchie
432190435e
Add witness_mode to FLU
2015-07-21 17:29:33 +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
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
5ef499ec73
WIP: append_chunk #1
2015-06-23 14:08:10 +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
0f10b45161
Dialyzer fixes, derp!
2015-06-02 19:07:13 +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
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
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
1dc759b908
WIP: add wedge_status() query to client
2015-05-08 16:53:10 +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
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
c27aa1f579
Projection store API complete, I think
2015-04-03 18:37:09 +09:00
Scott Lystig Fritchie
022b9c4d1f
WIP: projection store: read, get latest epoch
2015-04-03 17:55:35 +09:00
Scott Lystig Fritchie
acf54e3c21
WIP: client side projection store, 1st API op (write), part II
2015-04-03 17:10:52 +09:00
Scott Lystig Fritchie
7205c5283e
WIP: client side projection store, 1st API op (write)
2015-04-03 12:36:16 +09:00
Scott Lystig Fritchie
7627ba08a3
WIP: epoch ID added to write/delete/trunc protocol commands
2015-04-02 21:18:41 +09:00