Hi all, As we move forward, in order to fix the limitations with current trash translator we are planning to replace the existing criteria for trashed files inside trash directory with a general flat hierarchy as described in the following sections. Please have your thoughts on following design considerations.
Current implementation ====================== * Trash translator resides on glusterfs server stack just above posix. * Trash directory (.trashcan) is created during volume start and is visible under root of the volume. * Each trashed file is moved (renamed) to trash directory with an appended time stamp in the file name. * Exact directory hierarchy (w.r.t the root of volume) is maintained inside trash directory whenever a file is deleted/truncated from a directory Outstanding issues ================== * Since renaming occurs at the server side, client-side is unaware of trash doing rename or create operations. * As a result files/directories may not be visible from mount point. * Files/Directories created from from trash translator will not have gfid associated with it until lookup is performed. Proposed Flat hierarchy ======================= * Instead of creating the whole directory under trash, we will rename the file and place it directly under trash directory (of course with appended time stamp). * Directory hierarchy can be stored via either of the following two approaches: (a) File name will contain the whole path with time stamp appended (b) Store whole hierarchy as an xattr Other enhancements ================== * Create the trash directory only when trash xlator is enabled. * Operations such as unlink, rename etc will be prevented on trash directory only when trash xlator is enabled. * A new trash helper translator on client side(loaded only when trash is enabled) to resolve split brain issues with truncation of files. * Restore files from trash with the help of an explicit setfattr call. Thanks & Regards, -Anoop C S -Jiffin Tony Thottan _______________________________________________ Gluster-devel mailing list Gluster-devel@gluster.org http://www.gluster.org/mailman/listinfo/gluster-devel