`[11] Patent Number:
`5,594,909
`United States Patent 1
`[45] Date of Patent:
`Jan. 14, 1997
`Inoue
`
`
`
`[54] FILE /O CONTROL DEVICE WRITING 5,276,840—WAL994 YU woceescccssesssssessessrsesassesseoennee 395/425
`
`BLOCKS TO FASTER DEVICE FIRST AND
`CANCELING EXCLUSIVE LOCK AS EACH ea
`BLOCKIS WRITTEN
`C. J. Date, “‘An Introduction to Database Systems”, vol. ,
`.
`.
`1984 pp. 83-103.
`Inventor: Hiroyumi Inoue, Tokyo, Japan
`Halici et al. “Concurrency Control in Distributed Databases
`[75]
`5
`‘
`through Time Intervals and Short-Term Locks”, IEEE,
`[73] Assignee: NEC Corporation, Tokyo, Japan
`1989.v. 15, pp. 994-1003.
`[21] Appl. No.: 910,847
`Primary Examiner—Thomas O. Lee
`io
`Assistant Examiner—D. Dinh
`[22]
`Filed:
`Jul. 6, 1992
`Attorney, Agent, or Firm—Foley & Lardner
`[30]
`Foreign Application Priority Data
`[57]
`ABSTRACT
`.
`Jul. 55,1991
`[JP]
`Japan wc eseeseseeeeeeenaeeees 3-190864
`.
`P
`A file input/output control device for a computer system of
`Tint. Ce ieccccesecsscesneee GO06F 13/00; GO6F 13/38
`the present invention can, even in an environment where
`[51]
`[52] U.S. Ch. eccesccseesesseesseereee 395/872; 395/856; 395/726
`magnetic storage and semiconductor storage devices with
`(58] Field of Search ..0........ccccssseeeenen 395/425, 600,
`quite different access speeds are concurrently used as the
`395/650, 872, 726, 856
`external storage, cancel exclusive control for film blocks
`without deteriorating the performance of higher speed stor-
`age. For this purpose, this device is provided with block
`write means to write the blocks in the buffer to the external
`storage block by block when a quiet point of the processing
`program is established and exclusion cancellation means to,
`each time the block write means terminates writing for a
`block, cancel exclusive control for that block.
`
`[56]
`:
`
`References Cited
`UME
`NTS
`TS. PAPENH DiC
`8/1972 Martin .....esecssesccssssnseessseresernees 395/650
`3,683,418
`11/1982 Branigin et al.
`...
`.. 395/275
`4,358,829
`7/1991 Styma etal.
`......
`395/275
`5,034,915
`5,060,144 10/1991 Sipple et al.
`...
`395/650
`5,220,653
`6/1993 Miro...........
`- 395/826
`5,251,318
`10/1993 Nitta et al. oceeeneeseeeeee 395/725
`
`
`
`TEMPORARY
`STORAGE
`
`
`
`
`
`RESTORATION
`MEANS
`
`
`
` WRITE
`
`B
`REQUEST
`
`MEANS
` HE 26
`
`|BUFFER
`
`
`
`
` EXCLUSIVE
`CONTROL
`MEANS
`
`
`
`11 EXTERNAL STORAGE
`EXCLUSION
`
`
`EXCLUSION
`CANCELLATION
`MEANS
`MEANS
`
`
`
`Google Exhibit 1042
`Google Exhibit 1042
`Google v. Valtrus
`Google v. Valtrus
`
`:
`8 Claims, 9 Drawing Sheets
`
`15
`
`NONVOLATILE
`
`
`TEMPORARY
`STORAGE ERASE
`MEANS
`
`
`
`
`STORAGE
`
`
`
`
`U.S. Patent
`
`Jan. 14, 1997
`
`Sheet 1 of 9
`
`5,594,909
`
`22
`
`15
`
`TEMPORARY
`STORAGE ERASE
`MEANS
`
`19
`
`BUFFER
`
`
`NONVOLATILE
`STORAGE
`
`
`
`TEMPORARY
`
`STORAGE
`=I
`24
`
`Sane SAVE|]RESTORATION
`
`MEANS
`25
`WRITE
`Ls|
`
`
`
`REQUEST 7
`jeMEANS
`
`BUF|BUFFER REQUEST
`
`MEANS
`
`18
`
`PA
`
`EXCLUSIVE
`CONTROL
`MEANS
`
`
`
`26
`
`17
`
`23
`
`EXCLUSION
`
`eae CANCELLATION
`MEAN
`MEANS
`
`11 EXTERNAL STORAGE
`
`
`
`U.S. Patent
`
`Jan. 14, 1997
`
`Sheet 2 of 9
`
`5,594,909
`
`—FIG.2
`
`
`
`
`
`U.S. Patent
`
`Jan. 14, 1997
`
`Sheet 3 of 9
`
`5,594,909
`
`FIG.3
`
`_ READ REQUEST MEANS
`
`CHECK BUFFER
`FOR REQUESTED BLOCK
`
`x BLOCK EXISTS ?
`
`NO
`
`CHECK TEMPORARY
`STORAGE AREA
`
`FOR REQUESTED BLOCK
`
`
`
`
`
`
`301
`
`302
`
`303
`
`304
`
`305
`
`BUFFER RESTORATION
`MEANS ACTIVATED
`
`VES
`
`
`
`
`
`“BLOCK EXISTS ?
`
`BLOCK READ MEANS
`ACTIVATED
`
`
`
`U.S. Patent
`
`Jan. 14, 1997
`
`Sheet 4 of 9
`
`5,594,909
`
`FIG.4
`
`
`
`START
`
`ACTIVATION OF WRITE
`- REQUEST MEANS
`
`
`401
`
`
`ACTIVATION OF EXCLUSIVE
`CONTROL MEANS
`
`402
`
`FIG.5
`
`WRITE REQUEST MEANS
`
`
`
`ACTIVATION OF BUFFER
`SAVE MEANS
`
`
`
`|||
`ss
`ACTIVATION OF BLOCK
`WRITE MEANS
`
`501
`
`502
`
`
`
`
`
`
`
`
`
`
`
`FOR EACH
`BLOCK
`
`
`
`U.S. Patent
`
`Jan. 14, 1997
`
`Sheet 5 of 9
`
`5,594,909
`
`FIG.6
`
`EXCLUSIVE
`CONTROL MEANS
`
`WAITING 9?
`
`601
`
`602
`
`
`
`
`
`
`ACTIVATION OF TEMPORARY
`STORAGE ERASE MEANS
`
`ACTIVATION OF EXCLUSION
`CANCELLATION MEANS
`
`FIG.7
`
`ACTIVATION OF TEMPORARY
`STORAGE ERASE MEANS
`
`
`
`
`REACTIVATION
`OF APPLICATION
`
`701
`
`702
`
`
`
`U.S. Patent
`
`Jan. 14, 1997
`
`Sheet 6 of 9
`
`5,594,909
`
`FIG.8
`
`
`
`ACTIVATION OF BUFFER |7801
`
`RESTORATION MEANS
`
`
`
`
`
`
`ACTIVATION OF BLOCK
`WRITE MEANS
`
`ACTIVATION OF TEMPORARY
`STORAGE ERASE MEANS
`
`802
`
`803
`
`
`
`U.S. Patent
`
`Jan. 14, 1997
`
`Sheet 7 of 9
`
`5,594,909
`
`FIG.9
`
`STRAGE AREA
`
`SEMICONDUCTOR
`STORAGE?
`
`YES
`
`WRITING OF APPLICABLE
`BLOCK TO FILE
`
` REFER TO BLOCK DATA
`
`
`
`
`
`
`END OF SUCH BLOCKS
`
`YES
`
`REFER TO BLOCK DATA
`STORAGE AREA
`
`MAGNETIC STORAGE
`
`
`
`U.S. Patent
`
`Jan. 14, 1997
`
`Sheet 8 of 9
`
`5,594,909
`
`FIG.10
`
`1001
`
`REFER TO
`BLOCK DATA
`
`ARRANGEMENT
`OF BLOCKS
`IN THE ORDER
`
`1002
`
`1003
`
`STORAGE AREA
`OF POSITIONS
`
`
`
`
` BLOCK WRITING
`WITH STARTING
`FROM POSITION
`
`
`FOR FASTEST
`
`ACCESS
`
`END OF BLOCKS
`
`4004
`
`1005
`
`
`
`U.S. Patent
`
`Jan. 14, 1997
`
`Sheet 9 of 9
`
`5,594,909
`
`
`
`BLOCK]|BLOCK/ BLOCK} BLOCK} BLOCK! BLOCK
`
`
`
`
`
`
`
`130
`
`
`1130
`DATA RECORD
`
`DATA RECORD/%!°
`
`DATA RECORD
`
`120
`
`
`
`5,594,909
`
`1
`FILE /O CONTROL DEVICE WRITING
`BLOCKSTO FASTER DEVICE FIRST AND
`CANCELING EXCLUSIVE LOCK AS EACH
`BLOCKIS WRITTEN
`
`BACKGROUNDS OF THE INVENTION
`
`1. Field of the Invention
`
`This invention relates to a computer system provided with
`an external storage commonly used by a plurality of pro-
`grams(application programs), and particularly relates to a
`file input/output control device for a computer system
`capable of reducing the time required for canceling exclu-
`sive control of file blocks.
`
`2. Description of the Prior Art
`Whena plurality of application programs using a common
`file on an external storage are run concurrently, exclusive
`control is applied to avoid confusionin file contents. A file
`on an external storage is typically divided into a plurality of
`blocks, each of which contains a plurality of data records,
`and each block serves as a unit for input to or output from
`a buffer and a unit for exclusive control.
`The exclusive control has various peculiar drawbacks.
`Now aconventional exclusive control methodforfile blocks
`is described.
`
`15
`
`20
`
`25
`
`2
`storage, and if there are both magnetic and semiconductor
`storage blocks,
`the semiconductor storage block is kept
`under exclusion modestill after completion of writing in
`shorter time with waiting for completion at the magnetic
`storage. This impairs improvement of efficiency. In other
`words, even if a semiconductor storage is introduced, it
`cannot contribute to a higher efficiency with utilization of
`the file on the semiconductor storage concurrently by a
`plurality of programs since the time while the blocks are
`under exclusive control cannot be reduced. This invention
`mainly addresses cancellation of exclusive control for a
`block when a quiet point is established.
`The conventional system has an advantage in that once a
`quiet point is established upon the occurrence of a demand
`for establishment, a demandfor rollback will never occur in
`the writing process to the buffer and releasing of exclusive
`control. Accordingly, when the exclusive control is released
`at any time after writing in the buffer, atomicity will not be
`lost. However, in practice, it is possible to cause failure of
`the external storage device or hang-up of the electronic
`computer during writing to the buffer. It thus becomes
`necessary to provide servers which can guarantee atomicity.
`This nature is referred to as “durability.” In order to assure
`durability, when failure is caused during the process of
`establishing the quiet point,
`the system automatically
`executes a rollback.
`;
`
`The processing of quiet point establishment at an end of
`the application programafter a plurality of blocks inafile on
`In the prior art, since the exclusive control is maintained
`an external storage are transferred to a buffer for update or
`during writing in the buffer, rollback can be executed even
`other processing is conventionally performed as described
`whena failure occurs. Even whenafailure occurs during the
`below. Note here that the blocks transferred to the buffer and
`releaseof the exclusive control after completion ofthe buffer
`subjected to update or other processing have been already
`writing process, since writing in the buffer has already been
`placed under exclusive control.
`completed, atomicity can be guaranteed.
`An exclusive control means first activates a block write
`Another method for assuring atomicity upon occurrence
`means by specifying all the blocks updated by the applica-
`of failure during buffer writing is to write in the buffer for
`tion program. The block write means writes a plurality of
`which writing is held incomplete after recovery of the
`blocks in the buffer one by oneto thefile.
`failure. To do this, it becomes necessary to store the content
`of the buffer in a non-volatile memory. In general, a non-
`Upon completion of writing of all the blocks updated by
`volatile memory is expensive or low-speed, such as an
`the application program, the exclusive control means acti-
`vates the exclusion cancellation means.
`external storage device, and has poor applicability in prac-
`tical use.
`The exclusion cancellation means then cancels exclusive
`control for all the blocks used in that application at a time.
`This conventional example is characterized by the bulk
`cancellation of exclusive control for all the blocks used in
`one application program, which results in an advantage of
`high efficiency and high speed processing.
`As described above, a conventional exclusion canceila-
`tion method for file blocks is advantageous in that the bulk
`cancellation of exclusive control enables high speed pro-
`cessing. However, with processing speed of computers
`becoming higher, this advantage does not appear so attrac-
`tive now. On the contrary, drawbacks as shown below are
`pointed out.
`With the recent progress in semiconductor technology,
`external storages using semiconductors (semiconductor stor-
`ages) have been put into practice and used in the same way
`as the conventional magnetic storage. Magnetic storages and
`semiconductorstoragesare both used as the external storage.
`In manycases, a single application uses file blocks on both
`devices.
`
`35
`
`45
`
`55
`
`60
`
`Since a semiconductor storage does not have any
`mechanical drive, it is capable of much faster access com-
`pared with a magnetic storage. However, in a conventional
`exclusion cancellation method for file blocks, exclusive
`control is canceled at a time after writing all the blocks
`updatedby the application program to thefile on the external
`
`65
`
`However, owing to recent developmentofthe electronic
`computer and lowering of cost for high speed non-volatile
`storage devices, such as an external storage device employ-
`ing a semiconductor memory, it has become possible to
`guarantee atomicity by the foregoing method.
`
`SUMMARY OF THE INVENTION
`
`An object of the present invention is to provide a file
`input/output control device for a computer system whichis,
`even in an environment where storages with different access
`speeds such as magnetic and semiconductor storages are
`concurrently used as the external storage, capable of can-
`celing exclusive controlforfile blocks without deteriorating
`the performance of higher speed storages.
`According to a preferred embodiment of the present
`invention to attain the object, a file input/output control
`device for a computer system comprises an external storage
`to store a file commonly accessed from a plurality of
`processing programs, rcad means to read a file in the
`external storage block by block, buffer means to store the
`blocks read by the read means, exclusion meansto place the
`blocks in the buffer means under exclusive control block by
`block, block write means to write each of the blocksin the
`buffer meansto the external storage when a quiet pointof the
`processing program is established, and exclusion cancella-
`
`
`
`5,594,909
`
`10
`
`15
`
`20
`
`3
`tion means to, each time the block write means terminates
`writing for a block, cancel exclusive control for that block.
`According to a further preferred embodiment, the external
`storage comprises a plurality of storages with different
`processing speeds and there are further block data storage
`means to store data to indicate the source storage of the
`block read from the file in the storage means and write
`request means which refers to the block data storage means
`and instructs the block write means to write the blocks
`starting from the blocks whose sourcestorage is the storage
`means with the faster processing speed.
`Another object of the present invention is to provide a file ©
`input/output control device for a computer system which
`enables effective restoration without wasting the processing
`results so far as far as possible even in case where the system
`goes down due to any system failure.
`A file input/output control device for a computer system
`of the present invention to attain this object comprises
`temporary storage means to temporarily store the updated
`blocks in the buffer means, save means to save the appli-
`cable blocks to the temporary storage meansat the time of
`writing of the blocks stored in the buffer means to the
`external storage, and restoration meansto restore in case of
`failure by rewriting the blocks in the temporary storage
`means to the buffer means.
`
`25
`
`According to another preferred embodiment, the tempo-
`rary storage means comprises a nonvolatile storage medium.
`According to still another preferred embodiment, a file
`input/output control device for a computer system further
`comprises erase meansto erase the blocks in the temporary
`storage means upon completion of rewriting of the blocks in
`the temporary storage means to the buffer means.
`Other objects, characteristics and effects of the present
`invention will be clarified by the detailed description below.
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`FIG. 1 is a diagram to show the configuration of an
`embodimentof a file input/output control device where the
`exclusive control method of the present invention is applied;
`FIG. 2 is a block diagram to show the configuration of a
`external storage;
`FIG. 3 is a flowchart to illustrate the reading processing
`by read request means;
`FIG.4 is a flowchart to show the processing when a quiet
`point is established in the embodiment shownin FIG. 1;
`FIG. 5 is a flowchart to show the processing by the write
`request means;
`FIG. 6 is a flowchart to show the processing by the
`exclusive control means;
`FIG. 7 is a flowchart to illustrate the restoration process-
`ing after system down;
`FIG.8 is a flowchart to illustrate the restoration proccss-
`ing after system down;
`FIG.9 is a flowchart to control the order of block writing
`corresponding to the access speed of the applicable external
`storage;
`FIG. 10 is a flowchart to illustrate the control of the order
`for block writing corresponding to the write position in the
`same external storage,
`FIG.11 is a diagram to show an example of configuration
`for a file in the external storage,
`DESCRIPTION OF THE PREFERRED
`EMBODIMENT
`
`Referring to FIGS. 1 to 11, a preferred embodimentof the
`present invention will be described below, FIG. 1 showsthe
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`4
`configuration of a file input/output control device to which
`the exclusive contro! method according to an embodiment of
`the present invention is applied. This embodiment is also
`capable of block contents restoration in case of system
`failure.
`
`In FIG. 1, the file input/output control device comprises,
`as its part to store and keep data, an external storage 11
`storing a file 12 used by a plurality of application programs
`(processing programs), a storage 13 where a buffer 14 for
`actual block update or other processing is assigned, a
`nonvolatile storage 15 where a temporary storage area 16 is
`assigned for backing up in case of failure, a block data
`storage area 30 to store data for each block. The external
`storage 11 is provided, as shown in FIG. 2, with a magnetic
`storage 11a and a semiconductorstorage 11b, each of which
`stores a file 12. The file 12 consists, as shown in FIG. 11, of
`a plurality of blocks 120 each containing a plurality of data
`records 130. The block 120 serves as a unit of input to and
`output from the buffer 14 and also a unit of exclusive
`control.
`
`A plurality of application programs which commonly use
`a file on the external storage 11 update or otherwise process
`data records 130 on the buffer 14 in the storage 13. The
`nonvolatile storage 15 may be a RAM(Random Access
`Memory) with power backup or an EEPROM(Electronic
`Erasable and Programmable ROM). The block data storage
`area 30 stores the type (magnetic storage 11a or semicon-
`ductor storage 11D)of the applicable external storage used as
`the source storage of the blocks read or written and, if the
`blocks are in the magnetic storage 11a, write positions.
`In addition, this file input/output control device has,as its
`functions, exclusion means 17 to exclusively control each
`block, buffer save means 19 to save the blocksin the buffer
`14 to the temporary storage area 16, block write means 20
`to write the blocks in the buffer 14 to the file 12, write
`request means18 to control the buffer save means 19 and the
`block write means 20, temporary storage erase means 22 to
`erase the blocks in the temporary storage area 16, exclusion
`cancellation means 23 to cancel exclusive control for a
`block, exclusive contro] means 21 to control the temporary
`storage erase means 22 andthe exclusion cancellation means
`23, buffer restoration means 24 to restore the contents in the
`buffer 14 from the contents in the temporary storage area 16,
`block read means 26 to read blocks from thefile 12 in the
`external storage 11 and store them to the buffer 14 and the
`read request means25 to control the buffer restoration means
`24 and the block read means 26.
`
`Next, the operation of a file input/output control device
`configured as above is described below.
`FIG. 3 is a flowchart to illustrate processing at the rcad
`request means 25 when an application program reads a block
`from the file 12 on the external storage 11. Firstly, the read
`request means 25 checks whether buffer 14 has the acquired
`block (Step 301). If that block is on the buffer 14 (““YES”for
`Step 302), the processing ends since there is no need of
`reading the requested block from thefile 12 on the external
`storage 11.
`the
`If the required block is not found in Step 302,
`temporary storage area 16 in the nonvolatile storage 15 is
`checked for the requested block (Step 303). If the requested
`block exists on the temporary storage area 16 (“YES” for
`Step 304), the buffer restoration means24 is activated so that
`the requested block is fetched from the temporary storage
`area 16 and stored in the buffer 14 (Step 305). If the required
`block is not found in Step 304, the block read means 26is
`activated so that the requested block is read from thefile 12
`
`
`
`5,594,909
`
`5
`in the external storage 11 andstored to the buffer 14 (Step
`306).
`Suppose an application program reads a plurality of
`blocksin the file 12 on the external storage 11 and updates
`or otherwise processes them at the buffer 14 in the storage
`13 and then establishes a quiet point when the processing
`ends. Note that the block transferred to the buffer 14 and
`subjected to update or other processing has been already
`placed under exclusive control by the exclusion means 17.
`FIG.4 showsthe processing of quiet point establishment.
`The write request means 18 (Step 401) first, and then the
`exclusive control means 21 (Step 402) are activated. There-
`after, as shown in FIG. 5,
`the write request means 18
`activates the buffer save means 19 (Step 501). The buffer
`save means 19 transfers all the blocks in the buffer 14
`updated in its transaction to the temporary storage area 16.
`Whenthe buffer save means 19 terminates its processing,
`the write request means 18 activates the block write means
`20 with specifying a block for each block in the buffer 14
`updated in the transaction (Stcp 502). The block write means
`20 in turn writes the blocks from the buffer 14 to thefile 12
`in the external storage 11 as specified.
`For proper block writing in Step 502 as shownin FIG.5,
`the order of block writing as described below is preferred.
`Primarily, if there are some blocks with different access
`speeds (blocks on the magnetic storage 11a and the semi-
`conductorstorage 115 in the external storage 11), the block
`write means 20 is activated for the blocks in the order of
`access speeds of their source storages starting from the
`fastest one. This enables block writing for a storage with the
`higher access speed to terminate earlier and thereby causes
`the exclusion cancellation as described later to be earlier.
`FIG. 9 shows the processing in this case. The write request
`means 18 refers to the block data storage area 30 (Step 901),
`judges whether the source storage of the specified block is
`the semiconductor storage 11b or not (Step 902), and if the
`source storage is the semiconductor storage 11b, writes the
`block to the file 12 (Step 903). These steps are repeated as
`far as any block whose source storage is the semiconductor
`storage 11b can be found (Step 904). Next, in Steps 905 to
`908, the specified blocks whose source storage is the mag-
`netic storage 11a are subjected to the similar writing pro-
`cessing. This realizes effective block writing.
`Secondly, if there are a plurality of blocks having the
`same source storage (in case of the magnetic storage 11a),
`the block write means 20 is activated for the blocks in the
`order of physical positions in the magnetic storage 11a. For
`example, a block at an outer side of the magnetic disk is
`written earlier. This reduces the seek operation at the mag-
`netic storage 1la with a mechanical drive, which results in
`faster processing. FIG. 10 showstheprocessingin this case.
`Firstly, the write request means 18 refers to the block data
`storage area 30 (Step 1001). The blocks whose source
`storage is the magnetic storage lla are arranged in the order
`of write positions on the magnetic storage La (Step 1002).
`Then,in the orderof accessibility of write positions starting
`from the position which can be accessed the most quickly,
`the blocksare written to the file 12 (Step 1003). These steps
`are repeated until all the blocks are processed (Step 1005).
`On the other hand, as shown in FIG. 6, the exclusive
`control means 21 waits for completion of writing by the
`block write means 20. Whenit detects that the block write
`means 20 terminates the processing, it activates the tempo-
`rary storage erase means 22 (Step 601). The temporary
`storage erase means 22 erases the applicable blocks on the
`temporary storage area 16 on the nonvolatile storage 15.
`
`20
`
`25
`
`30
`
`35
`
`45
`
`50
`
`55
`
`60
`
`65
`
`6
`Then, the exclusive control means 21 activates the exclusion
`cancellation means 23 (Step 602). The exclusion cancella-
`tion means 23 cancels the exclusive control for the blocks
`for which the writing is completed.
`Since the exclusion cancellation means 23 operates con-
`currently for the blocks, the blocks for which processing by
`the block write means 20 terminates in shorter time,i.e. the
`blocks on the semiconductor storage 11b, can be released
`from the exclusive control earlier.
`
`Restoration processing in case of system down due to
`system failure or other causes during the processing above
`is now described for two cases,
`Thefirst case is for system down during the processing by
`the buffer save means 19. In this case, the contents in the
`buffer 14 are destroyed or returnedto the initial status and
`they cannot be used. The contents in the temporary storage
`area 16 cannot be used either because whetherthe transfer
`of blocks in Step 501 in FIG. 5 has been completed or not
`cannot be assured. Accordingly, as shown in FIG. 7, the
`temporary storage erase means 22 is activated so as to erase
`the contents in the temporary storage area 16 (Step 701) and
`the application program is reactivated (Step 702). This
`brings the system to the status before starting to use the
`application program so that the user processes the transac-
`tion again.
`Second case is for restoration in case of system down
`during the processing by the block write means 20. In this
`case, too, the contents in the buffer 14 are destroyed or
`returned to the initial status and they cannot be used.
`However, the contents in the temporary storage area 16 can
`be used because the processing has been already completed.
`Accordingly, as shown in FIG. 8, the buffer restoration
`means 24is activated by the read request means 25 so as to
`transfer the blocks from the temporary storage area 16 to the
`buffer 14 (Step 801). Then, the block write means 20 is
`activated and the writing to the file 12 is performed again
`(Step 802). Finally, the temporary storage erase means 22is
`activated so as to erase the contents in the temporary storage
`area 16 (Step 803). In this case, the system can be restored
`without wasting the results of transaction processing so far.
`Asdescribed above,in the file input/output control device
`according to this embodiment, writing from the buffer to the
`file 12 in the external storage 11 is performedfor each block,
`and, each time writing of a block is completed, exclusionis
`canceled for that block; this reduces the time of exclusive
`control for the blocks on the storage capable of high speed
`processing such as a semiconductor storage 11b. This can
`realize concurrent use of the blocks by a plurality of appli-
`cation programs.
`Even when a failure is caused during the foregoing
`process, which makesit impossible to write the buffer 14 in
`the file 12, since the buffer 14 which is incomplete in writing
`is temporarily stored in the temporary storage area 16,
`atomicity can be assured by writing back the content of the
`temporary buffer in the file 12 after recovery.
`Obviously various modifications can be made to the
`embodiment described above.It is intended to cover in the
`appended claimsall such modifications as fall within the
`true spirit and scope of the invention.
`Whatis claimed is:
`1. A file input/output control device for a computer system
`comprising:
`an external storage to store a file commonly accessed by
`a plurality of processing programs;
`read meansfor reading a plurality of blocks in said file in
`said external storage block by block;
`
`
`
`5,594,909
`
`10
`
`20
`
`25
`
`30
`
`35
`
`7
`buffer means for storing the blocks read by said read
`means;
`
`8
`read meansfor readinga plurality of blocks ina file in said
`external storage block by block;
`exclusion means for placing each of the blocks stored in
`buffer means for storing the blocks read by said read
`said buffer means under exclusive control block by
`means;
`block;
`exclusion means for placing each of the blocks stored in
`block write means for writing each of the blocksstored in
`said buffer means under exclusive control block by
`said buffer means to said external storage when a quiet
`block;
`point of one of said processing programsis established;
`block write means for writing each ofthe blocks stored in
`exclusion cancellation means for, each time said block
`said buffer means to said external storage when a quiet
`write means finishes writing one of the blocks, cancel-
`pointof oneof said processing programsis established;
`ing exclusive control for the one block;
`exclusion cancellation means for, each time said block
`temporary storage means for storing temporarily the
`write means finishes writing a one of said blocks,
`blocks in said buffer means;
`canceling exclusive contro! for the one block;
`save means for saving the blocks to said temporary
`temporary storage means for storing temporarily the
`storage means before the block write means writes the
`blocks stored in said buffer means;
`blocks stored in said buffer means to said external
`save means for saving at least one of the blocks to said
`storage;
`temporary storage meansbefore the block write means
`buffer restoration means for writing each of said blocks
`writes the at least one block stored in said buffer means
`stored in said temporary storage meansinto said buffer
`to said external storage;
`means in case of failure in writing each of said blocks
`restoration means for restoring in case of failure by
`into said external storage by said block write means;
`rewriting the blocks in said temporary storage mcansto
`wherein said external storage includes a plurality of
`said buffer means;
`storages with different processing speeds; and further
`wherein said external storage includes a plurality of
`comprising
`storages with different processing speeds; and further
`block data storage meansfor storing data to indicate a one
`comprising
`of the storages in said external storage from which the
`block data storage meansforstoring data to indicate a one
`biock was read; and
`ofthe storages in said external storage from which the
`write request means for referring to said block data
`block was read; and
`storage meansand instructing said block write means to
`write request means for referring to said block data
`write the blocks starting from the blocks whoseindi-
`storage meansandinstructing said block write meansto
`cated one of the storages has the faster processing
`write the blocks starting from the blocks whose indi-
`speed.
`cated one of the storages has the faster processing
`2. A file input/output control device for a computer system
`speed.
`of claim 1 wherein said block data storage means includes
`6. A file input/output control device for a computer system
`means for storing as data the block write positions on said
`of claim 5 further comprising erase means for erasing the
`external storage; and wherein said write request means
`blocks in said temporary storage means upon completion of
`includes means for referring to said block data storage
`rewriting of the blocks in said temporary storage means to
`means and instructing said block write means to write the
`said buffer means.
`blocksin the order of accessibility of write positions starting
`7. A file input/output control devices for a computer of
`from a position the most quickly accessed.
`claim 5 wherein said temporary storage means comprises a
`3.Afile input/output control device for a computer system
`nonvolatile storage medium.
`of claim 1, wherein said write means writes said more than
`8. A file input/output control device for a computer system
`one block back to a same one of said storages during the
`of claim 5:
`quiet point in an order of physical positions of said more
`wherein said block data storage means includes meansfor
`than one block in said same oneof said storages, when said
`write means determines that more than one block came from
`storing as data the block write positions on said exter-
`nal storage; and
`a same one ofsaid storages.
`4, A file input/output control device for a computer of
`wherein said write request means includes means for
`claim 1, wherein said temporary storage means comprises a
`referring to said block data storage meansandinstruct-
`nonvolatile storage medium.
`ing said block write means. to write the blocks in the
`5.Afile input/output contro] device for a computer system
`order of accessibility of write positions starting from a
`comprising:
`position the most quickly accessed.
`an external storage to store a file commonly accessed by
`x
`ok
`K kK
`a plurality of processing programs;
`
`40
`
`45
`
`50
`
`55
`
`