* [Lustre-devel] [RFC] parallel enqueue
@ 2008-02-08 15:31 Alex Zhuravlev
2008-02-08 20:37 ` Peter J Braam
2008-02-11 23:07 ` Eric Barton
0 siblings, 2 replies; 4+ messages in thread
From: Alex Zhuravlev @ 2008-02-08 15:31 UTC (permalink / raw)
To: lustre-devel
Hi,
in some cases (truncate, append) we still use serialized enqueue
when all locks have to be enqueued synchronously one by one.
what if we could mark all locks issued by single client with some
unique tag (timestamp + nid?), then enqueue them all and then, in
case of conflict, in blocking ast handler compare tag of conflicting
lock with own tag, cancel our granted locks if our tag is greater
than tag of conflicting lock and enqueue them again?
thanks, Alex
^ permalink raw reply [flat|nested] 4+ messages in thread
* [Lustre-devel] [RFC] parallel enqueue
2008-02-08 15:31 [Lustre-devel] [RFC] parallel enqueue Alex Zhuravlev
@ 2008-02-08 20:37 ` Peter J Braam
2008-02-11 23:07 ` Eric Barton
1 sibling, 0 replies; 4+ messages in thread
From: Peter J Braam @ 2008-02-08 20:37 UTC (permalink / raw)
To: lustre-devel
Yes this is a good idea, but probably not extremely urgent.
- Peter -
Alex Zhuravlev wrote:
> Hi,
>
> in some cases (truncate, append) we still use serialized enqueue
> when all locks have to be enqueued synchronously one by one.
>
> what if we could mark all locks issued by single client with some
> unique tag (timestamp + nid?), then enqueue them all and then, in
> case of conflict, in blocking ast handler compare tag of conflicting
> lock with own tag, cancel our granted locks if our tag is greater
> than tag of conflicting lock and enqueue them again?
>
> thanks, Alex
>
>
> _______________________________________________
> Lustre-devel mailing list
> Lustre-devel at lists.lustre.org
> http://lists.lustre.org/mailman/listinfo/lustre-devel
>
^ permalink raw reply [flat|nested] 4+ messages in thread
* [Lustre-devel] [RFC] parallel enqueue
2008-02-08 15:31 [Lustre-devel] [RFC] parallel enqueue Alex Zhuravlev
2008-02-08 20:37 ` Peter J Braam
@ 2008-02-11 23:07 ` Eric Barton
2008-02-12 11:09 ` Alex Zhuravlev
1 sibling, 1 reply; 4+ messages in thread
From: Eric Barton @ 2008-02-11 23:07 UTC (permalink / raw)
To: lustre-devel
This sounds great!
But are there any livelock issues?
> -----Original Message-----
> From: lustre-devel-bounces at lists.lustre.org
> [mailto:lustre-devel-bounces at lists.lustre.org] On Behalf Of
> Alex Zhuravlev
> Sent: 08 February 2008 3:32 PM
> To: lustre-devel at lists.lustre.org
> Subject: [Lustre-devel] [RFC] parallel enqueue
>
> Hi,
>
> in some cases (truncate, append) we still use serialized enqueue
> when all locks have to be enqueued synchronously one by one.
>
> what if we could mark all locks issued by single client with some
> unique tag (timestamp + nid?), then enqueue them all and then, in
> case of conflict, in blocking ast handler compare tag of conflicting
> lock with own tag, cancel our granted locks if our tag is greater
> than tag of conflicting lock and enqueue them again?
>
> thanks, Alex
>
>
> _______________________________________________
> Lustre-devel mailing list
> Lustre-devel at lists.lustre.org
> http://lists.lustre.org/mailman/listinfo/lustre-devel
>
^ permalink raw reply [flat|nested] 4+ messages in thread
* [Lustre-devel] [RFC] parallel enqueue
2008-02-11 23:07 ` Eric Barton
@ 2008-02-12 11:09 ` Alex Zhuravlev
0 siblings, 0 replies; 4+ messages in thread
From: Alex Zhuravlev @ 2008-02-12 11:09 UTC (permalink / raw)
To: lustre-devel
well, the idea is to fallback to serialized enqueue once such
collision is detected: this allow to avoid livelock problem
and rpc storms.
thanks, Alex
Eric Barton wrote:
> This sounds great!
>
> But are there any livelock issues?
>
>> -----Original Message-----
>> From: lustre-devel-bounces at lists.lustre.org
>> [mailto:lustre-devel-bounces at lists.lustre.org] On Behalf Of
>> Alex Zhuravlev
>> Sent: 08 February 2008 3:32 PM
>> To: lustre-devel at lists.lustre.org
>> Subject: [Lustre-devel] [RFC] parallel enqueue
>>
>> Hi,
>>
>> in some cases (truncate, append) we still use serialized enqueue
>> when all locks have to be enqueued synchronously one by one.
>>
>> what if we could mark all locks issued by single client with some
>> unique tag (timestamp + nid?), then enqueue them all and then, in
>> case of conflict, in blocking ast handler compare tag of conflicting
>> lock with own tag, cancel our granted locks if our tag is greater
>> than tag of conflicting lock and enqueue them again?
>>
>> thanks, Alex
>>
>>
>> _______________________________________________
>> Lustre-devel mailing list
>> Lustre-devel at lists.lustre.org
>> http://lists.lustre.org/mailman/listinfo/lustre-devel
>>
>
> _______________________________________________
> Lustre-devel mailing list
> Lustre-devel at lists.lustre.org
> http://lists.lustre.org/mailman/listinfo/lustre-devel
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2008-02-12 11:09 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-02-08 15:31 [Lustre-devel] [RFC] parallel enqueue Alex Zhuravlev
2008-02-08 20:37 ` Peter J Braam
2008-02-11 23:07 ` Eric Barton
2008-02-12 11:09 ` Alex Zhuravlev
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.