Zbr's days.
August
Sun Mon Tue Wed Thu Fri Sat
     
11
 
2007
Months
Aug

About TODO Blog RSS Old blog Projects Gallery Notes

Sat, 11 Aug 2007

Initial implementation of the resync code is ready.

It does not yet completely resyncs, but already fetches data from remote node according to notsynced blocks bitmap. There is a small issue with recovery - each block fetching completion can happen in interrupt context (when data is fetched from local node), so it is impossible to requeue request there, since generic_make_request() can sleep, so this work must be postponed to worker thread and processed requests must be added into backlog queue in the ready completion callback. After this task is completed, I will release new version of the distributed storage subsystem with mirroring support between arbitrary number of nodes.
There is a problem with local storage - when block reading fails for local node, right now there is no way to repeat the same reading from different node, so upper layer must repeat it itself (error is retured). Reading failures from remote nodes are handled correctly. Writing is always performed for all (currently accessible) nodes.
I also want to test how it will scale to thousand of nodes in linear set for example and mirror of each node to another couple to make things harder.

Likely it will happen tomorrow. Stay tuned.

/devel/dst :: Link / Comments (5)