Hi, Konstantin, currently we work on IGFS failovers and reliability, so IGFS should behave correctly in any expected use case. It's not quite clear to me what does "when an _optional_ secondary file system is plugged in" mean. Can you please explain this use case in more detail?
On Thu, Nov 26, 2015 at 5:36 AM, Konstantin Boudnik <c...@apache.org> wrote: > 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. > > > > > > > >