machi/test
UENISHI Kota f7358424e4 Trim command and GC prototype implementation
* maybe_gc/2 is triggered at machi_file_proxy, when chunk is deleted
  and the file is larger than `max_file_size`
* A file is deleted if all chunks except 1024 bytes header are trimmed
* If a file is going to be deleted, file_proxy notifies metadata_mgr
  to remember the filename persistently, whose filename is
  `known_files_<FluName>`
* Such trimmed filenames are stored in a machi_plist file per flu
* machi_file_proxy could not be started if the filename is in the
  manager's list. Consequently, any write, read and trim operations
  cannot happen against deleted file.
* After the file was trimmed, any read request to the file returns
  `{error, trimmed}`
* Disclaimer: no tests written yet and machi_plist does not support
  any recovery from partial writes.
* Add some thoughts as comments for repairing trims.

* State diagram of every byte is as follows:

```
state\action| write/append   | read_chunk       | trim_chunk
------------+----------------+------------------+---------------
 unwritten  |  -> written    | fail (+repair)   | -> trimmed
 written    | noop or repair | return content   | -> trimmed
 trimmed    |  fail          | fail             | noop
```
2015-10-28 12:34:03 +09:00
..
legacy Remove all flap counting and inner projection stuff 2015-09-04 17:17:49 +09:00
pulse_util WIP: client side projection store, 1st API op (write), part II 2015-04-03 17:10:52 +09:00
machi_admin_util_test.erl Use psup startup 2015-10-11 23:04:43 -05:00
machi_chain_manager1_converge_demo.erl Write public proj in all_members order only 2015-09-21 15:09:16 +09:00
machi_chain_manager1_pulse.erl machi_chain_manager1_pulse.erl tweaks 2015-07-20 15:08:03 +09:00
machi_chain_manager1_test.erl Fix race #2 2015-10-21 14:45:21 +09:00
machi_cinfo_test.erl Add cluster_info to deps and small callback module 2015-10-19 15:36:05 +09:00
machi_cr_client_test.erl Update read_chunk() PB protocol to return trimmed chunks 2015-10-22 23:11:43 +09:00
machi_csum_table_test.erl Trim command and GC prototype implementation 2015-10-28 12:34:03 +09:00
machi_file_proxy_eqc.erl Trim command and GC prototype implementation 2015-10-28 12:34:03 +09:00
machi_file_proxy_test.erl Trim command and GC prototype implementation 2015-10-28 12:34:03 +09:00
machi_flu1_test.erl Update read_chunk() PB protocol to return trimmed chunks 2015-10-22 23:11:43 +09:00
machi_flu_psup_test.erl Update read_chunk() PB protocol to return trimmed chunks 2015-10-22 23:11:43 +09:00
machi_partition_simulator.erl Hrm, fewer deadlocks, but lots of !@#$! mystery hangs @ startup & teardown 2015-07-16 20:13:48 +09:00
machi_pb_high_client_test.erl Trim command and GC prototype implementation 2015-10-28 12:34:03 +09:00
machi_pb_test.erl WIP: giant hairball 11 2015-06-29 16:24:57 +09:00
machi_plist_test.erl Trim command and GC prototype implementation 2015-10-28 12:34:03 +09:00
machi_projection_store_test.erl Make test start up more reliable 2015-10-08 15:49:22 -05:00
machi_projection_test.erl Bugfix: machi_projection:new/6 derp: argument order mistake 2015-07-10 16:41:28 +09:00
machi_proxy_flu1_client_test.erl Update read_chunk() PB protocol to return trimmed chunks 2015-10-22 23:11:43 +09:00