All of lore.kernel.org
 help / color / mirror / Atom feed
* [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.