First of all, thanks for joining the community. I am *very* excited about the support of distributed transactions in DAOS. We have been working on this for a long time and completely changed the design in 2017 to properly support serializability and external consistency.
The first use case is to maintain internal consistency of our POSIX layer called DAOS File System (DFS). The integration with distributed transactions allows to improve the POSIX compliance of the DFS library by guaranteeing atomicity of metadata operations like rename(2). No orphans or dandling entries are left behind in case of a client crashing in the middle of a rename operation.
Since POSIX is just yet-another middleware library for us, the same applies to all I/O middleware libraries built natively over DAOS. With the HDF5 DAOS VOL, HDF5 datasets can be updated safely in place without any risk of corrupting the internal HDF5 data structures when the application crashes or quits unexpectedly. One HDF5 operation typically requires multiple KV fetches/updates over the DAOS case. By bundling all those low-level operations under a single DAOS transaction, we can guarantee that the high-level HDF5 operation is atomic. Since the HDF5 DAOS VOL also supports independent operations (e.g. concurrent non-collective HDF5 group creations), the use of DAOS transactions also allow to preserve internal consistency when processing concurrent uncoordinated HDF5 operations. It is used in a similar way in several domain-specific data models that are in the process of being ported to the native DAOS API, bypassing POSIX entirely.
Last but not least, distributed transactions allow to support database semantics directly over DAOS. We are actually in the process of porting a SQL engine over DAOS as a proof of concept. I do believe that this capability combined with computational storage (i.e. running simple data-intensive tasks on DAOS storage nodes directly w/o moving the data over the fabric) will open the door to many interesting opportunities (e.g. query/indexing, …) in areas like data analytics and AI.
<email@example.com> on behalf of Changwoo Min <changwoo@...>
Hi DAOS community!
This e-mail and any attachments may contain confidential material for