Scott Lystig Fritchie
30fc62ab22
Gadz, more sequencer cleanup. corfurl_sequencer_test now passes
2015-03-02 20:03:45 +09:00
Scott Lystig Fritchie
b8c051c89f
Fix broken sequencer semantics.
...
It occurred to me today that I implemented the sequencer incorrectly and
hadn't yet noticed because I don't have any tests that are
complex/interleaved/perhaps-non-deterministic to find the problem.
The problem is that the sequencer's current implementation only keeps
track of the last LPN for any Tango stream.
The fix is to do what the paper actually says: the sequencer keeps a
*list* of the last $K$ LPNs for each stream. Derp. Yes, that's really
necessary to avoid a pretty simple race condition with 2 actors
simultaneously updating a single Tango stream.
1st commit: fix the implementation and the smoke test. The
broken-everything-else will be repaired in later commits.
2015-03-02 20:03:45 +09:00
Scott Lystig Fritchie
940012cef1
Add checkpoint support for tango_dt_map
2015-03-02 20:03:45 +09:00
Scott Lystig Fritchie
4cf8ac7ed8
Add checkpoint support for tango_dt_queue
2015-03-02 20:03:45 +09:00
Scott Lystig Fritchie
970eb263db
Fix bug in backpointer handling, derp!
2015-03-02 20:03:45 +09:00
Scott Lystig Fritchie
004a18d948
Add checkpoint support for tango_dt_register
2015-03-02 20:03:45 +09:00
Scott Lystig Fritchie
7b9c94553c
Add skeleton support for single-page checkpointing
2015-03-02 20:03:45 +09:00
Scott Lystig Fritchie
1c1e1368dd
Added src/tango_dt_queue.erl plus test
2015-03-02 20:03:45 +09:00
Scott Lystig Fritchie
6caeaeb6b5
Ha! Damn quick and easy to add tango_dt_map.erl
2015-03-02 20:03:45 +09:00
Scott Lystig Fritchie
df53ec0a4e
Refactor register DT into tango_dt.erl and tango_dt_register.erl
2015-03-02 20:03:45 +09:00
Scott Lystig Fritchie
c068057c96
Add missing func corfurl_client:append_page/3, then fix tango_dt_register_test
2015-03-02 20:03:45 +09:00
Scott Lystig Fritchie
cdeddbb582
Heh, demonstrate a concurrency bug that I knew was there, yay, fixit time!
2015-03-02 20:03:45 +09:00
Scott Lystig Fritchie
18b38c249e
First draft of tango_dt_register
2015-03-02 20:03:45 +09:00
Scott Lystig Fritchie
6067e26201
Change semantics of OID map, silly me, to match what's needed
2015-03-02 20:03:45 +09:00
Scott Lystig Fritchie
436c6ac14b
Minor type fixup
2015-03-02 20:03:45 +09:00
Scott Lystig Fritchie
4fe4758d7a
Generic parameterization of the map, done badly, part 1
2015-03-02 20:03:44 +09:00
Scott Lystig Fritchie
9c73872d20
Fix TEST vs PULSE tests
2015-03-02 20:03:44 +09:00
Scott Lystig Fritchie
e9f16d7b1b
Dialyzer clean
2015-03-02 20:03:44 +09:00
Scott Lystig Fritchie
7878d954c1
Add dialyzer targets to Makefile ... time to get type serious
2015-03-02 20:03:44 +09:00
Scott Lystig Fritchie
be55d98bb5
Tango OID mapper put now passes basic unit test!
2015-03-02 20:03:44 +09:00
Scott Lystig Fritchie
52e2fa2edb
Start WIP on tango_oid.erl
2015-03-02 20:03:41 +09:00
Scott Lystig Fritchie
c02d35821e
Clean up tango_test.erl debugging cruft
2015-03-02 20:00:37 +09:00
Scott Lystig Fritchie
1184607bce
Fix scan_backward with stopping LPN #
2015-03-02 20:00:37 +09:00
Scott Lystig Fritchie
1bb127eb65
Add scan_backward LPN limit + test
2015-03-02 20:00:37 +09:00
Scott Lystig Fritchie
c311a187ac
Test refactoring 2
2015-03-02 20:00:37 +09:00
Scott Lystig Fritchie
9d2f494db0
Test refactoring
2015-03-02 20:00:37 +09:00
Scott Lystig Fritchie
c5b4bf8d7b
Basic infrastructure and testing for Tango-style streams
2015-03-02 20:00:33 +09:00
Scott Lystig Fritchie
fe79df48b5
Add fledgling log implementation based on CORFU papers (corfurl stuff)
2015-03-02 19:59:01 +09:00