TODO updates for machi_flu1.erl based on doc rewriting work

This commit is contained in:
Scott Lystig Fritchie 2015-04-30 15:15:43 +09:00
parent 55492c1cac
commit 9249663ff6

View file

@ -37,13 +37,27 @@
%% %%
%% The FLU is named after the CORFU server "FLU" or "FLash Unit" server. %% The FLU is named after the CORFU server "FLU" or "FLash Unit" server.
%% %%
%% TODO There is one major missing feature in this FLU implementation: %% TODO There is a major missing feature in this FLU implementation:
%% there is no "write-once" enforcement for any position in a Machi %% there is no "write-once" enforcement for any position in a Machi
%% file. At the moment, we rely on correct behavior of the client %% file. At the moment, we rely on correct behavior of the client
%% & the sequencer to avoid overwriting data. In the Real World, %% & the sequencer to avoid overwriting data. In the Real World,
%% however, all Machi file data is supposed to be exactly write-once %% however, all Machi file data is supposed to be exactly write-once
%% to avoid problems with bugs, wire protocol corruption, malicious %% to avoid problems with bugs, wire protocol corruption, malicious
%% clients, etc. %% clients, etc.
%%
%% TODO The per-file metadata tuple store is missing from this implementation.
%%
%% TODO Section 4.1 ("The FLU") of the Machi design doc suggests that
%% the FLU keep track of the epoch number of the last file write (and
%% perhaps last metadata write), as an optimization for inter-FLU data
%% replication/chain repair.
%%
%% TODO Section 4.2 ("The Sequencer") says that the sequencer must
%% change its file assignments to new & unique names whenever we move
%% to wedge state. This is not yet implemented. In the current
%% Erlang process scheme (which will probably be changing soon), a
%% simple implementation would stop all existing processes that are
%% running run_seq_append_server().
-module(machi_flu1). -module(machi_flu1).