diff --git a/lib/obuilder.ml b/lib/obuilder.ml index ed3c9ea1..59b98b63 100644 --- a/lib/obuilder.ml +++ b/lib/obuilder.ml @@ -12,6 +12,7 @@ module Docker = Docker module Btrfs_store = Btrfs_store module Zfs_store = Zfs_store module Rsync_store = Rsync_store +module Xfs_store = Xfs_store module Store_spec = Store_spec module Docker_store = Docker_store diff --git a/lib/xfs_store.mli b/lib/xfs_store.mli index 814560e6..a0870617 100644 --- a/lib/xfs_store.mli +++ b/lib/xfs_store.mli @@ -1,7 +1,11 @@ -(** Store build results using rsync. *) +(** Store builds results using {b XFS} with the reflink feature. + + XFS is intended to behave consistently as it scales to large storage and many files, modern-day XFS was originally from SGI Irix. This store uses the {b reflink} feature in XFS to share blocks between files, to support fast snapshots of directory trees and deduplicate file data for more efficient use of storage hardware. + + For more details on the XFS implementation see {{: https://blogs.oracle.com/linux/post/xfs-data-block-sharing-reflink} XFS - Data Block Sharing (Reflink)} and {{: https://blogs.oracle.com/linux/post/upcoming-xfs-work-in-linux-v48-v49-and-v410-by-darrick-wong} Upcoming XFS Work in Linux v4.8 v4.9 and v4.10+}. *) include S.STORE val create : path:string -> t Lwt.t -(** [create ~path] creates a new xfs store where everything will +(** [create ~path] creates a new XFS store where everything will be stored under [path]. *)