NON-FINAL ACTION
Notice of Pre-AIA or AIA Status
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
Claim Objections
Claim 13 objected to because of the following informalities: “and wherein the super block” is repeated, which will be interpreted as a typographical error. Appropriate correction is required.
Claim Rejections - 35 USC § 103
The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
Claim(s) 1, 7, 8, 9, 14, 15, 16, 19 and 20 is/are rejected under 35 U.S.C. 103 as being unpatentable over Goodman (US 20180059965) in view of Dragojevic (US 20180365141).
Regarding claim 1, Goodman teaches A computing device comprising: a control circuit controlling operation of the computing device, wherein the control circuit causes the computing device to: execute a first process, wherein the first process creates and manages communication ports to hardware of the computing device (“For example, the host may send a command to the library without receiving a response within a selected or predetermined time and the logical unit may be reset by the host as an attempt at error recovery…. For example, an interface (e.g., serial or Ethernet) that allows the library to communicate with a drive or control port. In another example, an interface (e.g., SCSI, Fibre Channel, or Ethernet) that allows the library to communicate with a host computer” ¶69); and listens for process recovery attempts (“The library may detect the Logical Unit Reset through an interface of the library.” ¶69); and executes a second process, wherein the second process maintains system recovery state information in a persistent memory accessible by the first process and the second process and, upon a recovery of the second process, recovers the system recovery state information from the persistent memory (“In another embodiment, an action for taking a log snapshot would be an operator or service technician initiating a drive or library reset…The logs may comprise trace information (what was the library doing), diagnostic information (what kinds of errors or problems were encountered), statistical information (what was the performance or usage of various library components), backup information (a backup of one or more components of the library state, settings, or configuration), database information (the contents of one more library databases), etc.” ¶59 “The snapshot is stored by the automated data storage library and it may be stored within the library itself (e.g., on a hard disk, in nonvolatile memory, CompactFlash card, etc.)” ¶61). Goodman does not teach through a memory allocator object of a first library and, upon a recovery of the second process, orchestrates management of the communication ports by the first process and recovers the system recovery state information from the persistent memory through the memory allocator object
Dragojevic teaches through a memory allocator object of a first library and, upon a recovery of the second process, orchestrates management of the communication ports by the first process and recovers the system recovery state information from the persistent memory through the memory allocator object (“In block 306, the memory allocator identifies a memory portion, which may possibly be allocated to an object, in the memory page. In block 308, the memory allocator accesses the registration data stored in the non-volatile main memory to invoke the recovery function for the program.” ¶56). It would have been obvious for one of ordinary skill in the art to combine the system recovery device of Goodman with the use of a memory allocator object to manage the communication of data as taught by Dragojevic. Allocators are used to perform basic user mode memory management functions (Dragojevic, ¶2).
Regarding claim 7, Goodman teaches wherein, upon the recovery of the second process, the second process issues an import request for a command channel to the first process (“The library may detect the VHF data packet RRQST bit through an interface of the library. For example, an interface (e.g., serial or Ethernet) that allows the library to communicate with a drive or control port.” ¶70). the command channel comprising one of the communication ports managed by the first process (“For example, an interface (e.g., serial or Ethernet) that allows the library to communicate with a drive or control port. In another example, an interface (e.g., SCSI, Fibre Channel, or Ethernet) that allows the library to communicate with a host computer. The Logical Unit Reset may be received by the library over one of these interfaces” ¶69).
Regarding claim 8, Goodman teaches The computing device of claim 7, wherein the first process serves the import request from the second process and wherein the second process then use the command channel to read the system recovery state information (“The VHF data packet may be received by the library over this interface.” ¶70).
Regarding claim 9, it recites a system with substantially similar functions to the device of claim 1.
Regarding claim 14, Goodman teaches wherein, upon the recovery of the second process, the second process issues an import request for a command channel to the first process, wherein the command channel comprising one of the communication ports managed by the first process (“For example, an interface (e.g., serial or Ethernet) that allows the library to communicate with a drive or control port. In another example, an interface (e.g., SCSI, Fibre Channel, or Ethernet) that allows the library to communicate with a host computer. The Logical Unit Reset may be received by the library over one of these interfaces” ¶69); wherein the first process serves the import request from the second process, and wherein the second process then use the command channel to read the recovery state information. (“The library may detect the VHF data packet RRQST bit through an interface of the library. For example, an interface (e.g., serial or Ethernet) that allows the library to communicate with a drive or control port. The VHF data packet may be received by the library over this interface.” ¶70).
Regarding claim 15, Goodman teaches wherein the second process comprises a plurality of second processes and wherein each of the plurality of second processes maintains system recovery state information in the persistent memory and, upon recovery, recovers the system recovery state information from the persistent memory. (“A snapshot of one or more logs associated with the automated data storage library may be captured upon detection of the triggering event, as in block 820. Herein, captured refers to the freezing (e.g., stop adding or modifying information to a log or snapshot), collecting (e.g., gathering different logs, files, snapshots, and/or log data), combining (e.g., concatenating files, logs, snapshots, and/or log data), compressing (e.g., compressing files, logs, snapshots, and/or log data), copying (e.g., copying files, logs, snapshots, and/or log data), saving (e.g., saving files, logs, snapshots, and/or log data), preserving (e.g., preserving files, logs, snapshots, and/or log data),” ¶61).
Regarding claim 16, Goodman teaches A method for recovery of an execution process, the method comprising: executing, by a control circuit of a computing device, a first process, wherein the first process creates and manages communication ports to hardware of the computing device and listens for process recovery attempts, (“For example, an interface (e.g., serial or Ethernet) that allows the library to communicate with a drive or control port. In another example, an interface (e.g., SCSI, Fibre Channel, or Ethernet) that allows the library to communicate with a host computer. The Logical Unit Reset may be received by the library over one of these interfaces.” ¶69). and executing, by the control circuit of the computing device, a second process, wherein the second process maintains system recovery state information in a persistent memory accessible by the first process and the second process and, upon a recovery of the second process, recovers the system recovery state information from the persistent memory. (“The snapshot is stored by the automated data storage library and it may be stored within the library itself (e.g., on a hard disk, in nonvolatile memory, CompactFlash card, etc.)” ¶61). Dragojevic teaches through a memory allocator object of a first library and, upon a recovery of the second process, orchestrates management of the communication ports by the first process and recovers the system recovery state information from the persistent memory through the memory allocator object (“In block 306, the memory allocator identifies a memory portion, which may possibly be allocated to an object, in the memory page. In block 308, the memory allocator accesses the registration data stored in the non-volatile main memory to invoke the recovery function for the program.” ¶56).
Regarding claim 20, Goodman teaches wherein, upon the recovery of the second process, the second process issues an import request for a command channel to the first process, wherein the the command channel comprising one of the communication ports managed by the first process (“For example, an interface (e.g., serial or Ethernet) that allows the library to communicate with a drive or control port. In another example, an interface (e.g., SCSI, Fibre Channel, or Ethernet) that allows the library to communicate with a host computer.” ¶69); wherein first process serves the import request from the second process, and wherein the second process then use the command channel through the command channel. (“The library may detect the VHF data packet RRQST bit through an interface of the library. For example, an interface (e.g., serial or Ethernet) that allows the library to communicate with a drive or control port. The VHF data packet may be received by the library over this interface.” ¶70).
Claim(s) 2-5, 10-12, 17 and 18 is/are rejected under 35 U.S.C. 103 as being unpatentable over Goodman and Dragojevic in view of Karr (US 20210019237).
Regarding claim 2, Goodman and Dragojevic teach The computing device of claim 1. They do not teach wherein the recovery of the second process comprises a crash recovery.
Karr teaches wherein the recovery of the second process comprises a crash recovery. (“This can be complicated by crash recovery which could be fixed by marking a special type of batch as indicating updates to repair any crash-related consistency issues, with normal operation resuming after such a recovery batch.” ¶478). It would have been obvious for one of ordinary skill in the art prior to the filing of the claimed invention to combine the storing of hardware state information for diagnosis and recovery purposes as taught by Goodman with the mitigation of crash recover as taught by Karr. A crash is another example of a device error, and logging crashes can help repair future ones, for example using particular updates (Karr ¶478).
Regarding claim 3, Karr teaches wherein the recovery of the second process comprises a version update recovery (“…which could be fixed by marking a special type of batch as indicating updates to repair any crash-related consistency issues, with normal operation resuming after such a recovery batch.” ¶478).
Regarding claim 4, Goodman teaches wherein maintaining the system recovery state information comprises writing hardware state information to the persistent memory (“configuration information (e.g., information related to settings and preferences of the library, drive, component, or device), backup information (e.g., a backup of the state, settings, or configuration of the library, drive, component, or device), database information (e.g., information related to any databases that the library, drive, component, or device may have). A snapshot of the one or more logs in an automated data storage library may be stored, as in block 830. The snapshot is stored by the automated data storage library and it may be stored within the library itself (e.g., on a hard disk, in nonvolatile memory, CompactFlash card, etc.)” ¶61. Karr teaches through an Application Programming Interface (API) of a second library, wherein the API calls the memory allocator object in place of hardware drivers of the first library (“A RESTful API (application programming interface) breaks down a transaction to create a series of small modules. Each module addresses a particular underlying part of the transaction. The control or permissions provided with these embodiments, especially for object data, may include utilization of an access control list (‘ACL’). The ACL is a list of permissions attached to an object and the ACL specifies which users or system processes are granted access to objects, as well as what operations are allowed on given objects.” ¶109).
Regarding claim 5, Goodman teaches The computing device of claim 4, wherein the recovery of the second process further comprises recovery of the hardware state information from the persistent memory (“Herein, captured refers to the freezing (e.g., stop adding or modifying information to a log or snapshot), collecting (e.g., gathering different logs, files, snapshots, and/or log data), combining (e.g., concatenating files, logs, snapshots, and/or log data), compressing (e.g., compressing files, logs, snapshots, and/or log data), copying (e.g., copying files, logs, snapshots, and/or log data), saving (e.g., saving files, logs, snapshots, and/or log data), preserving (e.g., preserving files, logs, snapshots, and/or log data)” ¶61). Karr teaches through the API (“In such embodiments, users may have no knowledge regarding the details of where their data is stored but they can still use the same full, unified API to address data.” ¶153).
Regarding claims 10-11, it recites a system that recites substantially similar functions as claims 2-3.
Regarding claim 17, Karr teaches wherein the recovery of the second process comprises a crash recovery. (“This can be complicated by crash recovery which could be fixed by marking a special type of batch as indicating updates to repair any crash-related consistency issues” ¶478).
Regarding claim 18, Karr teaches wherein the recovery of the second process comprises a version update recovery (“…which could be fixed by marking a special type of batch as indicating updates to repair any crash-related consistency issues, with normal operation resuming after such a recovery batch.” ¶478).
Regarding claim 19 Goodman and Dragojevic teach The method of claim 16, wherein maintaining the system recovery state information comprises writing hardware state information to the persistent memory (“A snapshot of the one or more logs in an automated data storage library may be stored, as in block 830. The snapshot is stored by the automated data storage library and it may be stored within the library itself (e.g., on a hard disk, in nonvolatile memory, CompactFlash card, etc.)” ¶61”); and wherein the recovery of the second process further comprises recovery of the hardware state information from the persistent memory. (“…copying (e.g., copying files, logs, snapshots, and/or log data), saving (e.g., saving files, logs, snapshots, and/or log data), preserving (e.g., preserving files, logs, snapshots, and/or log data)” ¶61). Karr teaches through an Application Programming Interface (API) of a second library, wherein the API calls the memory allocator object in place of hardware drivers of the second library (“A RESTful API (application programming interface) breaks down a transaction to create a series of small modules. Each module addresses a particular underlying part of the transaction. The control or permissions provided with these embodiments, especially for object data, may include utilization of an access control list (‘ACL’). The ACL is a list of permissions attached to an object and the ACL specifies which users or system processes are granted access to objects, as well as what operations are allowed on given objects.” ¶109)… through the API (“In such embodiments, users may have no knowledge regarding the details of where their data is stored but they can still use the same full, unified API to address data.” ¶153).
Claim(s) 6 and 13 is/are rejected under 35 U.S.C. 103 as being unpatentable over Goodman and Dragojevic in view of Suzuki (US 20240320097).
Regarding claim 6, Goodman and Dragojevic teach the computing device of claim 1, Goodman teaches stores the system recovery information (“The recovery request log page may contain a recovery procedure, in which more detail can be provided through a read buffer command.” ¶70). but does not teach wherein the persistent memory comprises a superblock and wherein the superblock comprises metadata describing a memory structure for the system recovery state information.
Suzuki teaches wherein the persistent memory comprises a superblock and wherein the superblock comprises metadata describing a memory structure for the system recovery state information (“The block identifier is information for identifying the superblock from other superblocks. The state is information related to the state of the superblock and includes active or non-active. The active state indicates that the superblock is writable.” ¶240). It would have been obvious for one of ordinary skill in the art prior to the filing of the claimed invention to combine the recording of system state data as taught by Goodman with the use of superblock structures and metadata taught by Suzuki. Superblocks allow for the controller to perform read and write operations in parallel (Suzuki ¶70).
Regarding claim 13, Suzuki teaches wherein the persistent memory comprises a superblock and wherein the superblock comprises metadata describing a memory structure for the system recovery state information (“The block identifier is information for identifying the superblock from other superblocks. The state is information related to the state of the superblock and includes active or non-active. The active state indicates that the superblock is writable.” ¶240). Goodman teaches stores the system recovery information (“The recovery request log page may contain a recovery procedure, in which more detail can be provided through a read buffer command.” ¶70).
Conclusion
Any inquiry concerning this communication or earlier communications from the examiner should be directed to SEAN KEVIN MCNAMARA whose telephone number is (703)756-1884. The examiner can normally be reached Monday-Friday 7:30-5:00 EST.
Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Bryce Bonzo can be reached at 571-272-3655. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of published or unpublished applications may be obtained from Patent Center. Unpublished application information in Patent Center is available to registered users. To file and manage patent submissions in Patent Center, visit: https://patentcenter.uspto.gov. Visit https://www.uspto.gov/patents/apply/patent-center for more information about Patent Center and https://www.uspto.gov/patents/docx for information about filing in DOCX format. For additional questions, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
/SEAN KEVIN MCNAMARA/Examiner, Art Unit 2113 /BRYCE P BONZO/Supervisory Patent Examiner, Art Unit 2113