Input/output control device and method applied to fault-resilient computer system
Abstract
When an I/O request block is received from a file system, a number-of-system's-failures setting section stores the present number of failures in the I/O request block, and hands over the I/O request block to a software driver after taking a checkpoint. When the I/O request block is received from the software driver, a number-of-failures determining section determines whether or not the number of failures stored in the I/O request block coincides with the present number of failures. If they do not coincide, an I/O request error return section will return the I/O request block to the software driver without handing over it to a device driver and causes an I/O request completion processing section to reissue the I/O request block again.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1. An input/output control device provided between a higher-level module and a lower-level module in a checkpoint rollback-type computer system, said device comprising: I/O request management means having plural stages of queues, for storing the I/O request block given from said higher-level module into said plural stages of queues in a predetermined order at the time of each checkpoint, and handing over the I/O request block to said lower-level module; means for calling up a reset handler provided in said lower-level module when rollback is carried out; and I/O request completion processing means, responsive to a reset error returned from said lower-level module in answer to the call from said reset handlet, for returning the corresponding I/O request block to a specific one of said plural stages of queues.
2. A device according to claim 1, further comprising: means for stopping DMA (Direct Memory Access) to prevent the DMA from updating the contents of the memory in said system before rollback is carried out.
3. A device according to claim 1, wherein said I/O request completion processing means confirms said reset error by checking for the completion status included in the I/O request block returned from said lower-level module.
4. A device according to claim 1, wherein said lower-level module is a device driver that controls hardware directly.
5. A device according to claim 1, wherein said higher-level module is a file system that receives said I/O request block directly from an application program.
6. An input/output control device provided between a higher-level module and a lower-level module in a checkpoint rollback-type computer system including a middle-level module, said device comprising: number-of-failures monitor means for holding and incrementing the number of failures each time rollback is carried out owing to the occurrence of a failure; means for assigning said number of failures to the I/O request block given from said higher-level module; I/O request management means having plural stages of queues, for storing the I/O request block given said number of failures into said plural stages of queues in a predetermined order at the time of each checkpoint, and handing over the I/O request block to said middle-level module; means for determining whether or not the number of failures assigned to the I/O request block given from said middle-level module coincides with the number of failures held in said number-of-failures monitor means; means for handing over the corresponding I/O request block to said lower-level module when the result of said determining means shows the coincidence; means for reassigning the number of failures held in said number-of-failures monitor means to the corresponding I/O request block and returning the I/O request block to a specific one of said plural stages of queues when the result of said determining means shows the non-coincidence; means for calling up a reset handler provided in said lower-level module when rollback is carried out; and I/O request completion processing means, responsive to a reset error returned from said lower-level module in answer to the call from said reset handler, for reassigning the number of failures held in said number-of-failures monitor means to the corresponding I/O request block and returning the I/O request block to a specific one of said plural stages of queues.
7. A device according to claim 6, further comprising: means for stopping DMA (Direct Memory Access) to prevent the DMA from updating the contents of the memory in said system before rollback is carried out.
8. A device according to claim 6, wherein said I/O request completion processing means confirms said reset error by checking for the completion status included in the I/O request block returned from said lower-level module.
9. A device according to claim 6, wherein said lower-level module is a device driver that controls hardware directly.
10. A device according to claim 6, wherein said higher-level module is a file system that receives said I/O request block directly from an application program.
11. A device according to claim 6, wherein said middle-level module is a software driver that controls software.
12. A method of performing input/output control of I/O request blocks transferred between a higher-level module and a lower-level module in a checkpoint rollback-type computer system, said method comprising the steps of: storing the I/O request block given from said higher-level module into plural stages of queues in a predetermined order at the time of each checkpoint, and handing over the I/O request block to said lower-level module; calling up a reset handler provided in said lower-level module when rollback is carried out; and in response to a reset error returned from said lower-level module in answer to the call from said reset handler, returning the corresponding I/O request block to a specific one of said plural stages of queues.
13. A method according to claim 12, further comprising the step of: stopping DMA (Direct Memory Access) to prevent the DMA from updating the contents of the memory in said system before rollback is carried out.
14. A method according to claim 12, further comprising the step of: confirming said reset error by checking for the completion status included in the I/O request block returned from said lower-level module.
15. A method of performing input/output control of I/O request blocks transferred between a higher-level module and a lower-level module in a checkpoint rollback-type computer system including a middle-level module, said method comprising the steps of: holding and incrementing the number of failures each time rollback is carried out owing to the occurrence of a failure; assigning said number of failures to the I/O request block given from said higher-level module; storing the I/O request block given said number of failures into plural stages of queues in a predetermined order at the time of each checkpoint, and handing over the I/O request block to said middle-level module; determining whether or not the number of failures assigned to the I/O request block given from said middle-level module coincides with the held number of failures; handing over the corresponding I/O request block to said lower-level module when the result of said determination shows the coincidence; reassigning said held number of failures to the corresponding I/O request block and returning the I/O request block to a specific one of said plural stages of queues when the result of said determination shows the non-coincidence; calling up a reset handler provided in said lower-level module when rollback is carried out; and in response to a reset error returned from said lower-level module in answer to the call from said reset handler, reassigning said held number of failures to the corresponding I/O request block and returning the I/O request block to a specific one of said plural stages of queues.
16. A method according to claim 15, further comprising the step of: stopping DMA (Direct Memory Access) to prevent the DMA from updating the contents of the memory in said system before rollback is carried out.
17. A method according to claim 15, further comprising the step of: confirming said reset error by checking for the completion status included in the I/O request block returned from said lower-level module.
18. A storage medium having program code instructions stored thereon which perform input/output control of I/O request blocks transferred between a higher-level module and a lower-level module in a checkpoint rollback-type computer system when executed by a processor, said instructions comprising: storing the I/O request block given from said higher-level module into plural stages of queues in a predetermined order at the time of each checkpoint, and handing over the I/O request block to said lower-level module; calling up a reset handler provided in said lower-level module when rollback is carried out; and in response to a reset error returned from said lower-level module in answer to the call from said reset handler, returning the corresponding I/O request block to a specific one of said plural stages of queues.
19. A storage medium having program code instructions stored thereon which perform input/output control of I/O request blocks transferred between a higher-level module and a lower-level module in a checkpoint rollback-type computer system including a middle-level module when executed by a processor, said instructions comprising: holding and incrementing the number of failures each time rollback is carried out owing to the occurrence of a failure; assigning said number of failures to the I/O request block given from said higher-level module; storing the I/O request block given said number of failures into plural stages of queues in a predetermined order at the time of each checkpoint, and handing over the I/O request block to said middle-level module; determining whether or not the number of failures assigned to the I/O request block given from said middle-level module coincides with the held number of failures; handing over the corresponding I/O request block to said lower-level module when the result of said determination shows the coincidence; reassigning said held number of failures to the corresponding I/O request block and returning the I/O request block to a specific one of said plural stages of queues when the result of said determination shows the non-coincidence; calling up a reset handler provided in said lower-level module when rollback is carried out; and in response to a reset error returned from said lower-level module in answer to the call from said reset handler, reassigning said held number of failures to the corresponding I/O request block and returning the I/O request block to a specific one of said plural stages of queues.Join the waitlist — get patent alerts
Track US6029255A — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.