l||||l|||||||||||||||||||||||||||||||l|||||||||l|||||||||||||||||||||||||l| USOORE42578E

(19) United States (12) Reissued Patent

(10) Patent Number:

High et al. (54)

US RE42,578 E

(45) Date of Reissued Patent:

SYNCHRONIZATION USING COMMITMENT

6,449,627 B1* 6,526,416 B1* 6,970,883 B2 *

(75) Inventors: Darrell F. High, Arlington, TX (US); Robert S. Shaw, Cupertino, CA (US)

Jul. 26, 2011

9/2002 Baer et a1. ................... .. 715/514 2/2003 11/2005

Long ......... .. 707/202 Ku et a1. ................. .. 707/103Y

OTHER PUBLICATIONS Papadopoulos, C.V.; discloses heterogeneity of distributed databases

(73) ASSignee: Herett'PaCkard Development

integrating commit protocols; Distributed Computing Systems,

Company, L-P-, HOUSIOII, TX (Us)

1994., Proceedings of the 14th International Conference; Jun. 21-24, 1994; pp. 380-386.*

(21)

App1_ NQ_; 10/788,046

Inseon Lee; Yeom, H.Y. discloses a single phase distributed commit protocol for main memory database systems Parallel and Distributed

-

(22) Flled:

Processin

Feb“ 26’ 2004

Related US. Patent Documents Reissue of: (64) patent NO; 6,601,069 Issued: Jul. 29, 2003

(51)

S m 0sium., Proceedin s International, IPDPS 2002,

AbstractsindyClg-ROM, 2002; pp. 1%1-21.* * Cited by examiner

Primary Examiner * Sana Al-Hashemi

Appl. N0.:

09/738,119

(57)

Filed;

Dec_ 15, 2000

A method of sharing a ?le object among a plurality of com peting processes, the ?le object having a content that at least one competing process may need to adjust so that the ?le is

Int CL

G0 6F 17/00

(200601)

ABSTRACT

suitable for the operating environment of the competing pro cess. To help make an adjustment, the ?le object includes a

(52) (58)

U's‘ Cl“ "" " 707/102; 707/100; 707/101; 707/103 R Field Of Classi?cation Search ................ .. 707/8, 9,

state attribute that indicates Whether or not the ?le is commit ted and Whether the ?le is in an inconsistent State' If the ?le

707/10, 103 Rs 200: 201 see application ?le for complete seareh hiSIOI'Y-

contents are suitable for the speci?c process and the ?le object is not committed, the ?le can be committed by the speci?c process. If the ?le contents are not suitable for the speci?c

(56)

References Cited

process and the ?le object is not committed, the ?le is locked,

U-S~ PATENT DOCUMENTS

cess and then unlocked. This process improves concurrency

set to inconsistent, adjusted, committed by the speci?c pro 6,064,382 A *

5/2000 Diedrich et al, ,,,,,,,,,,,, ,, 715/700

6,088,694 A *

7/2000

6,301,601 B1 *

of the competing processes and reduces message overhead.

Burns et al. .... ..

10/2001 Helland et a1. .............. .. 709/101

23 Claims, 11 Drawing Sheets

so

SEND



140

LOCKUNLESSCOMMITTED REQUEST TO DISK PROCESSOR 82

. __________________________

I

:

34

IN D/SKPROCESS



_________________________ -.

141

IF FILE LOCKED, PUT REQUEST

;

I

I

ASIDE UNTIL FILE IS UNLOCKED

:

.

I

I I CONTENT

I

SUWABLE?

I

NO

144

I

/

I

146

,

|

UNLOCK THE m»;

5

I

f

2

LOCK FILE FOR

LOCK FILE FOFI

:

SPECIFIC cuem

SPECIFIC cuem

;

I

PROCESS

PROCESS

.;

r 145

i

I

REPLY TO CLIENT

I

;

r 147

I r149

/ 94

FIEPLY TO CLIENT

WITH 11100115151911

WITH 'COMMITTED‘

I

STATUS

STATUS

I

,

|

14s

g

_

i

-

,

/150

I RE‘HEAD FILE DATA I IRE-READ FILE Mil l

;i

REPLY TO CLIENT

I____________________________________

as

UNLOCK THE FILE J

INCONSISTENT

I

-

STATUS

+1

COMMITTEQ

:

1 WITH ‘UNCOMMITTED' WHITE DATA



UNCOMMITTED

'

YES

I ;

142

US. Patent

Jul. 26, 2011

Sheet 1 0f 11

i

US RE42,578 E

38

1} U

l/O 2

WEB I18 3632 2624282230

D r12C

l/O

FIG.1

44

“Ea

kw

421D

40

/- 16

1

l/O 20

34

US. Patent

Jul. 26, 2011

Sheet 2 or 11

