Re: [Gluster-devel] About inode table: client, server and inconsistency

2017-03-25 Thread Nithya Balachandran
On 22 March 2017 at 12:39, Tahereh Fattahi  wrote:

> a university project!
>
> On Sun, Mar 19, 2017 at 11:31 PM, Nithya Balachandran  > wrote:
>
>>
>>
>> On 18 March 2017 at 21:42, Tahereh Fattahi  wrote:
>>
>>> Thank you very much.
>>> Is it possible to change something in server inode table during a fop
>>> from client? (I want to change the dht_layout of a directory when create a
>>> file in that directory, but I dont know how send the changed layout to
>>> servers)
>>>
>>
The changed layout is not stored in the inode table of the servers. Take a
look at dht_fix_layout_of_directory to see what happens to update the
layout.

I have opened an issue to track additional developer specific info in the
glusterdocs. Please feel free to update this with your questions and we
will see that the documentation is updated.

https://github.com/gluster/glusterdocs/issues/225

>
>> Why do you want  to change the layout when files are created?
>>
>> Regards,
>> Nithya
>>
>>>
>>> On Sat, Mar 18, 2017 at 6:36 PM, Amar Tumballi 
>>> wrote:
>>>


 On Thu, Mar 16, 2017 at 10:30 PM, Tahereh Fattahi <
 t28.fatt...@gmail.com> wrote:

> Hi
> Is it correct that each brick has one inode table for itself and each
> client has one inode table that stores anything that is stored in bricks
> inode table?
>
> For a given inode, the contents on client side and server side would
 be very much different between how the volume graph is.


>
> Does all inode tables store in RAM all the time?
>

 Client (mainly fuse) inode table will be in memory all the time, until
 kernel sends a FORGET. Brick side we have limited number of inodes in
 memory. (There is an option called 'lru-limit').


>
>
> When and how client's inode table update (how solve the inconsistency
> problem between clinet and brick inode table that is because of rebalance
> or other client fops) ?
>
>
 All the translators are designed to handle the consistency check in
 their 'lookup()' code, and they should send a response up with error saying
 its a stale inode (ESTALE), upon receiving which, the client inode table
 refreshes its inode, and does a fresh lookup again. This allows us to keep
 the inode table in consistency.

 Hope that answers the question.

 -Amar



> ___
> Gluster-devel mailing list
> Gluster-devel@gluster.org
> http://lists.gluster.org/mailman/listinfo/gluster-devel
>



 --
 Amar Tumballi (amarts)

>>>
>>>
>>> ___
>>> Gluster-devel mailing list
>>> Gluster-devel@gluster.org
>>> http://lists.gluster.org/mailman/listinfo/gluster-devel
>>>
>>
>>
>
___
Gluster-devel mailing list
Gluster-devel@gluster.org
http://lists.gluster.org/mailman/listinfo/gluster-devel

Re: [Gluster-devel] About inode table: client, server and inconsistency

2017-03-22 Thread Tahereh Fattahi
a university project!

On Sun, Mar 19, 2017 at 11:31 PM, Nithya Balachandran 
wrote:

>
>
> On 18 March 2017 at 21:42, Tahereh Fattahi  wrote:
>
>> Thank you very much.
>> Is it possible to change something in server inode table during a fop
>> from client? (I want to change the dht_layout of a directory when create a
>> file in that directory, but I dont know how send the changed layout to
>> servers)
>>
>
> Why do you want  to change the layout when files are created?
>
> Regards,
> Nithya
>
>>
>> On Sat, Mar 18, 2017 at 6:36 PM, Amar Tumballi 
>> wrote:
>>
>>>
>>>
>>> On Thu, Mar 16, 2017 at 10:30 PM, Tahereh Fattahi >> > wrote:
>>>
 Hi
 Is it correct that each brick has one inode table for itself and each
 client has one inode table that stores anything that is stored in bricks
 inode table?

 For a given inode, the contents on client side and server side would be
