On Wed, Nov 25, 2015 at 04:54PM, Ivan V. wrote:
> Hi, Konstantin,
> "TRASH" (the name comes from
> org.apache.ignite.internal.processors.igfs.IgfsFileInfo#TRASH_ID Java
> constant) notion is only applicable to primary (IGFS) file system. This is
> a special "folder" that does not have file system path. When IGFS is
> running over a secondary Fs, TRASH also exists in the primary IGFS, but
> does not exist in the secondary Fs.
> In secondary Fs deletion is performed just through the ordinary Fs API. So,
> we *do not* employ any assumption regarding the TRASH existence and
> behavior in the secondary Fs.
> 
> As Dmitriy mentioned above, TRASH in primary Fs is needed for performance
> reasons: with it we delete file with only 1 transaction in Meta cache: we
> do not do any transactions in Data cache.
> (Similar technique is frequently applied frequently in real Fs deletion,
> like mv foo /tmp/ && rm -r /tmp/foo/ .)

I understand. However, I am wary about the potentially funny and inconsistent
cases when an _optional_ secondary file system is plugged in.

Cos

> Currently we have fix of https://issues.apache.org/jira/browse/IGNITE-1679
> that makes PURGE events enabled for all files.
> I still not quite realize how this functionality will be used by customers,
> but now it is repaired: once merged, you will be able to use it.
> 
> On Tue, Nov 24, 2015 at 2:52 AM, Dmitriy Setrakyan <dsetrak...@apache.org>
> wrote:
> 
> > Cos,
> >
> > The main reason soft delete was added is performance. Without soft-delete,
> > the delete operation would have to wait until a file is fully deleted from
> > a folder, which may take time.
> >
> > As far as secondary FS handling it, IGFS does not require a secondary FS,
> > so we should account for cases when IGFS is running stand-alone.
> >
> > Thoughts?
> >
> > D.
> >
> > On Mon, Nov 23, 2015 at 11:00 PM, Konstantin Boudnik <c...@apache.org>
> > wrote:
> >
> > > Let me ask a different question: what's the point of having the concept
> > of
> > > TRASH?
> > >
> > > Here's an example why I think the 'soft' delete would only complicate
> > > thing.
> > > Suppose IGFS is sitting on top of HDFS and both have 'Trash' enabled.
> > Now,
> > > the file is getting soft-deleted from IGFS and is moved to TRASH folder.
> > > But
> > > in HDFS it is also a move to a place which doesn't have any special
> > meaning
> > > for HDFS.
> > >
> > > Even worst, if IFGS TRASH is linked to HDFS .Trash. HDFS has it's own
> > > policy
> > > on how to clean that up, which is likely to be different from that on
> > IGFS.
> > > Often enough, HDFS .Trash is simply disabled. This discrepancy is going
> > to
> > > create a situation when a file should still be in TRASH, but the
> > secondary
> > > FS
> > > has already purged it.
> > >
> > > And what if yet another secondary file system like S3 has yet another
> > > policy
> > > around their own trash, which they don't even have, I believe?
> > >
> > > Where I am going with this is pretty straight forward: let's drop the
> > > soft-delete support and let the secondary FS to deal with it. If there's
> > no
> > > secondary FS configured - the content of deleted file will have to
> > > retrieved
> > > by other means.
> > >
> > > Thoughts?
> > >   Cos
> > >
> > > On Fri, Nov 20, 2015 at 07:15PM, Ivan V. wrote:
> > > > Hi, dev,
> > > > need opinions on the question discussed in
> > > > https://issues.apache.org/jira/browse/IGNITE-1679  (IGFS: Purge event
> > is
> > > > inconsistent).
> > > > In short: in Igfs we have "soft" delete that moves the deleted file or
> > > > folder to special "TRASH" folder.
> > > > Special async worker walks inside TRASH and removes the items
> > > permanently.
> > > > When an item is completely removed, an event of type
> > > > org.apache.ignite.events.EventType#EVT_IGFS_FILE_PURGED  is fired.
> > > > But such events are now fired only for files, and only in case if such
> > > file
> > > > was deleted itself, but not a part of a folder sub-tree. It's quite
> > > obvious
> > > > that such behavior is not quite consistent, so we should either get rid
> > > of
> > > > PURGE events at all, or make them consistent.
> > > > In the latter case it would be good to have answer to the question:
> > what
> > > > are real  use cases when we may need the purge events ? (Now they seem
> > to
> > > > be used in tests only).
> > > > If we don't have such real use cases, are there any objections to get
> > rid
> > > > of the purge events at all?
> > > > Thanks in advance.
> > >
> >

Attachment: signature.asc
Description: Digital signature

Reply via email to