+
+
+ Machi
+ | CORFU
+
+ |
+ Writes & reads may be on byte boundaries
+ | Wries & reads must be on page boundaries, e.g. 4 or 8 KBytes, to
+align with server storage based on flash NVRAM/solid state disk (SSD).
+
+ |
+ Provides multiple "logs", where each log has a name and is
+appended to & read from like a file. A read operation requires a 3-tuple:
+file name, starting byte offset, number of bytes.
+ | Provides a single "log". A read operation requires only a
+1-tuple: the log page number. (A protocol option exists to
+request multiple pages in a single read query?)
+
+ |
+ Offers service in either strongly consistent mode or eventually
+consistent mode.
+ | Offers service in strongly consistent mode.
+
+ |
+ May be deployed on solid state disk (SSD) or Winchester hard disks.
+ | Designed for use with solid state disk (SSD) but can also be used
+with Winchester hard disks (with a performance penalty if used as
+suggested by use cases described by the CORFU papers).
+
+ |
+ All Machi file data is protected by SHA-1 checksums generated by
+the client prior to writing by Machi servers.
+ | Depending on server & flash device capabilities, each data page
+may be protected by a checksum (calculated independently by each
+server rather than the client).
+
+ |
+
See also: the "Recommended reading & related work" and "References"
sections of the
-[Machi high level design doc](./doc/high-level-machi.pdf)
+[Machi high level design doc](https://github.com/basho/machi/doc/high-level-machi.pdf)
for pointers to the MSR papers related to CORFU.
Machi does not implement Tango directly. (Not yet, at least.)
@@ -237,3 +429,139 @@ However, there is a prototype implementation included in the Machi
source tree. See
[the prototype/tango source code directory](https://github.com/basho/machi/tree/master/prototype/tango)
for details.
+
+