>>> very much different between how the volume graph is.
>>>
>>>

 Does all inode tables store in RAM all the time?

>>>
>>> Client (mainly fuse) inode table will be in memory all the time, until
>>> kernel sends a FORGET. Brick side we have limited number of inodes in
>>> memory. (There is an option called 'lru-limit').
>>>
>>>


 When and how client's inode table update (how solve the inconsistency
 problem between clinet and brick inode table that is because of rebalance
 or other client fops) ?


>>> All the translators are designed to handle the consistency check in
>>> their 'lookup()' code, and they should send a response up with error saying
>>> its a stale inode (ESTALE), upon receiving which, the client inode table
>>> refreshes its inode, and does a fresh lookup again. This allows us to keep
>>> the inode table in consistency.
>>>
>>> Hope that answers the question.
>>>
>>> -Amar
>>>
>>>
>>>
 ___
 Gluster-devel mailing list
 Gluster-devel@gluster.org
 http://lists.gluster.org/mailman/listinfo/gluster-devel

>>>
>>>
>>>
>>> --
>>> Amar Tumballi (amarts)
>>>
>>
>>
>> ___
>> Gluster-devel mailing list
>> Gluster-devel@gluster.org
>> http://lists.gluster.org/mailman/listinfo/gluster-devel
>>
>
>
___
Gluster-devel mailing list
Gluster-devel@gluster.org
http://lists.gluster.org/mailman/listinfo/gluster-devel

Re: [Gluster-devel] About inode table: client, server and inconsistency

2017-03-19 Thread Nithya Balachandran
On 18 March 2017 at 21:42, Tahereh Fattahi  wrote:

> Thank you very much.
> Is it possible to change something in server inode table during a fop from
> client? (I want to change the dht_layout of a directory when create a file
> in that directory, but I dont know how send the changed layout to servers)
>

Why do you want  to change the layout when files are created?

Regards,
Nithya

>
> On Sat, Mar 18, 2017 at 6:36 PM, Amar Tumballi 
> wrote:
>
>>
>>
>> On Thu, Mar 16, 2017 at 10:30 PM, Tahereh Fattahi 
>> wrote:
>>
>>> Hi
>>> Is it correct that each brick has one inode table for itself and each
>>> client has one inode table that stores anything that is stored in bricks
>>> inode table?
>>>
>>> For a given inode, the contents on client side and server side would be
>> very much different between how the volume graph is.
>>
>>
>>>
>>> Does all inode tables store in RAM all the time?
>>>
>>
>> Client (mainly fuse) inode table will be in memory all the time, until
>> kernel sends a FORGET. Brick side we have limited number of inodes in
>> memory. (There is an option called 'lru-limit').
>>
>>
>>>
>>>
>>> When and how client's inode table update (how solve the inconsistency
>>> problem between clinet and brick inode table that is because of rebalance
>>> or other client fops) ?
>>>
>>>
>> All the translators are designed to handle the consistency check in their
>> 'lookup()' code, and they should send a response up with error saying its a
>> stale inode (ESTALE), upon receiving which, the client inode table
>> refreshes its inode, and does a fresh lookup again. This allows us to keep
>> the inode table in consistency.
>>
>> Hope that answers the question.
>>
>> -Amar
>>
>>
>>
>>> ___
>>> Gluster-devel mailing list
>>> Gluster-devel@gluster.org
>>> http://lists.gluster.org/mailman/listinfo/gluster-devel
>>>
>>
>>
>>
>> --
>> Amar Tumballi (amarts)
>>
>
>
> ___
> Gluster-devel mailing list
> Gluster-devel@gluster.org
> http://lists.gluster.org/mailman/listinfo/gluster-devel
>
___
Gluster-devel mailing list
Gluster-devel@gluster.org
http://lists.gluster.org/mailman/listinfo/gluster-devel

