Re: Dht readdir filtering out names

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





On 09/30/2016 03:02 PM, Poornima Gurusiddaiah wrote:
In gfapi, we pass down readdirp, irrespective of whether the application
called readdir/readdirp.
Hence the behaviour will be same for samba and Ganesha i suppose.

But in gfapi, I see clear distinction for readdir and readdirp calls


>>>>
        if (plus)
                ret = syncop_readdirp (subvol, fd, 131072, glfd->offset,
                                       &entries, NULL, NULL);
        else
                ret = syncop_readdir (subvol, fd, 131072, glfd->offset,
                                      &entries, NULL, NULL);
        DECODE_SYNCOP_ERR (ret);
<<<<

And nfs-ganesha doesn't set 'plus' boolean atm. So I assume think it doesn't get converted to readdirp. Or is it that syncop_readdir is converted to readdirp in any of the underlying xlators?

Thanks,
Soumya


Regards,
Poornima

------------------------------------------------------------------------

    *From: *"Pranith Kumar Karampuri" <pkarampu@xxxxxxxxxx>
    *To: *"Raghavendra Gowdappa" <rgowdapp@xxxxxxxxxx>, "Poornima
    Gurusiddaiah" <pgurusid@xxxxxxxxxx>, "Raghavendra Talur"
    <rtalur@xxxxxxxxxx>, "Soumya Koduri" <skoduri@xxxxxxxxxx>
    *Cc: *"Shyam Ranganathan" <srangana@xxxxxxxxxx>, "Nithya
    Balachandran" <nbalacha@xxxxxxxxxx>, "Gluster Devel"
    <gluster-devel@xxxxxxxxxxx>
    *Sent: *Friday, September 30, 2016 12:38:06 AM
    *Subject: *Re: Dht readdir filtering out names

    Does samba/gfapi/nfs-ganesha have options to disable readdirp?

    On Fri, Sep 30, 2016 at 10:04 AM, Pranith Kumar Karampuri
    <pkarampu@xxxxxxxxxx <mailto:pkarampu@xxxxxxxxxx>> wrote:

        What if the lower xlators want to set the entry->inode to NULL
        and clear the entry->d_stat to force a lookup on the name? i.e.
        gfid-split-brain/ia_type mismatches.

        On Fri, Sep 30, 2016 at 10:00 AM, Raghavendra Gowdappa
        <rgowdapp@xxxxxxxxxx <mailto:rgowdapp@xxxxxxxxxx>> wrote:



            ----- Original Message -----
            > From: "Raghavendra Gowdappa" <rgowdapp@xxxxxxxxxx <mailto:rgowdapp@xxxxxxxxxx>>
            > To: "Pranith Kumar Karampuri" <pkarampu@xxxxxxxxxx <mailto:pkarampu@xxxxxxxxxx>>
            > Cc: "Shyam Ranganathan" <srangana@xxxxxxxxxx <mailto:srangana@xxxxxxxxxx>>, "Nithya
            Balachandran" <nbalacha@xxxxxxxxxx
            <mailto:nbalacha@xxxxxxxxxx>>, "Gluster Devel"
            > <gluster-devel@xxxxxxxxxxx <mailto:gluster-devel@xxxxxxxxxxx>>
            > Sent: Friday, September 30, 2016 9:58:34 AM
            > Subject: Re: Dht readdir filtering out names
            >
            >
            >
            > ----- Original Message -----
            > > From: "Pranith Kumar Karampuri" <pkarampu@xxxxxxxxxx
            <mailto:pkarampu@xxxxxxxxxx>>
            > > To: "Raghavendra Gowdappa" <rgowdapp@xxxxxxxxxx
            <mailto:rgowdapp@xxxxxxxxxx>>
            > > Cc: "Shyam Ranganathan" <srangana@xxxxxxxxxx
            <mailto:srangana@xxxxxxxxxx>>, "Nithya Balachandran"
            > > <nbalacha@xxxxxxxxxx <mailto:nbalacha@xxxxxxxxxx>>,
            "Gluster Devel"
            > > <gluster-devel@xxxxxxxxxxx
            <mailto:gluster-devel@xxxxxxxxxxx>>
            > > Sent: Friday, September 30, 2016 9:53:44 AM
            > > Subject: Re: Dht readdir filtering out names
            > >
            > > On Fri, Sep 30, 2016 at 9:50 AM, Raghavendra Gowdappa
            <rgowdapp@xxxxxxxxxx <mailto:rgowdapp@xxxxxxxxxx>>
            > > wrote:
            > >
            > > >
            > > >
            > > > ----- Original Message -----
            > > > > From: "Pranith Kumar Karampuri" <pkarampu@xxxxxxxxxx
            <mailto:pkarampu@xxxxxxxxxx>>
            > > > > To: "Raghavendra Gowdappa" <rgowdapp@xxxxxxxxxx
            <mailto:rgowdapp@xxxxxxxxxx>>
            > > > > Cc: "Shyam Ranganathan" <srangana@xxxxxxxxxx
            <mailto:srangana@xxxxxxxxxx>>, "Nithya Balachandran" <
            > > > nbalacha@xxxxxxxxxx <mailto:nbalacha@xxxxxxxxxx>>,
            "Gluster Devel"
            > > > > <gluster-devel@xxxxxxxxxxx
            <mailto:gluster-devel@xxxxxxxxxxx>>
            > > > > Sent: Friday, September 30, 2016 9:15:04 AM
            > > > > Subject: Re: Dht readdir filtering out names
            > > > >
            > > > > On Fri, Sep 30, 2016 at 9:13 AM, Raghavendra Gowdappa <
            > > > rgowdapp@xxxxxxxxxx <mailto:rgowdapp@xxxxxxxxxx>>
            > > > > wrote:
            > > > >
            > > > > > dht_readdirp_cbk has different behaviour for
            directories and files.
            > > > > >
            > > > > > 1. If file, pick the dentry (passed from subvols
            as part of readdirp
            > > > > > response) if the it corresponds to data file.
            > > > > > 2. If directory pick the dentry if readdirp
            response is from
            > > > hashed-subvol.
            > > > > >
            > > > > > In all other cases, the dentry is skipped and not
            passed to higher
            > > > > > layers/application. To elaborate, the dentries
            which are ignored are:
            > > > > > 1. dentries corresponding to linkto files.
            > > > > > 2. dentries from non-hashed subvols corresponding
            to directories.
            > > > > >
            > > > > > Since the behaviour is different for different
            filesystem objects,
            > > > > > dht
            > > > > > needs ia_type to choose its behaviour.
            > > > > >
            > > > > > ----- Original Message -----
            > > > > > > From: "Pranith Kumar Karampuri"
            <pkarampu@xxxxxxxxxx <mailto:pkarampu@xxxxxxxxxx>>
            > > > > > > To: "Shyam Ranganathan" <srangana@xxxxxxxxxx
            <mailto:srangana@xxxxxxxxxx>>, "Raghavendra
            > > > Gowdappa" <
            > > > > > rgowdapp@xxxxxxxxxx <mailto:rgowdapp@xxxxxxxxxx>>,
            "Nithya Balachandran"
            > > > > > > <nbalacha@xxxxxxxxxx <mailto:nbalacha@xxxxxxxxxx>>
            > > > > > > Cc: "Gluster Devel" <gluster-devel@xxxxxxxxxxx
            <mailto:gluster-devel@xxxxxxxxxxx>>
            > > > > > > Sent: Friday, September 30, 2016 8:39:28 AM
            > > > > > > Subject: Dht readdir filtering out names
            > > > > > >
            > > > > > > hi,
            > > > > > >        In dht_readdirp_cbk() there is a check
            about skipping files
            > > > > > without
            > > > > > > ia_type. Could you help me understand why this
            check is added?
            > > > > > > There
            > > > are
            > > > > > > times when users have to delete gfid of the
            entries and trigger
            > > > something
            > > > > > > like 'find . | xargs stat' to heal the gfids.
            This case would fail
            > > > if we
            > > > > > > skip entries without gfid, if the lower xlators
            don't send stat
            > > > > > information
            > > > > > > for them.
            > > > > >
            > > > > > Probably we can make readdirp_cbk not rely on
            ia_type and pass _all_
            > > > > > dentries received by subvols to application
            without filtering.
            > > > > > However
            > > > we
            > > > > > should make this behaviour optional and use this
            only for recovery
            > > > setups.
            > > > > > If we don't rely on ia_type (during non error
            scenarios),
            > > > > > applications
            > > > end
            > > > > > up seeing duplicate dentries in readdir listing.
            > > > > >
            > > > >
            > > > > That means dht_readdir() gives duplicate entries? As
            per the code it
            > > > seems
            > > > > like it...
            > > >
            > > > No. It follows the filtering logic of "pick dentry
            only from hashed
            > > > subvol". This logic doesn't need ia_type. Now, that
            you brought the topic
            > > > of dht_readdir, I've another solution for your use
            case (Basically don't
            > > > use readdirp :) ):
            > > >
            > > > 1. mount glusterfs with "--use-readdirp=no" option.
            > > > 2. disable md-cache/stat-prefetch as it converts all
            readdir calls into
            > > > readdirp calls
            > > >
            > >
            > > Probably the ones in dht as well? i.e. use-readdirp option.
            >
            > No. dht doesn't convert a readdir into readdirp. The
            option you are referring
            > to might be "readdir-optimize" which is something different.

            Sorry. I was wrong. There is an option in dht too, to force
            using readdirp. As you said, we should disable that too.

            >
            > >
            > >
            > > >
            > > > Use this only for recovery setups :).
            > > >
            > > > >
            > > > >
            > > > > >
            > > > > > >
            > > > > > > --
            > > > > > > Pranith
            > > > > > >
            > > > > >
            > > > > > regards,
            > > > > > Raghavendra
            > > > > >
            > > > >
            > > > >
            > > > >
            > > > > --
            > > > > Pranith
            > > > >
            > > >
            > >
            > >
            > >
            > > --
            > > Pranith
            > >
            >




        --
        Pranith




    --
    Pranith


_______________________________________________
Gluster-devel mailing list
Gluster-devel@xxxxxxxxxxx
http://www.gluster.org/mailman/listinfo/gluster-devel



[Index of Archives]     [Gluster Users]     [Ceph Users]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux