FREE_ALL locks

New Message Reply About this list Date view Thread view Subject view Author view Attachment view

From: Aleksandr Ryabin (kengr@ftp.com)
Date: 08/14/98-11:36:37 PM Z


Date: Sat, 15 Aug 1998 00:36:37 -0400
Message-Id: <199808150436.AAA11450@mailserv-2high-a>
Subject: FREE_ALL locks
From: kengr@ftp.com (Aleksandr Ryabin)

Speaking of locks.

In order to release all the locks on client crash we need LOCKF
(FREE_ALL) request which is missing from the spec.

LOCKF requires a "Caller ID" (CID) which obviosly has to be static,
that is it will not be changed between a client's reboots. For
example, a machine name (MACHINE) could be used as it used to be.

Since we have now that CID we must pass it with each LOCK reqest
(again, as it used to be). But if CID is MACHINE then we will get too
much overhead. Thus it is much better to have CID to be just a
uint32_t value which is uniquly identifies a client. To achive that
the CID could be generated by a server side off the MACHINE.

CID could be generated and returned during an initial LOCKF call:

typedef utf8string  machinename4;
typedef uint32_t    cid;

LOCKF: machinename4 -> cid

Now, for example, LOCKR request would look:

    (cfh), cid, id, offset, length -> lease

Which leaves 'id' to identify only a lock in the client's space,
(that is it has to be unique only for client which makes a call, but
for all the clients) since the client is uniquely identified by 'cid'.

    Aleks


New Message Reply About this list Date view Thread view Subject view Author view Attachment view

This archive was generated by hypermail 2.1.2 : 03/04/05-01:46:08 AM Z CST