Re: [Gluster-devel] About inode table: client, server and inconsistency

2017-03-18 Thread Tahereh Fattahi
Thank you very much.
Is it possible to change something in server inode table during a fop from
client? (I want to change the dht_layout of a directory when create a file
in that directory, but I dont know how send the changed layout to servers)

On Sat, Mar 18, 2017 at 6:36 PM, Amar Tumballi  wrote:

>
>
> On Thu, Mar 16, 2017 at 10:30 PM, Tahereh Fattahi 
> wrote:
>
>> Hi
>> Is it correct that each brick has one inode table for itself and each
>> client has one inode table that stores anything that is stored in bricks
>> inode table?
>>
>> For a given inode, the contents on client side and server side would be
> very much different between how the volume graph is.
>
>
>>
>> Does all inode tables store in RAM all the time?
>>
>
> Client (mainly fuse) inode table will be in memory all the time, until
> kernel sends a FORGET. Brick side we have limited number of inodes in
> memory. (There is an option called 'lru-limit').
>
>
>>
>>
>> When and how client's inode table update (how solve the inconsistency
>> problem between clinet and brick inode table that is because of rebalance
>> or other client fops) ?
>>
>>
> All the translators are designed to handle the consistency check in their
> 'lookup()' code, and they should send a response up with error saying its a
> stale inode (ESTALE), upon receiving which, the client inode table
> refreshes its inode, and does a fresh lookup again. This allows us to keep
> the inode table in consistency.
>
> Hope that answers the question.
>
> -Amar
>
>
>
>> ___
>> Gluster-devel mailing list
>> Gluster-devel@gluster.org
>> http://lists.gluster.org/mailman/listinfo/gluster-devel
>>
>
>
>
> --
> Amar Tumballi (amarts)
>
___
Gluster-devel mailing list
Gluster-devel@gluster.org
http://lists.gluster.org/mailman/listinfo/gluster-devel

Re: [Gluster-devel] About inode table: client, server and inconsistency

2017-03-18 Thread Amar Tumballi
On Thu, Mar 16, 2017 at 10:30 PM, Tahereh Fattahi 
wrote:

> Hi
> Is it correct that each brick has one inode table for itself and each
> client has one inode table that stores anything that is stored in bricks
> inode table?
>
> For a given inode, the contents on client side and server side would be
very much different between how the volume graph is.


>
> Does all inode tables store in RAM all the time?
>

Client (mainly fuse) inode table will be in memory all the time, until
kernel sends a FORGET. Brick side we have limited number of inodes in
memory. (There is an option called 'lru-limit').


>
>
> When and how client's inode table update (how solve the inconsistency
> problem between clinet and brick inode table that is because of rebalance
> or other client fops) ?
>
>
All the translators are designed to handle the consistency check in their
'lookup()' code, and they should send a response up with error saying its a
stale inode (ESTALE), upon receiving which, the client inode table
refreshes its inode, and does a fresh lookup again. This allows us to keep
the inode table in consistency.

Hope that answers the question.

-Amar



> ___
> Gluster-devel mailing list
> Gluster-devel@gluster.org
> http://lists.gluster.org/mailman/listinfo/gluster-devel
>



-- 
Amar Tumballi (amarts)
___
Gluster-devel mailing list
Gluster-devel@gluster.org
http://lists.gluster.org/mailman/listinfo/gluster-devel

[Gluster-devel] About inode table: client, server and inconsistency

2017-03-16 Thread Tahereh Fattahi
Hi
Is it correct that each brick has one inode table for itself and each
client has one inode table that stores anything that is stored in bricks
inode table?


Does all inode tables store in RAM all the time?


When and how client's inode table update (how solve the inconsistency
problem between clinet and brick inode table that is because of rebalance
or other client fops) ?
___
Gluster-devel mailing list
Gluster-devel@gluster.org
http://lists.gluster.org/mailman/listinfo/gluster-devel