[60

US RE42,578 E

[62

CENTRAL

[68

MEMORY

PROCESSOR

SUBSYSTEM

r66

K64 l/O SUBSYSTEM

/ 7‘)

72

\

To STORAGE SYSTEM

'iO,i2,14,i6,18

Previous Design When N0 Modification Needed Client



Processor '\ Open

f

\

,i

_

\\ Lock x

_‘

’3— \\Read f?

x

114 ,*

104'-_\\ 1061/ 108 ~ 110’} 112% ‘i

,’

‘4. ,' Open ID Disk

‘i

,’

‘i‘ ,' Granted

'7

f1 00

\\ Unlock \

I" 116.__\ \

{File

\l ,' Data

\

l

Locked ........................................................... ..

PTOCQSSOI'

FIG. 4

102

US. Patent

Jul. 26, 2011

Sheet 3 0f 11

US RE42,578 E

OPEN FILE

kso

LOCK FILE

’"82

READ ATTRIBUTEs & DATA ’84

CONTENT SUITABLE?

YES

WRITE DATA

Ld

“'92

UNLOCK THE FILE

UNLOCK THE FILE

FIG. 3

US. Patent

Jul. 26, 2011

Sheet 4 or 11

US RE42,578 E

/-120 OPEN FILE

READ ATTRIBUTES & DATA

FIG 5

122 COMMITTED?

YES

126 CONTENT SUITABLE & NOT

INCONSISTENT?

PERFORM A

LOCKUNLESSCOMMITTED OPERATION

f128 PERFORM A

COMMITIFUNCOMMITTED OPERATION

3

I PERFORM A SETINCONSISTENT OPERATION

/132

I

/1 34

124

ADJUST CONTENT OF FILE OBJECT V PERFORM A COMMITANDUNLOCK OPERATION

l

CONTENT SUITABLE?

YES

V136

NO

> SUCCESS

FAILURE

US. Patent

Jul. 26, 2011

Sheet 5 or 11

US RE42,578 E

FIG. 6A SEND

’”

14D

LOCKUNLESSCOMMITTED REQUEST TO DISK PROCESSOR

I -------------------------- -~I ----------------------: : ;

IN ISK ROCESS ——D—i——-

IF FILE LOCKED, PUT REQUEST ASIDE UNTIL FILE IS UNLOCKED

I ;

’4 41

l' I ;

I I

142

EI

LOCK UNCOMMITTED FILE FOR

LOCK INCONSISTENT FILE FOR

I

SPECIFIC CLIENT

SPECIFIC CLIENT

;

I

PROCESS

PROCESS

I

I1 I

i r 145 REPLY TO CLIENT

1 WITH 'UNCOMMITTED' ; STATUS

,1,

COMMITTED

r 147

I, r 149 Ii

REPLY TO CLIENT

REPLY TO CLIENT

I

WITH 'INCONSISTENT STATUS

WITH 'CONINIITTED' STATUS

I :

l

f 148

RE-READ FILE DATA

RETURN

;

1 4/150 RE-READ FILE DATA

US. Patent

Jul. 26, 2011

Sheet 6 0f 11

US RE42,578 E

/-160

SEND

COMMITIFUNCOMMITTED REQUEST TO DISK PROCESSOR

IN DISKPROCE s

;

i

5

IF FILE LOCKED, PUT REQUEST

I

: :

K161

:

!

ASIDE UNTIL FILE IS UNLOCKED

UNCOMMlTl-ED

FILE

i

1 :

COMM|TTED

I

i

i

I

/

;:

COMMITTED SET FILE TO

:.

164

i

:

INCONSISTENT

¢ / 165

f 163

:

4 f 167 1'.

;

REPLY WITH 'SUCCESS‘ TO CLIENT

WITH REPLY 'INCONSISTENT' TO CLIENT

WITH REPLY 'COMMI‘ITED' TO CLIENT

.

:

STATUS

STATUS

STATUS

I

I

1 66

RE-REAO FILE DATA

US. Patent

Jul. 26, 2011

Sheet 7 or 11

US RE42,578 E

FIG. 6C _____-______-_-__-_-----

_____________________.___

r172 SET THE STATE OF THE FILE OBJECT TO COMMITTED

IN DISK PROCESS

l 1 74 RELEASE THE EXCLUSIVE LOCK ON THE FILE OBJECT

RETURN

FIG. 6D /-180 SET THE STATE OF THE FILE OBJECT TO INCONSISTENT

RETURN

US. Patent

Jul. 26, 2011

Sheet 8 0f 11

US RE42,578 E

New Design When No Modification Needed (First Open) Client

Process



1‘

\\ Open

\Req.

‘1

200 -1

‘\ 4‘

_ I

4

\\ Comm/t If.

,

I

\\Uncommitted ,

/,7 204'“? 202 .'

\ Disk

?

I

,' Open ID, Ir Uncommr'tted,

fi

X

206 x

‘\

‘\

Ir File Data



1' [I You

I! Committed

Uncommitted ....................................... ..Committed ................................. ..

Process

FIG. 7

New Design When No Modification Needed (Additional Opens) Client

Process

1

‘ 0P9"

\Req.

21 0-~‘~

.’



'\

“‘ Disk

[/— 212 II Open ID, 1' Committed,

Jile Data

Committed ............................................................................................ ..

Process

FIG. 8

US. Patent

Jul. 26, 2011

Sheet 9 0f 11

US RE42,578 E

Racing to Commit When No Modification Needed Client

Process B

2



\OPQ"

I

\ Req. \‘

,'

\

/7 232

x

II Open ID, .1 File Data

\

II Failed:

;

238

" fresh

‘\

J Committed

ll——\

I

‘\

‘1 Already “

,'

~\

I,

‘\

7

\\Req

/7 236 ‘

Ir Uncommiffed. \ *‘

\irevy) f4 Read

I

\

if

‘\

1‘

Uncommifted ,’

t

‘\

Disk

f

‘\ C°mmiiif

Ir File ‘L ‘1 Date a

Uncommitted ................................. ..Committed .................................................. ..

Process 1!

‘\ Open ID.

1

I

‘ Uncommi?ed,

,

/‘\File Data

,1

‘1 Open

‘\

LReq.

' Committed

/\

220,'‘1' 222 '\ ‘1 228 ,' Chem

‘\ You

,'

230

\

l- Commit if

i

‘\

I! Uncommifted



Process A

Modifier Losing Race to Committer Modifying Client B

(retry) j‘ Open ‘\ Req.

I ,’

\

\

‘.

240A“



/7

252

\

242 .1 ,' Open iD,



‘\

x

I

.1 II _

‘\

\‘

I: File Data

’1 Failed

\‘

‘, Committed

Uncommitfed .............................................. ..Committed .................................... ..

Process 4 I:

I

‘1 0P9" ID,

,'

Committing

/‘\Fiie Data

‘\ You

,'

/

‘ Committed

f\

/7 250 \ X 248 ,'

,' Open

LReq-

1!

‘ Unwmmifted,

244 l,' 246 \ I _

I 1'

f“ 254 \

'1 Uncommifted.

‘1 Disk

TLock Unless /-1 Committed

,' Commit if

it

LUncommifted

Chem A

FIG. 10

‘. K

i

US. Patent

Jul. 26, 2011

Sheet 10 0f 11

US RE42,578 E

Committer Losing Race to Modifier 1

Client B

\

\\ Open

I

\Req.

I

\\ Lock Unless

,‘

\

[,1 II Open iD,

“ x

I

\sisienl f‘i\

'

\

\‘

K‘ 8- Unlock \

\\ ‘\

3 You

I, Uncommmed, ‘\

i LFile Data Disk

\i

\ Set Incon- \ Write \ Commit

‘Committed ,’

f7

\

{



‘\

I: Locked



I: Uncoml'd

4‘

Uncommitted..........

\\

\\280 \‘ \\ \\ \\



'L

\‘

..........\._‘....lnconsistent .......... ..Comrnitted_..

Process

Locked ................................................... ..

l \ Open ID, ,'

/—,'

,‘

KXFI‘IB Dara

264

\ Already

,'

266 \

,' ,' Open

Committing Client A

‘\ Failed:

‘\ Uncommitted,

‘\ Committed

/7 X ‘\

4' RQQ-

274 x

272 ,' ,' Commit if

‘1

‘i ‘i

J Uncommitted

L (rally)

FIG. 1 1 Racing to Modify Client

T\ Open

4

Process B ‘i‘ Req.

‘\ L ock Unless

,' Kl‘ Committed

‘\

ff 306 ‘\\‘

290...; 300 Ii ‘\ II Open ID,

II Locked I, Uncomt'd

‘\

‘ \ & Unlock

\

‘\ ‘\ i

\

314 \‘31 6 ~\ ‘\ ‘\ ‘\ \L

‘\ “

Locked ................................................... ..

I

‘\ Open ID,

302

304 i

,’

\\

,' 0P9”

iReIJ-

?ock failed ~

“.Uncommitted, .File Data

I

Process A

\‘sistent

Uncommined ......................................................... ..|nconsistent .......... ..Commi?ed...

,'

Client

,’

‘\ 308’: You

Process

_

‘\ Set lncon- i\ write i\ Commit

/T'312 \\ J,

\ 1' Uncommitted, ‘\ L A, Fire Dara \‘ Disk

4

,‘

/7 310 ,' Lock \

i

\ Committed ‘.

,‘

,‘Unless

L' Committed

318

i \ ‘\

‘1

US. Patent

Jul. 26, 2011

Sheet 11 0f 11

US RE42,578 E

Failure During Modify Attempt Failure

C'ie'“ W \

Process B

e

\

\\ [new \sistent

\

Disk Process

rite

\\

‘ ‘

/‘\ ‘\ \\ 330 ‘\x a a

‘\ Failure ' unlocks \( l \1

............. ..lnconslstent ................................................................................ ..Committed Locked ................................. ..Locked ........................................................ ..

I f '

/'__I"‘

334 [lock _ Cllent Process A

\ Detection of

’I'Unless ; Committed

T\Yclu Locked- 1‘ \‘fresh /\ Inconsistent ,‘ ‘1

'

‘1‘

/

I!

\Fi'e \Dala



1

4

,'

1'

'

/' 'I

'

/ I!

‘. 338; 340 x 342; 344; \

\

\ ’1' Read i LReq.

FIG. 13

r

\ I" Write ,, Commit i [I Req. [I & Unlock

US RE42,578 E 1

2

SYNCHRONIZATION USING COMMITMENT

ent process 42-46 that uses the ?le object must determine

whether the contents of a ?le object are properly adjusted for the process environment that the ?le object will encounter on

Matter enclosed in heavy brackets [ ] appears in the original patent but forms no part of this reissue speci?ca

the particular client system 10-14. If a ?le object is currently loaded and in use by any client process, it cannot be changed, but is sharable as long as the other sharing client processes can use the ?le object with its current adjustments. It is necessary to have a protocol to determine when the current adjustments are appropriate and preserve that state, and to deal with the case in which a client process must adjust the contents of a ?le object for proper use within its processing environment A protocol for achieving such a modi?cation that is con sistent with the processing requirements of processes on the other client systems is shown in FIG. 3 and operates as fol lows. The client process opens the ?le object in step 80 and then locks the ?le object in step 82. This requires that a lock message be sent to the disk process of a storage system that

tion; matter printed in italics indicates the additions made by reissue. CROSS-REFERENCE TO RELATED APPLICATIONS

Field of the Invention The present invention relates generally to a loosely

coupled multi-processor system that shares a commonly used ?le, and it more particularly relates to processes that execute on each of the processors of the multi-processor system; the invention reduces the message tra?ic among the processors needed to achieve a single, consistent image of the

commonly-used ?le. 20

DESCRIPTION OF THE RELATED ART

FIG. 1 shows a system setting in which the present inven tion operates. In this ?gure there are a plurality of processing

systems 10, 12, 14, 16, 18, preferably having a similar archi

25

tecture, connected via a number of point-to-point connections 20, 22, 24, 26, 28, 30. One or more ofthe processing systems

maintains the consistency of the ?le object. (Once the ?le object is locked, other processes that attempt to lock the ?le are delayed until the lock is released.) Next, in step 84, the client process reads the attributes and relevant contents from the ?le object. If the content of the ?le is suitable for use, as determined in step 86, the ?le is unlocked in step 88 and a success indication is returned. If the ?le object is not properly adjusted (i.e., the content is not suitable), as determined in

step 86, for the client system processing environment based

(storage systems) 16, 18 provide storage-related functions for the other processing systems (client systems) 10, 12, 14 and permanent storage devices 32, 34, 36, 38, such as hard disk drives. Each client system 10, 12, 14 is connected to each of

on the contents read from the ?le object and if the ?le object is not in use as determined in step 90, an adjustment is made in step 92 and the changes are written back to the contents of the ?le object. The ?le object is then unlocked in step 88 and a success indication is returned. If the ?le object is in use, as

the storage systems 16, 18, preferably using the point-to point connections 20, 22, 24, 26, 28, 30 and the storage

and a failure indication is returned.

these storage systems 16, 18 are connected to one or more 30

systems themselves are interconnected via a point-to-point

determined in step 90, the ?le object is unlocked in step 94 35

FIG. 4 shows a scheduling diagram of the prior art method for synchronization to more clearly illustrate the approximate timing of events at the client system and the storage system, and similar ?gures are used through out this speci?cation to illustrate different aspects of the present invention. In FIG. 4,

40

the upper line 100 represents an event line for the client system and the lower line or bar 102 represents an event line

connection 40 so that they can serve as a uni?ed, redundant

storage system for the client systems. (The storage systems are illustrated as distinct from the set of client processing

systems, but the present invention does not depend upon this

distinction.) FIG. 2 shows a diagram of a representative computer sys tem shown in FIG. 1 in which a central processing unit 60, a memory subsystem 62 and an I/O subsystem 64 are prefer

for the storage system. A line segment 104, 108, 112, 116 directed towards the storage system line indicates a message sent from the client system to the storage system (disk pro

ably interconnected preferably by point-to -point links 66, 68, 70. The representative computer system is connected, via a link 72, to the storage systems via the I/ O subsystem. (While these diagrams illustrate point-to-point connections, the cur

45

rent invention is not limited to that topology.) The software on each client system in FIG. 1 includes a number of processes

(client processes) 42, 44, 46 that execute on that system and each of these processes typically requires access to the ?le

50

55

the storage systems. The disk process 48, 50, upon receipt of the message from a client process 42-46, sends reply mes sages to the message sender.

File objects, such as executables and library object ?les, that are requested by the client processes generally contain references that may need to be adjusted when the ?le object is

system to the client system. The slope of the directed line segment simply indicates that the message travels at some ?nite speed between the two systems and the label on the directed line segment indicates the type of message being sent.

objects of the storage systems 16, 18. The client processes 42-46 make requests to obtain ?le objects from the storage systems by sending messages over the point-to-point links to a process called a disk process 48, 50 that executes on each of

cess) and a line segment 106, 110, 114 directed towards the client system represents a message sent from the storage

60

The ?rst event 104 depicted in FIG. 4 is the client system transmitting an open request to the disk process of the storage system. This message is received and, in response, the disk process sends an open acknowledge message 106 back to the client system, which then proceeds to make a lock request 108. This message arrives at the disk process which then

grants the request 110 to lock the ?le object. Following the receipt of the lock-granted message 110, a read request 112 is made of the ?le object by the client system to the storage system, and when the message arrives the storage system

downloaded on a particular client system so that it properly

returns the ?le contents 114 that were requested back to the

references other library ?les, possibly of a different version,

client system. The client system then determines whether the

?le object is properly adjusted for running in the environment

on that client system. These references must be written into

the contents of the ?le object and the adjustment must be synchronized with the other client systems so that the ?le object contents remains consistent. This means that each cli

65

of the client system and, in this example, ?nds that the ?le object is properly adjusted and no changes need to be written. Finally, an unlock message 116 is sent to the disk process

US RE42,578 E 3

4

releasing the ?le object. As is apparent from the scheduling diagram, the ?le object stays locked from the time of the lock

which means that no locks are required and a process can

continue its execution of the shared ?le without delay.

grant 108 to the time that the unlock request 116 is received and executed at the disk process.

BRIEF DESCRIPTION OF THE DRAWINGS

Though the above protocol is effective at maintaining the consistency of the shared ?le among the competing processes of the client systems, it is expensive in terms of the messages

These and other features, aspects and advantages of the present invention will become better understood with regard

that are required to be sent to and from the disk process. Two messages, a lock and an unlock, are required by each com

nying drawings where:

peting process to determine whether the ?le is in proper condition for use by that process, regardless of whether or not the ?le contents must be adjusted. The protocol is also expen

tion operates;

sive in terms of the lack of concurrency that such a process causes to the competing processes because each process must lock the ?le in order to determine whether an adjustment is required. This does not permit any other process access to the ?le to determine if the condition of the ?le is proper for the other processes. If the process cannot obtain the lock because another process has the lock, it must wait for the lock to be released before it can even examine the ?le.

to the following description, appended claims, and accompa FIG. 1 shows a system setting in which the present inven FIG. 2 shows a diagram of a representative computer sys tem shown in FIG. 1; FIG. 3 shows a ?ow chart of the prior art protocol for

synchronization; FIG. 4 shows a scheduling diagram of the prior art process for synchronization when no modi?cation of the ?le is

needed; FIG. 5 shows a ?ow chart of the synchronization protocol 20

of the present invention; FIG. 6A shows a ?ow chart of the LockUnlessCommitted

Therefore, there is a need for an improved protocol that reduces the message traf?c to and from the disk process and improves the concurrency among the several client processes.

operation of the present invention; FIG. 6B shows a ?ow chart of the CommitIfUncommitted

operation of the present invention; 25

BRIEF SUMMARY OF THE INVENTION

FIG. 6C shows a ?ow chart of the CommitAndUnlock

operation of the present invention; FIG. 6D shows a ?ow chart of the SetInconsistent opera

tion of the present invention; FIG. 7 shows a scheduling diagram of the synchronization

The present invention is directed towards the above need. It provides a method for sharing among a plurality of competing processes a ?le object that includes ?le contents and a state that describes whether the ?le contents are inconsistent and

whether the ?le object is in the use of a competing process. The state has a value that is either ‘uncommitted’, ‘inconsis tent’ or ‘committed’. The method includes determining the state value of the ?le object and whether or not the ?le content is suitable for use by a speci?c one of the competing pro cesses. If the state value of the ?le object is not ‘committed’ and either the state value is ‘inconsistent’ or the ?le content is not suitable for use by the speci?c one of the competing processes, the method then obtains exclusive access to the ?le object, adjusts the contents of the ?le object, sets the state of

30

needed; FIG. 8 shows a scheduling diagram of the synchronization 35

40

object to ‘committed’. If the state value of the ?le object is ‘committed’ and the ?le content is suitable for use by the speci?c process, the method shares the committed ?le; oth

protocol of the present invention in which no modi?cation is needed and ?le is committed; FIG. 9 shows a scheduling diagram of the synchronization protocol of the present invention in which there is a race to commit when no modi?cation is needed; FIG. 10 shows a scheduling diagram of the synchroniza tion protocol of the present invention in which there is a race between a modifying client and a committing client and the

modifying client loses; FIG. 11 shows a scheduling diagram of the synchroniza

the ?le object to ‘committed’, and relinquishes exclusive access to the ?le object. If the state value of the ?le object is not ‘committed’ and the state value is not ‘inconsistent’ and the ?le content is suitable for use by the speci?c one of the competing processes, the method sets the state of the ?le

protocol of the present invention when no modi?cation is

tion protocol of the present invention in which there is a race between a modifying client and a committing client and the 45

committing client loses; FIG. 12 shows a scheduling diagram of the synchroniza tion protocol of the present invention in which there is a race

between two modifying clients; and FIG. 13 shows a scheduling diagram of the synchroniza 50

tion protocol of the present invention in which there is a

failure during a modifying attempt.

erwise, the method returns a failure status.

One advantage of the present invention is that the message tra?ic is greatly reduced from two messages for each check of

DETAILED DESCRIPTION OF THE INVENTION

the shared ?le to either none or one message in the most 55 common cases. One message is needed if the state value of the

?le object is ‘uncommitted’ and its contents are suitable for use. No message is needed is if the state value of the ?le object is ‘committed’ and the ?le content is suitable for shareduse by

FIG. 5 shows a ?ow chart of the synchronization protocol of the present invention for each client process. In accordance with and to enable the protocol of FIG. 5, a state attribute is included in each ?le object. This state attribute can take on

are suitable for use. In most cases the ?le is in the proper

three different values, which are ‘uncommitted’, ‘inconsis tent’, and ‘committed’. The ‘uncommitted’ state value means that the ?le object is not in use by any client process. If the ?le object is undergoing modi?cation, the state is temporarily set to ‘inconsistent’, which means that the ?le may have been partially altered. Once the ?le content has been accepted by a client, the state is set to ‘committed’. When no client is using the ?le object, its

condition for that client process and needs no adjustment,

state reverts to ‘uncommitted’.

the speci?c process. Only when the ?le must be adjusted are

60

more messages required. However, that case occurs rarely. Another advantage is that the client processes can each

operate with a greater degree of concurrency because each of the client processes has access to the shared ?le without a lock

being required in order to determine whether the ?le contents

65

US RE42,578 E 6

5 Returning to FIG. 5, the following discussion of FIG. 5

5 depicts the case in which the state value that is determined

applies when there is no change to the state of the state of the ?le object after that state has been determined in FIG. 5. The cases in which the state of the ?le object may have changed after the state has been determined by the client process are

when the ?le object is ?rst open and read does not change during the various sub sequent steps. However, when there are multiple client processes, operating concurrently, there is a chance that the initially determined state of the ?le object is altered by a client process other than the speci?c client pro cess. The LockUnlessCommitted operation at step 130 in FIG. Stakes this possibility into account, as illustrated in FIG.

discussed subsequently in conjunction with the ?ow charts of FIGS. 6A-6D, which include details not shown in FIG. 5. In FIG. 5, one of the client processes (hereinafter the spe

ci?c client process) requests that a ?le object be opened in step 120 and reads the relevant attributes (state) and contents of the ?le object, without using a lock in step 120. From this

6A.

First, in step 140, the client process sends a LockUnless Committed request to the disk process. In the disk process, at

information an assessment is made as to the state of the ?le

step 141, if the ?le is locked, the request stays pending until

object and whether to the contents of the ?le object need

the ?le is unlocked. The disk process then ascertains, in step

adjustment. There are four cases that the protocol must handle. In the ?rst case, if the state value of the ?le object is ‘committed’, as determined in step 122, and the ?le contents are in proper form for use by the speci?c client process as determined in step 124, then a success indication is returned. This means that no adjustment of the ?le object contents was

142, the current state of the ?le object, which can be any one of the three states.

20

If the state value of the ?le object is ‘uncommitted’, the disk process locks the ?le for the speci?c client process, in step 144, and replies back to the client process indicating that the ?le object’s state is ‘uncommitted,’ in step 145. The pro

required and the ?le object can be shared by the speci?c client

cess then continues at step 132 of FIG. 5.

process. In the second case, if the state value of the ?le object is ‘committed’, as determined in step 122, and the ?le contents are not in proper form for use by the speci?c client process as determined in step 124, then a failure indication is returned. In the third case, if the state value of the ?le object is not ‘committed’, as determined in step 122, and the state value of the ?le object is not ‘inconsistent’ and its contents are suitable

If the state value of the ?le object is ‘inconsistent’, the disk process locks the ?le for the speci?c client process, in step 146, and then replies back to the client process indicating that the state value of the ?le object is ‘inconsistent,’ in step 147. In response to receiving this reply, the client process re-reads the contents of the ?le object, in step 148, and the ?ow continues atA in FIG. 5, at which point the contents of the ?le object are adjusted to be suitable for the speci?c client pro

for use, as determined in step 126, the speci?c client process makes an attempt to commit the ?le. To do this, the client

25

30 cess.

If the state value of the ?le object is ‘committed’, the disk process replies back to the client process indicating that the ?le object’s state is ‘committed’. This prompts the client

process performs a CommitIfUncommitted operation in step 128. Upon receiving a reply from the disk process that the ?le object is committed, the ?ow terminates with a success indi cation. In the fourth case, if the state value of the ?le object is not ‘committed’, as determined in step 122, and either the state

35

value is ‘inconsistent’ or the ?le object’s contents are not

suitable for use, as determined in step 126, the speci?c client process attempts to lock the ?le by performing a LockUnless

FIG. 6B shows a ?ow chart of the CommitIfUncommitted 40

Committed operation in step 130. This operation entails send ing a LockUnlessCommitted request to the disk process and receiving a reply that an exclusive lock has been granted from the disk process in response to the message. Following this, a

SetInconsistent operation is performed in step 132, which sets

45

the state of the ?le object to ‘inconsistent’, and the contents of the ?le object are adjusted in step 134. Finally, a CommitAnd

Unlock operation is performed in step 136. This operation commits the adjusted ?le and releases the exclusive lock on

the ?le object. tion, then, only locks a ?le object if the ?le object must be adjusted (the fourth case above). It does not lock the ?le

55

cess are saved and only a CommitIfUncommitted message is

needed (the third case above). If the ?le object is already committed, no message is required and two messages are saved (the ?rst and second cases above). Thus, either one or

two messages are saved by the protocol of the present inven tion and the concurrency of each of the competing processes is improved because no lock is required to determine the condition of the shared ?le. FIG. 6A shows a ?owchart of the LockUnlessCommitted

operation of the present invention. As mentioned above, FIG.

operation of the present invention, which, again, takes into account any changes that may have occurred to the state value of the ?le object after the initial state determination in FIG. 5. FIG. 6B details step 128 of FIG. 5. In step 160, the speci?c client process sends a CommitI fUncommitted Request to the disk process. In the disk pro cess at step 161, if the ?le is locked, the request stays pending until the ?le is unlocked. The disk process then ascertains, in step 1 62, the current state value of the ?le object, which can be any one of the three states.

50

It can be observed that the protocol of the present inven

object to determine whether the contents of the ?le object are suitable for use by the client process. Therefore, if the most commonly occurring case is that the ?le object needs no adjustment, then a lock and unlock message to the disk pro

process, upon receipt, to re-read the contents of the ?le object, in step 150. The ?ow then continues at C in FIG. 5, at which the client process determines whether the content is suitable for that process. If so, it shares the ?le object and the ?ow ends successfully. If not, the ?ow ends with a failure indicated.

60

65

If the state value of the ?le object is ‘uncommitted,’ the state value is set to ‘committed’ in step 164, and the disk process sends a reply back to the speci?c client process indi cating success, in step 165. The return path in FIG. 6B com pletes the normal exit from step 128 of FIG. 5. If the state value of the ?le object is ‘inconsistent,’ the disk process sends a reply back to the speci?c client process so

indicating, in step 163, and the ?ow continues at B in FIG. 5, at which a LockUnlessCommitted operation is performed. Because the state value of the ?le object is ‘inconsistent’, the speci?c client process must re-adjust the ?le contents before the ?le object can be committed. If the state of the ?le object is ‘committed,’ the disk process sends a reply back to the speci?c client process so indicating, in step 162, and this prompts the client process to re-read the contents of the ?le object in step 166. The process continues at C in FIG. 5, at which the client process determines, in step 124, whether the content is suitable for that process. If so, the

US RE42,578 E 8

7 speci?c client process shares the committed ?le object. If not,

The race occurs as follows. In FIG. 9, client process A

the ?ow ends with a failure indication. FIG. 6C shows a ?ow chart of the CommitAndUnlock

makes an open request of the disk process in step 220 and the disk process returns the Open ID, the state value of the ?le

operation of the present invention, expanding step 13 6 of FIG.

object (‘uncommitted’) and the requested ?le contents in step

5. This operation does not need to check the state value of the

222. Shortly after client process A makes its open request, client process B makes its open request in step 224 and the disk process return to it the Open ID, the state value of the ?le

?le object again because the operation only occurs when the ?le object is locked, which precludes its state from being changed. The operation begins with the disk process setting

object (‘uncommitted’) and the requested ?le contents in step

the state of the ?le object to committed in step 172 and then

226. Now, there are two processes that have read the ?le

releasing the lock in step 174.

object and both decide that the ?le object is properly adjusted

FIG. 6D shows a ?ow chart of the SetInconsistent opera

for use (no adjustment is needed). This state of affairs causes

tion of the present invention. This operation simply sets the state value of the ?le object to ‘inconsistent’, in step 180, and

a race to commit the uncommitted ?le object, but only one client process can win the race. In FIG. 9, client process A wins the race because its CommitlfUncommitted message in

returns.

The protocol of the present invention requires the follow ing conventions. First, while the state value of a ?le object is ‘committed’, it cannot be changed. Second, the contents of a ?le object can only be changed when it is locked. Third, while the state value of a ?le object is ‘uncommitted’, the contents of the ?le object are not altered. These conventions allow the sharing of the ?le object by multiple processes without a lock

step 228 is delivered slightly earlier than the similar request from client process B. In step 230, client A receives a reply

20

that it was successful in its attempt to set the state value of the ?le object to ‘committed’. The contents are now suitable for client A. When client process B sends its CommitlfUncom

to determine whether the contents of the ?le object are suit

mitted message to the disk process, in step 232, the disk process responds with a message saying the state of the ?le

able for use without adjustment. This sharing, in turn, permits

object has already been changed to ‘committed’, in step 234.

a greater degree of concurrency among the processes com peting for the ?le object and cuts down on message tra?ic because a lock is not required to determine the suitability of a

?le object for a speci?c client process. FIG. 7 shows a scheduling diagram of the synchronization protocol of the present invention when no modi?cation is needed. This diagram depicts the order of events for the path of FIG. 5 in which the CommitlfUncommitted operation successfully returns because the state value of the ?le object

See FIG. 6B. This response causes client process B to make a 25

can share the ?le.

In an alternative version of the invention, the disk process 30

tracks, for each client, whether the contents of the ?le object have been written or adjusted after a client process opened the

?le object, and if not, then replies, in step 234 of FIG. 9, with an indication that the state value of the ?le is ‘committed’ and

is remains ‘uncommitted’. See FIG. 6B. The ?rst event is a

request 200 by the speci?c client process to open the ?le and read the attributes and contents. Upon receipt of the request, the disk process returns 202 the Open ID, the state value

request to re-read the ?le contents, in step 236, which are then returned by the disk process in step 238. Because the contents of the ?le object are still properly adjusted, client process B

35

the ?le object contents are unchanged. This alternative per mits steps 236 and 238 to be omitted.

FIG. 10 shows a scheduling diagram of the synchroniza

(‘uncommitted’, in this case) and the requested ?le object

tion protocol of the present invention in which there is a race

contents. The speci?c client process then, after reviewing the

between a “modifying client” (client B) and a “committing client” (client A) and the “modifying client” loses. The “com mitting client” traverses through a path in FIG. 6B in which the CommitlfUncommitted operation returns a reply that the state value of the ?le object is ‘committed’. The modifying client traverses through the path in FIG. 6A in which the LockUnlessCommitted operation discovers that the state value of the ?le object has changed to ‘committed’, which prompts the “modifying client” to re-read of the ?le object’s

information returned, sends a CommitlfUncommitted mes

sage 204 to the disk process which then responds with an

40

acknowledgement 206 that the ?le is committed. FIG. 8 shows a scheduling diagram of the synchronization protocol of the present invention in which no modi?cation is needed and the state value of the ?le object is ‘committed’. This diagram shows the order of events for the path of FIG. 6B in which the state value of the ?le object is ‘committed’. The ?rst event, again, is an open request, in step 210, from the client process. Again, the disk process returns the Open ID, the state value (‘committed’, in this case) and the requested

45

?le contents in step 212. If the contents of the ?le object are correctly adjusted for the client process, then there is a suc cess indication; otherwise a failure is indicated.

contents.

The ?rst event in FIG. 10 is client B’s request to open the 50

makes an open request in step 244 and, in response, receives

FIG. 9 shows a scheduling diagram of the synchronization protocol of the present invention in which there is a race to commit when no modi?cation is needed. In this diagram there are two client processes, A and B, that race to change the state value of the ?le object to ‘commit’. The events include two

the same contents in step 246. ClientA can use the ?le object 55

Thus, client A and client B are in a race. Client A is racing to

clients performing a CommitlfUncommitted operation. The

client process.

contents with its current con?guration but client B cannot; client B must modify the ?le to make it suitable for its use.

perform a commit operation on the ?le object, but client B is racing to lock the ?le object so that it can adjust the contents

ofthe ?le object. In the diagram ofFIG. 10, clientA wins the

disk process, on behalf of one of the clients (client A in the

diagram), determines that the state value of the ?le object is ‘uncommitted’, performs the commit and sends a reply to the speci?c client process (client A) that the state value of the ?le object is ‘committed’. The other of the clients (client B) discovers that the state value of the ?le object is ‘committed’. This other client then re-reads the contents of the ?le object to determine whether the ?le object is suitable for use by that

?le object in step 240 and obtain, in response, the OpenID, state value of the ?le object (‘uncommitted’) and the requested ?le object contents in step 242. Next, client A

60

race. ClientA’ s CommitlfUncommitted operation in step 248 receives a reply that the state value of the ?le object is ‘com

mitted’, in step 250. See FIG. 6B. When client B eventually

performs the LockUnlessCommitted operation in step 252, 65

client B receives a reply that the state value of the ?le object is ‘committed’, in step 254. See FIG. 6A. The latter message causes client B to request a re-read of the ?le contents to re-assess whether it can use the contents of the ?le object.

US RE42,578 E 9

10 object is locked and undergoing an adjustment by client B. After Client B performs a Setlnconsistent operation in step 312 and adjusts the ?le object contents in step 314, client B then performs a CommitAndUnlock operation in step 316.

FIG. 11 shows a scheduling diagram of the synchroniza tion protocol of the present invention in which there is a race

between a “modifying client” (client B) and a “committing client” (client A) and the “committing client” loses. In this case, the client A traverses through the path of FIG. 6B in

The unlocked condition of the ?le object causes client A to

which a CommitIfUncommitted operation receives an reply

discover that the state value of the ?le object is ‘committed’,

that the state value of the ?le object is ‘committed’, triggering

in step 318 and to request a re-read to determine whether the changed ?le is now suitable for use of the ?le in client A’s environment. If so, client A can share the ?le.

a re-read of the contents of the ?le object by client A. Client B traverses through the path in FIG. 6A in which the state

FIG. 13 shows a scheduling diagram of the synchroniza tion protocol of the present invention in which there is a

value is ‘uncommitted’ and a LockUnlessCommitted opera

tion receives a reply that the lock on the ?le object is granted to client B. Client B proceeds, according to FIG. 5, to perform a Setlnconsistent operation, to adjust the ?le object and to perform a CommitAndUnlock operation. The ?rst event in FIG. 11 is the open request by client B in

failure during a modifying attempt. In this diagram, client A needs to obtain a lock to modify the contents of the ?le object and client process B has already obtained a lock and is modi fying the ?le object contents in step 330 when a failure in client process B occurs in step 332. Client process A has

step 260 which causes the disk process to return, in response

to the open request, the Open ID, the state value of the ?le

performed a LockUnlessCommitted operation in step 334,

object (‘uncommitted’) and the requested ?le contents in step

but has not received a reply from the disk process because the ?le object is locked. Normally, client process B would com

262. Shortly thereafter, client A makes an open request in step 264 and receives, in response, the same contents in step 266.

20

plete its updates and then unlock and commit the ?le. How

There is now a race between client A and client B. Client A

ever, as stated above, a failure in client process B occurs in

needs to perform a commit because the ?le object contents (as a given) are in the correct con?guration for client A. Client B needs to perform a lock on the ?le object to adjust the ?le object’s contents. In this diagram, client B wins the race and

step 332. This causes the disk process to unlock the ?le object in step 332 leaving the contents of the ?le object in a possibly partially changed state, as re?ected by the state value of ‘inconsistent’. Upon the unlocking of the ?le object, the disk process responds to client process A’s pending LockUnless Committed message by granting a lock while the state value ofthe ?le object is ‘inconsistent’, in step 336. See FIG. 6A. According to the ?ow chart of FIG. 6A, client process A must now re-read the ?le object contents, in step 338, to determine

25

performs a LockUnlessCommitted operation in step 268, for which a successful reply is sent to client B in step 270. Meanwhile, client A requests a CommitIfUncommitted

operation in step 272, and waits for the reply. The request is held by the disk process because of the lock obtained by client B on the ?le object, which delays the state value of the ?le object from being available to other client processes. As mentioned above, client B performed a LockUnless Committed operation in step 268. The disk process replied with a grant of the lock in step 270 and client B then responded with a Setlnconsistent message in step 276 back to the disk process. At this point client B has exclusive owner

ship of the ?le object and is free to adjust the contents of the ?le object, in step 278, to meet its operating conditions. Following adjustments to the ?le object’s contents, client B performs a CommitAndUnlock operation in step 280. Once the ?le object is unlocked by client B, the disk process replies to the waiting client process A in step 274. Only then does client A discover that the state value of the ?le object is ‘committed’. This causes client process A to request a re-read

30

its suitability following step 340. The process adjusts the contents of the ?le object in step 342 and then, continuing at A in FIG. 5, performs a CommitAndUnlock operation, in step 344, to commit the ?le object. Thus, the state value of ‘incon 35

Although the present invention has been described in con siderable detail with reference to certain preferred versions

thereof, other versions are possible. Therefore, the spirit and 40

What is claimed is: 1. A method for sharing among a plurality of competing 45

‘uncommitted’, ‘inconsistent’ and ‘committed’, the method

comprising: 50

not the ?le content is suitable for use by a speci?c one of

(i) if the state value of the ?le object is not ‘committed’ and either the state value is ‘inconsistent’ or the ?le content 55

The delay in receiving the response occurs because the ?le

is not suitable for use by the speci?c one of the compet

ing processes:

60

lock the ?le object by performing a LockUnlessCommitted operation. In the ?gure, client process B performs the Lock UnlessCommitted operation, in step 3 06, and the disk process responds by replying that the lock is granted to client B in step 308. Client A then performs a LockUnlessCommitted opera tion in step 310 but does not receive an immediate response.

determining the state value of the ?le object and whether or

the competing processes;

requested ?le object contents. The second event is an open request from client process A in step 302 which returns the same information in step 304. Now, because both processes need to alter the contents of the ?le object, there is a race to

processes a ?le object that includes ?le contents and a state that describes whether the ?le contents are inconsistent and whether the ?le object is in the use of a competing process, the

state having a value being selected from a group consisting of

FIG. 12 shows a scheduling diagram of the synchroniza

client B. The disk process replies in step 300 with the Open ID, the state value of the ?le object (‘uncommitted’) and the

scope of the appended claims should not be limited to the

description of the preferred versions contained herein.

of the contents of the ?le object to determine if the altered ?le object is suitable for its use. tion protocol of the present invention in which there is a race between two modifying clients, client process A and B. Cli ent’s A and B are both attempting to obtain a successful lock on the ?le object by means of a LockUnlessCommitted opera tion and Client B in the ?gure is the winner. The ?rst event is, as usual, an open request in step 290 by

sistent’ facilitates the discovery of such a failure event and its

proper handling.

obtaining exclusive access to the ?le object; adjusting the contents of the ?le object; setting the state of the ?le object to ‘committed’; and relinquishing exclusive access to the ?le object; (ii) if the state value of the ?le object is not ‘committed’ and the state value is not ‘inconsistent’ and the ?le content is

suitable for use by the speci?c one of the competing processes, 65

setting the state of the ?le object to ‘committed’; (iii) if the state value of the ?le object is ‘committed’ and the ?le content is suitable for use by the speci?c process,

US RE42,578 E 11

12

sharing the committed ?le; and (iv) otherwise, returning a failure status.

5. A method as recited in claim 4, wherein the step (m) of ascertaining the state value of the ?le object includes the steps of:

2. A method as recited in claim 1, further comprising the

determining whether the ?le object is locked; if the ?le object is locked, waiting until the ?le object is unlocked; and if the ?le object is not locked, determining the state value of the ?le object.

steps of: setting the state value of the ?le object to ‘inconsistent’ after obtaining exclusive access to the ?le object; and if the speci?c process fails while having exclusive access to the ?le object, relinquishing exclusive access to the ?le object to leave the state value of the ?le object as ‘incon sistent’. 3. A method for sharing among a plurality of competing

6. A method as recited in claim 4, wherein step (n) is

performed by the speci?c client process. 7. A method as recited in claim 4, wherein steps (m), (o), (p), (q), (r), and (u) are each performed by a disk process. 8. A method as recited in claim 4, wherein steps (s) and (W) are each performed by the speci?c client process.

processes a ?le object that includes ?le contents and a state that describes whether the ?le contents are inconsistent and whether the ?le object is in the use of a competing process, the

state having a value being selected from a group consisting of

9. A method as recited in claim 3, wherein the step of performing a CommitlfUncommited operation on the ?le

‘uncommitted’, ‘inconsistent’ and ‘committed’, the method

object includes the steps of:

comprising:

(n) requesting to change the state value of the ?le to ‘com

(a) opening and reading the ?le object to determine the state value of the ?le object and whether or not the contents of the ?le object are suitable for use by a spe ci?c one of the competing processes;

mitted’; 20

(i) if the state value of the ?le object is not ‘committed’ and either the state value is ‘inconsistent’ or the ?le content is not suitable for use by the speci?c one of the

a success status; 25

competing processes: (b) performing a LockUnlessCommitted operation; (c) upon receiving a lock on the ?le, performing a Set

lnconsistent operation; (d) adjusting the contents of the ?le object; (e) performing a CommitAndUnlock operation to commit and unlock the ?le object; and

(m) ascertaining the state value of the ?le object; (iv) if the state value of the ?le object is ‘uncommitted’:

10. A method as recited in claim 9, wherein step (n) is 35

40

12. A method as recited in claim 9, wherein step (r) is performed by a disk process. 13. A method as recited in claim 9, wherein the step (m) of ascertaining the state value of the ?le object includes the steps of:

45

determining whether the ?le object is locked; if the ?le object is locked, waiting until the ?le object is unlocked; and if the ?le object is not locked, determining the state value of the ?le object. 14. A method as recited in claim 3, wherein the step of

50

and 15. A method as recited in claim 3, wherein the step of 55

(r) replying to the speci?c one of the client processes that the state value of the ?le object is ‘inconsistent’; (s) re-reading the contents of the ?le object; and

performing a Setlnconsistent operation includes the step of (n) setting the state value of the ?le object to ‘inconsistent’. 16. A processing system, comprising: a processor; and

(t) continuing at step (d); and 60

(W) re-reading the contents of the ?le object; (x) if the contents are suitable, sharing the ?le object and returning a success indication; and (y) if the contents are not suitable, returning a failure indi cation.

performing a CommitAndUnlock operation includes: (n) setting the state value of the ?le object to ‘committed’;

(m) releasing the lock on the ?le object.

(p) replying to the speci?c one of the client processes that the state value of the ?le object is ‘uncommitted’; (v) if the state value of the ?le object is ‘inconsistent’:

(vi) if the state value of the ?le object is ‘committed’: (u) replying to the speci?c one of the client processes that the state value of the ?le object is ‘inconsistent’;

performed by the speci?c client process. 11. A method as recited in claim 9, wherein steps (m), (o), (p), (q), and (t) are each performed by a disk process.

(0) locking the ?le object; and

(q) locking the ?le object;

(vi) if the state value of the ?le object is ‘inconsistent’: (t) replying to the speci?c one of the client processes that the state value of the ?le object is ‘inconsistent’; and

(u) continuing at step (b).

competing processes’: (g) performing a CommitlfUncommitted operation on the ?le object to commit the ?le object; and (h) upon receiving an indication that the ?le object is ‘com mitted’, returning a success indication; and (iii) if the state value of the ?le object is ‘committed’: (j) if the content is suitable, sharing the committed ?le; and (k) if the content is not suitable, returning a failure indica tion. 4. A method as recited in claim 3, wherein the step of performing a LockUnlessCommitted operation includes: (n) requesting a lock on the ?le object;

(v) if the state value of the ?le object is ‘committed’: (q) replying to the speci?c one of the client processes that the state value of the ?le object is ‘committed’; (r) re-reading the contents of the ?le object; and

(s) continuing at step (j); and 30

(f) returning a success indication; (ii) if the state value of the ?le object is not ‘committed’ and the state value is not ‘inconsistent’ and the ?le content is suitable for use by the speci?c one of the

(m) ascertaining the state value of the ?le object; (iv) if the state value of the ?le object is ‘uncommitted’: (0) setting the state value of the ?le to ‘committed’; and (p) replying to the speci?c one of the client processes with

an I/O subsystem coupled to the processor and adapted to couple to another system on which an object is stored, the object having an associated state and data contents; wherein the processor retrieves the object through the I/O subsystem, examines the object without using a lock and

determines the state of the object; wherein, 65

the processor determines the state to be a ?rst state in which the data contents have been acceptedfor use and are suitable for the processing system, the pro cessor returns a success indicator; or

US RE42,578 E 14

13 wherein, the processor determines the state not to be the ?rst state nor a second state indicative ofthe data con

ifthe processor determines that the object is not being used

tents being modi?ed, and determines the contents to be

suitable for use, the processor requests the object to be locked and then modi?es the object ’s data contents. 20. The system ofclaim 19 wherein, the processor deter mines the object is already in use by another system and

by another system and that the data contents are not

suitable for the processing system, the processor requests the system on which the object is stored to transition the state of the object to the ?rst state.

5

17. The processing system ofclaim 16 wherein, ifthepro

determines that the data contents are suitable for use, the

cessor determines the state to be the ?rst state, but that the data contents are not suitable for the processing system, the processor returns a failure indicator.

processor returns a success indication.

2]. The system ofclaim 19 wherein, iftheprocessor deter mines the object is already in use by another system and

18. The processing system ofclaim 16 wherein, ifthepro

determines that the data contents are not suitablefor use, the processor returns a failure indication.

cessor determines the state not to be the ?rst state and deter mines either that the data contents are not suitable for the processing system or that the state is not the second state, the

22. A processing system, comprising: means for retrieving a?le object having a con?gurable

processor requests the system on which the object is stored to

state and data contents;

lock the object, changes the data contents and requests the object to be unlocked. 19. A system, comprising:

meansfor reading the?le object without locking the?le object; meansfor determining whether the?le object is in use by another processing system;

a processor; and

an I/O subsystem coupled to the processor and adapted to couple to another system on which an object is stored, the object having an associated state and data contents; wherein the processor retrieves the object through the I/O subsystem, reads the object without using a lock and

determines the state of the object; and wherein, the processor determines the object is already in

20

able for use by the processing system the object is already in use by another processing system; and

meansfor committing the?le object ifthe?le object is not already in use by another processing system and 25

contents are suitablefor use and not being modi?ed, the

processor requests the object to be committed to indicate that the processing system has accepted the object; or

the

data contents are suitable.

23. The processing system ofclaim Zqurther comprising

use by another system, the processor determines whether the data contents are suitable for use; and

ifthe processor determines that the object is not already in use by another system and determines that the data

means for determining whether the data contents are suit

means for requesting the object to be locked andfor modi?1 ing the data contents ifthe?le object is not being used by 30

another processing system and the data contents are not suitable.

UNITED STATES PATENT AND TRADEMARK OFFICE

CERTIFICATE OF CORRECTION PATENT NO.

I RE42,578 E

APPLICATION NO.

I 10/788046

DATED INVENTOR(S)

: July 26, 2011 I Darrell F. High et al.

Page 1 ofl

It is certified that error appears in the above-identi?ed patent and that said Letters Patent is hereby corrected as shown below:

In column 11, line 37, in Claim 3, delete “processes’” and insert -- processes --, therefor.

In column 12, line 16, in Claim 9, delete “CommitIfUncommited” and insert -- CommitIfUncommitted --, therefor.

Signed and Sealed this First Day of May, 2012

David J. Kappos Director 0fthe United States Patent and Trademark O?ice

l||||l

Papadopoulos, C.V.; discloses heterogeneity of distributed databases. (73) ASSignee: ... protocol for main memory database systems Parallel and Distributed.

1MB Sizes 1 Downloads 394 Views

Recommend Documents

ll
“Conference Calling Added to BestNet's Service Designed for Palm ... k Call dial pad. History. ' details. 7. Edit entry —\ 434 v. +. Dial. Find {/4136 status number.

\Q/ \/ ll
Mar. 29, 2004. GB. 24959 ll/lgll. (Under 37 CFR 147) ..... tWo superimposed holes 36, 37 into a central holloW 62 of the assembly to a second position outside of ...

ll|l|||||l|||llllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll
Jul 5, 1995 - [57]. ABSTRACT. A synthetic color arrangement for a night vision inclusive .... and a power supply or energy source, 204, for the other FIG. 2 elements. .... tion provides an alternative and more informative output display for an ...

HR ll -
(Original Signature of Member) ... publicly available digital resources for required reading assignments, and for other ... (D) by adding at the end the following: 19.

HR ll
May 4, 2007 - To amend titles 28 and 10, United States Code, to allow for certiorari review of ... IN THE HOUSE OF REPRESENTATIVES. Mrs. DAVIS of ...

5 ll, Lia % llw
Oct 31, 2001 - to hand-excavation methods, i.e., shovels, Without sacri?c ing precision .... to the vacuum engine Which drives the collection system, rather than ...

ll 1 4
qualities of services, such as wireless packet data communi cation and the Internet, are hardly able to support higher quality of services due to the two required ...

"—"LL 2) 'P
Jul 17, 1987 - A I 'No _. 66'; means for detecting an abrupt change of the focus sig. Fitligdi " ...... This A/D converter converts the analog output voltage. F of the ...

l|ll|llllllllllllllllllllllllllllllllI||||lllllllllllllllllllllllllllllllll
May 18, 1995 - ... BINAP-Ruthenium(II)Com plexes and their Use in Asymmetric Hydrogenation [BI .... Cl(PhH)(t-BINAP)]C1 catalyst to a solution of the B- or.

4 -ll- 4
Binary Codes, Binary Coded Decimal Code and its Properties, Unit Distance · Codes, Alpha Numeric Codes, Enor Detecting and Conecting Codes. Boolean Algebra: Basic Theorems and Properties, Switching Functions, · Canonicaland Slandard Form, Algebraic S

Correlatividades LL - DD 162_12.pdf
Page 1 of 4. Página 1 de 4. ANEXO III – DD 162/12. Carrera LICENCIATURA EN LOGÍSTICA Plan 1999. Facultad de Ciencias de la Administración. Listado de ...

Mastermorphix LL - Raul Low.pdf
Page 1 of 1. EO. F U R U' R' F' F R U R' U' F' R U R' U' R' F R2 U' R' U' R U R' F'. OK r U R' U R U2 r' r U2 R' U' R U' r' F R U R' U' F' U2 F U R U' R' F'. OK.

Mastermorphix LL - Raul Low.pdf
Sign in. Page. 1. /. 1. Loading… Page 1 of 1. EO. F U R U' R' F' F R U R' U' F' R U R' U' R' F R2 U' R' U' R U R' F'. OK r U R' U R U2 r' r U2 R' U' R U' r' F R U R' ...

LL Benfits blurb .pdf
Creating a video that highlights your project, the process used to. create it and the people involved and. ○ Creating blog and social media content that revolves around your. project shared campus-wide through the Office of Sustainability's. media

Discriminacion ñ-ll 02.pdf
arañas. A Eva le dan asco las arallas. poño. El pollo asado estaba riquísimo. cameños. Los camellos son mamíferos. Page 3 of 4. Discriminacion ñ-ll 02.pdf.

Say-You-ll-Stay.pdf
online electronic digital local library which offers use of multitude of PDF archive selection. You may ... YOU HERD ME!: ... Download Colin Cowherd ebook file.