1.9 KiB
1.9 KiB
- To Do list
- remove the escript* stuff from machi_util.erl
- Add functions to manipulate 1-chain projections
- Change all protocol ops to add epoch ID
- Add projection store to each FLU.
- Finish OTP'izing the Chain Manager with FLU & proj store processes
- Eliminate the timeout exception for the client: just {error,timeout} ret
- Move prototype/chain-manager code to "top" of source tree
- Add projection wedging logic to each FLU.
- Implement real data repair, orchestrated by the chain manager
- Change all protocol ops to enforce the epoch ID
- Move the FLU server to gen_server behavior?
- Add gproc and get rid of registered name rendezvous
- Fix all known bugs with Chain Manager
To Do list
DONE remove the escript* stuff from machi_util.erl
DONE Add functions to manipulate 1-chain projections
- Add epoch ID = epoch number + checksum of projection! Done via compare() func.
DONE Change all protocol ops to add epoch ID
DONE Add projection store to each FLU.
DONE What should the API look like? (borrow from chain mgr PoC?)
Yeah, I think that's pretty complete. Steal it now, worry later.
DONE Choose protocol & TCP port. Share with get/put? Separate?
Hrm, I like the idea of having a single TCP port to talk to any single FLU.
To make the protocol "easy" to hack, how about using the same basic method as append/write where there's a variable size blob. But we'll format that blob as a term_to_binary(). Then dispatch to a single func, and pattern match Erlang style in that func.
DONE Do it.
DONE Finish OTP'izing the Chain Manager with FLU & proj store processes
DONE Eliminate the timeout exception for the client: just {error,timeout} ret
DONE Move prototype/chain-manager code to "top" of source tree
DONE Preserve current test code (leave as-is? tiny changes?)
DONE Make chain manager code flexible enough to run "real world" or "sim"
TODO Add projection wedging logic to each FLU.
TODO Implement real data repair, orchestrated by the chain manager
TODO Change all protocol ops to enforce the epoch ID
- Add no-wedging state to make testing easier?
TODO Move the FLU server to gen_server behavior?
TODO Add gproc and get rid of registered name rendezvous
TODO Fixes the atom table leak
TODO Fixes the problem of having active sequencer for the same prefix
on two FLUS in the same VM