1) "Igfs" is an interface with several common file-system methods like
"create", "mkdirs", etc.
2) "IgniteFs" is extension of "Igfs" which adds some advanced methods like
"execute()", "affinity()", etc. I.e. this is more feature-rich "Igfs".

Earlier Igfs and IgniteFs were single interface called "GridGgfs". And
GridGgfs worked with secondary Hadoop FileSystem directly. This approach
had one drawback - GridGgfs wihch is located in core module had references
to Hadoop libraries.
To get rid of these dependencies we had to extract some common file-system
methods from GridGgfs and name them "Igfs". And now secondary file system
is not Hadoop FileSystem, but just another Igfs. And the rest
Ignite-specific rich API is now in "IgniteFs".

On Fri, Feb 27, 2015 at 3:52 PM, Dmitriy Setrakyan <[email protected]>
wrote:

> Now I am even more confused. Why do we have IgniteFs and IGFS APIs? What is
> the point of having Igfs? What is the difference between the two?
>
> D.
>
> On Fri, Feb 27, 2015 at 4:11 AM, Vladimir Ozerov <[email protected]>
> wrote:
>
> > My proposal can be found above:
> > > 1) *Igfs* is left as is - this is base interface;
> > > 2) IgniteFS is renamed to "*IgniteIgfs*", meaning that this is Ignite's
> > implementation of IGFS;
> > > 3) IgfsHadoopFileSystemWrapper is renamed to "*HadoopIgfs*", meaning
> that
> > this another IGFS implementation which works over Hadoop FileSystem;
> > > 4) IgfsHadoopFileSystem is renamed to *IgniteFileSystem*, meaning that
> > this is Ignite's implementation of Hadoop FileSystem API.
> >
> > With such namings we will clearly indicate tow things:
> > - Everything, what ends with "Igfs" is IGFS implementation (IgniteIgfs -
> > our in-memory impl, HadoopIgfs - another impl working over Hadoop
> > FileSystem);
> > - Everything, what has "FileSystem" in name is Hadoop FileSystem
> > implementation (IgniteFileSystem - *Ignite*'s implementation of
> > *FileSystem*
> > ).
> >
> > On Fri, Feb 27, 2015 at 8:44 AM, Dmitriy Setrakyan <
> [email protected]>
> > wrote:
> >
> > > Something definitely smells about the naming here. It is vague and
> > > confusing. If it is only used as a secondary file system configuration,
> > > maybe we should name it as such.
> > >
> > > Can you propose another name?
> > >
> > > D.
> > >
> > > On Fri, Feb 27, 2015 at 12:39 AM, Vladimir Ozerov <
> [email protected]>
> > > wrote:
> > >
> > > > This wrapper is one of Igfs implementations. If user want to
> configure
> > > > secondary Igfs which is backed by Hadoop FileSystem, he should create
> > > that
> > > > "wrapper" and set it as "secondaryFIleSystem" in "IgfsConfiguration".
> > > >
> > > > On Fri, Feb 27, 2015 at 8:32 AM, Dmitriy Setrakyan <
> > > [email protected]>
> > > > wrote:
> > > >
> > > > > Sounds like something is wrong. I am still not clear why should our
> > > users
> > > > > even know about the wrapper. Can you please explain?
> > > > >
> > > > > D.
> > > > >
> > > > > On Thu, Feb 26, 2015 at 8:56 AM, Vladimir Ozerov <
> > [email protected]
> > > >
> > > > > wrote:
> > > > >
> > > > > > IgfsHadoopFileSystem is implementation of FileSystem (Hadoop
> > > > interface).
> > > > > > IgfsHadoopFileSystemWrapper is implementation of Igfs which
> > delegates
> > > > > IGFS
> > > > > > API calls to underlying Hadoop FileSystem.
> > > > > >
> > > > > > On Thu, Feb 26, 2015 at 4:39 PM, Dmitriy Setrakyan <
> > > > > [email protected]>
> > > > > > wrote:
> > > > > >
> > > > > > > Vova,
> > > > > > >
> > > > > > > I agree that it smells. Can you explain again the difference
> > > between
> > > > > > > IgfsHadoopFileSystem and IgfsHadoopFileSystemWrapper?
> > > > > > >
> > > > > > > D.
> > > > > > >
> > > > > > > On Thu, Feb 26, 2015 at 5:21 AM, Vladimir Ozerov <
> > > > [email protected]
> > > > > >
> > > > > > > wrote:
> > > > > > >
> > > > > > > > HI,
> > > > > > > >
> > > > > > > > Currently we have IgfsHadoopFileSystemWrapper class whose
> sole
> > > > > purpose
> > > > > > is
> > > > > > > > to instantiate Hadoop FileSystem and delegate Igfs calls to
> it.
> > > We
> > > > > use
> > > > > > > this
> > > > > > > > class to configure secondary Hadoop file system for Igfs.
> > > > > > > >
> > > > > > > > It seems to me that "Wrapper" is wrong suffix here from user
> > > > > > perspective,
> > > > > > > > as this is not a wrapper, but a functional unit which user
> uses
> > > in
> > > > > > > > configuration. It does not "wraps" anything from user point
> of
> > > > view.
> > > > > > > >
> > > > > > > > Furthermore, we do have public classes IgfsHadoopFileSystem
> > which
> > > > > have
> > > > > > no
> > > > > > > > realtion to IgfsHadoopFileSystemWrapper, what will also
> confuse
> > > > > users.
> > > > > > > >
> > > > > > > > We need to think about another class name here. May be
> > > > > > > > "IgfsHadoopFileSystemDelegator" or something like this?
> > > > > > > >
> > > > > > > > Any thoughts?
> > > > > > > >
> > > > > > > > Vladimir.
> > > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
>

Reply via email to