On Mon, Oct 21, 2019 at 1:02 PM Changwei Ge <chge@xxxxxxxxxxxxxxxxx> wrote:
Hi Amar,
Thank you very much for your quick reply :-)
On 2019/10/21 2:44 下午, Amar Tumballi wrote:
>
>
> On Mon, Oct 21, 2019 at 11:58 AM Changwei Ge <chge@xxxxxxxxxxxxxxxxx
> <mailto:chge@xxxxxxxxxxxxxxxxx>> wrote:
>
> Hi,
>
> I am recently working on optimizing inode searching/getting/putting
> concurrency. Before the experiment/trial goes, I would like to get
> fully
> understand what the usage of several lists of inode table, especially
> for 'invalidate list', since the major difficulty making inode
> searching
> run concurrently is that We have to move inode from one list to the
> other and modify some attributes against inode table.
> After reading corresponding code, it seems that inode table 'invalidate
> list' is only retrieved when destroying inode
> table(inode_table_destroy).
>
> Can someone help explain the list usage/purpose of 'invalidate list'?
>
>
> 'invalidate_list' is used only in client side. The patch which got it is
> below:
>
> https://github.com/gluster/glusterfs/commit/d49b41e817d592c1904b6f01716df6546dad3ebe
>
>
> Hope this gives some idea.
Cool, this helps me to understand more deeply on inode table.
I will check out other related commits as well.
>
> Happy to help. If there is an interest, we can even have a video
> conference for all interested developers to discuss inode table, and
> detail out how it is done.
>
Ack.
As I think that inode table(how we manage inode/dentry) is one of the
most critical parts of a certain type of FS, we should consider and
design carefully hence run it efficiently.
What I can see from glusterfs HEAD code is that we might have many
locking contentions and burden too much logic into inode_[un]ref().
This is true. And I tried couple of approaches. Couldn't get to take it to completion earlier.
So how can we arrange a video conference and have a further discussion?
Open for suggestions. We have weekly Community meeting, which can be extended to talk about this.
Thanks,
Changwei
> For getting complete history of changes to inode.c (from
> https://github.com/amarts/glusterfs/commit/72db44413ce4686b465c29ea8383fa4f09f53a76),
> you can clone github.com/amarts/glusterfs
> <http://github.com/amarts/glusterfs> and see that over time what changes
> got into the file... 'git log libglusterfs/src/inode.c' gives an idea.
>
> Regards,
> Amar
>
>
>
> Thanks,
> Changwei
>
_______________________________________________ Community Meeting Calendar: APAC Schedule - Every 2nd and 4th Tuesday at 11:30 AM IST Bridge: https://bluejeans.com/118564314 NA/EMEA Schedule - Every 1st and 3rd Tuesday at 01:00 PM EDT Bridge: https://bluejeans.com/118564314 Gluster-devel mailing list Gluster-devel@xxxxxxxxxxx https://lists.gluster.org/mailman/listinfo/gluster-devel