Skip to content
Masanori Itoh edited this page Nov 27, 2018 · 15 revisions

txfs関連メモ

Notes

Filesystem Consistency

Implementation

おもったよりも ext4/jbd2以外をいじってあるようだ。元の diff 自体は -Nru でとってある。

$ egrep ^diff   txfs-fs.diff  | awk '{print $4;}'
txfs/linux-3.18.22-mod/fs/Kconfig
txfs/linux-3.18.22-mod/fs/Makefile

txfs/linux-3.18.22-mod/fs/libfs.c

txfs/linux-3.18.22-mod/fs/attr.c
txfs/linux-3.18.22-mod/fs/bad_inode.c
txfs/linux-3.18.22-mod/fs/block_dev.c
txfs/linux-3.18.22-mod/fs/buffer.c
txfs/linux-3.18.22-mod/fs/dcache.c
txfs/linux-3.18.22-mod/fs/dcookies.c
txfs/linux-3.18.22-mod/fs/drop_caches.c
txfs/linux-3.18.22-mod/fs/file.c
txfs/linux-3.18.22-mod/fs/fs-writeback.c
txfs/linux-3.18.22-mod/fs/inode.c
txfs/linux-3.18.22-mod/fs/internal.h
txfs/linux-3.18.22-mod/fs/namei.c
txfs/linux-3.18.22-mod/fs/namespace.c
txfs/linux-3.18.22-mod/fs/notify/fsnotify.c
txfs/linux-3.18.22-mod/fs/notify/inode_mark.c
txfs/linux-3.18.22-mod/fs/open.c
txfs/linux-3.18.22-mod/fs/posix_acl.c
txfs/linux-3.18.22-mod/fs/read_write.c
txfs/linux-3.18.22-mod/fs/stack.c
txfs/linux-3.18.22-mod/fs/stat.c
txfs/linux-3.18.22-mod/fs/sync.c

txfs/linux-3.18.22-mod/fs/user_tx.c
txfs/linux-3.18.22-mod/fs/file_memlog.c
txfs/linux-3.18.22-mod/fs/namei_memlog.c
txfs/linux-3.18.22-mod/fs/inode_memlog.c
txfs/linux-3.18.22-mod/fs/dcache_memlog.c
txfs/linux-3.18.22-mod/fs/dcache_memlog.h

txfs/linux-3.18.22-mod/fs/memlog/dcache.c
txfs/linux-3.18.22-mod/fs/memlog/Kconfig
txfs/linux-3.18.22-mod/fs/memlog/log.c
txfs/linux-3.18.22-mod/fs/memlog/log.h
txfs/linux-3.18.22-mod/fs/memlog/Makefile
txfs/linux-3.18.22-mod/fs/memlog/page.c
txfs/linux-3.18.22-mod/fs/memlog/page_conflict.c


txfs/linux-3.18.22-mod/fs/jbd2/commit.c
txfs/linux-3.18.22-mod/fs/jbd2/journal.c
txfs/linux-3.18.22-mod/fs/jbd2/transaction.c

txfs/linux-3.18.22-mod/fs/ext4/ext4.h
txfs/linux-3.18.22-mod/fs/ext4/ext4_jbd2.c
txfs/linux-3.18.22-mod/fs/ext4/ext4_jbd2.h
txfs/linux-3.18.22-mod/fs/ext4/ext4_memlog.c
txfs/linux-3.18.22-mod/fs/ext4/ext4_memlog.h
txfs/linux-3.18.22-mod/fs/ext4/extents_status.c
txfs/linux-3.18.22-mod/fs/ext4/file.c
txfs/linux-3.18.22-mod/fs/ext4/fsync.c
txfs/linux-3.18.22-mod/fs/ext4/ialloc.c
txfs/linux-3.18.22-mod/fs/ext4/inode.c
txfs/linux-3.18.22-mod/fs/ext4/Makefile
txfs/linux-3.18.22-mod/fs/ext4/namei.c
txfs/linux-3.18.22-mod/fs/ext4/super.c
txfs/linux-3.18.22-mod/fs/ext4/super_memlog.c



$ egrep ^diff   txfs-arch-x86.diff  | awk '{print $4;}'
txfs/linux-3.18.22-mod/arch/x86/configs/x86_64_defconfig
txfs/linux-3.18.22-mod/arch/x86/syscalls/syscall_64.tbl

新規分を検出...

Only in txfs/linux-3.18.22-mod/fs: dcache_memlog.c
Only in txfs/linux-3.18.22-mod/fs: dcache_memlog.h
Only in txfs/linux-3.18.22-mod/fs/ext4: ext4_memlog.c
Only in txfs/linux-3.18.22-mod/fs/ext4: ext4_memlog.h
Only in txfs/linux-3.18.22-mod/fs/ext4: super_memlog.c
Only in txfs/linux-3.18.22-mod/fs: file_memlog.c
Only in txfs/linux-3.18.22-mod/fs: inode_memlog.c
Only in txfs/linux-3.18.22-mod/fs: memlog
Only in txfs/linux-3.18.22-mod/fs: namei_memlog.c
Only in txfs/linux-3.18.22-mod/fs: user_tx.c
Only in txfs/linux-3.18.22-mod/include/linux: memlog_constants.h
Only in txfs/linux-3.18.22-mod/include/linux: memlog.h



References

  1. https://dl.acm.org/citation.cfm?id=2522726
  2. https://dl.acm.org/citation.cfm?id=2522724
  3. OdeFS: A File System Interface to an Object-Oriented Database
  4. TxFS: Leveraging File-System Crash Consistency to Provide ACID Transactions
  5. https://www.usenix.org/conference/atc15/technical-session/presentation/min
  6. All File Systems Are Not Created Equal: On the Complexity of Crafting Crash-Consistent Applications
  7. https://dl.acm.org/citation.cfm?id=1855752
  8. Windows Internals
  9. Isotope: Transactional Isolation for Block Storage
  10. https://www.usenix.org/conference/fast-09/enabling-transactional-file-access-lightweight-kernel-extensions
  11. Failure-Atomic Updates of Application Data in a Linux File System
  12. Extending ACID semantics to the file system

File System Consistency