Hi, it's mostly theoretical question. AFAIK some time ago Ceph try to use btrfs transactions, after problem with that, devs try to use (AFAIK) something like: 1. Write to journal 2. fsync() 3. clone data from journal to object file 4. fsync() 5. make snapshot as a transaction end So, why not do something like: 1. Clone file (may be use O_TMPFILE for cloned file?) 2. Make changes 3. fsync() 4. renameat2() to swap the files. 5. unlink() old file AFAIK renameat2() are atomic, so it's can emulate transactions and allow get: 1. Work without use snapshot feature. 2. Don't use journal at all (in theory) P.S. I'm not a dev, just want get a feedback about idea and get more detail understanding of ceph osd backend. Thanks. -- Have a nice day, Timofey. -- To unsubscribe from this list: send the line "unsubscribe ceph-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html