Re: Quota-2

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

 



On 12/20/2015 10:57 PM, Vijaikumar Mallikarjuna wrote:


On Fri, Dec 18, 2015 at 8:28 PM, Shyam <srangana@xxxxxxxxxx
<mailto:srangana@xxxxxxxxxx>> wrote:

    <first off the cuff response>

    On 12/18/2015 04:00 AM, Vijaikumar Mallikarjuna wrote:

        Hi All,

        Here is the summary of discussion we had today on Quota-v2

        Project, user and group quotas will use the same logic of
        accounting the
        usage

        Quota-v2 should be compatible with both DHT-v1 and DHT-v2

        Project quotas will use gfid of the given path as the project-id.
              each inode will have a associated project-id which needs to be
        embedded within inode.
              when creating new file, it will inherit project-id from
        its parent
        inode.
              In case if parent inode doesn't contain project-id, then there
        should be a mechanism to
              find the project-id given a gfid, so back-pointers can
        solve this
        problem


    Why would the parent not contain a project-id? and if it does not
    contain a project-id, why would you need to find a project-id?

    What I can visualize is that, the parent is not yet part of a quota
    project, hence it does not contain a project-id. When this becomes a
    part of some quota restriction it would start getting a quota. This
    seems to be one case where the project-id would be missing, but by
    choice.

    What am I missing here?

There are two scenarios where project-id can be missing
1) When quota is enabled on a pre-existing data,

I would assume there would be a sub-tree walk here that marks the existing data with the project-id and hence start accounting. As a result in this case we should not need to traverse when creating an entry just to hunt for a possible project-id, the sub-tree walk would get to this entry during its walk.

2) Directory created when one of the brick is down

Again, this should be a part of the heal, i.e when the directory is created on the brick that was down, it should get marked with the right inode information (project-id in this case). Further objects can be created under this directory only when the directory itself is created, as a result, if we tackle the problem during directory heal/creation on the down brick, we should not have to traverse backward to get the potential project-id.

Thoughts?


Thanks,
Vijay


              which xlator DHT/marker will set the project-id in the
        inode? this
        needs to be decided
        User and group quotas will use uid and gid to account the usage

        Quota has below set of operation which should be performed as a
        single
        transaction
                read current size
                read current contribution
                update delta to the contribution
                update size to user/project inode
        In the current directory quota, to make this transaction crash
        consistent we use a mechanism of setting dirty flag in a parent
        inode.
        This mechanism will not work efficiently with project quotas.
        Journaling
        will be the good solution for crash-consistency.

        Quota 2 depends on:
                back-pointers: to find project-id from gfid
                journaling: for crash consistency of accounting


        Thanks,
        Vijay


_______________________________________________
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