Re: [RFC] various lists on inode table usage?

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

 



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().

So how can we arrange a video conference and have a further discussion?

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





[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