Description of problem: Original inventor of the idea - Xavier Hernandez <xhernandez> The basic idea is to introduce the notion of transactions into libglusterfs for fops that need to be executed on multiple bricks atomically. This way xlators needing transactions will use a common API. Whether the API uses locks or other mechanisms as a means to ensure atomicity is implementation-dependent and abstracted out. This makes the cluster translators light-weight, and reduces code duplication. It also makes it easy to implement newer translators that might need transactional semantics in some of their fops. This could also enable multiple transactions of a single fop (one txn from AFR and one from DHT, for example) to be serviced by a single lock. Some of the consumers of this framework could be AFR, DHT, EC and sharding. The details are still being worked out. Will post the design once it is ready here and on mailing lists. Version-Release number of selected component (if applicable): How reproducible: Steps to Reproduce: 1. 2. 3. Actual results: Expected results: Additional info:
This feature is moved to https://github.com/gluster/glusterfs/issues/342