DETAILED 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 .
Status of Claims
1. Claims 1, 8, and 15 are currently amended.
Claims 4, 7, 11, 14, and 18 are cancelled.
Claims 21-25 are newly added.
Claims 1-3, 5-6, 8-10, 12-13, 15-17 and 19-25 are pending.
Claims 1-3 ,5-6, 8-10, 12-13, 15-17 and 19-25 are rejected.
Response to Arguments
2. Regarding 35 U.S.C. 101 Rejections:
Applicant’s amendments and arguments with respect to the objections to the 35 U.S.C. 101
rejections of the invention have been fully considered and are persuasive. The 35 U.S.C. 101 rejections
have been withdrawn.
3. Regarding Prior Art Rejections:
Applicant’s amendments and arguments to claims 1, 8, and 15 have been considered and are not persuasive. The rejections under 35 U.S.C. 103 are maintained. Additionally, applicant’s arguments are rejected under a new ground of rejection necessitated by the amendment.
4. Applicant argues in remarks:
The Office Action relies on the Miyamura reference in disclosing Applicant's invention. However, there are several key differences between Applicant's invention and the Miyamura reference, such that the Miyamura reference fails to disclose Applicant's amended independent claims. First, as compared to the Miyamura reference Applicant's invention takes a more proactive approach in controlling the data selected for read-ahead. The Miyamura reference achieves better efficiency by grouping files to be read with the current read-ahead behavior in mind which is distinguishable from Applicant's claims. Second, in Applicant's invention a new command is introduced for the drive, allowing the host to inform the drive about the data that will be read next. This enables the drive to decide whether to perform the read-ahead, and if it does, the drive can actively control which data to prefetch. In contrast, in the Miyamura reference the host considers the drive behavior and groups for files to read so they can be accessed efficiently. Within each group the files can be read in any order, enabling a more random-access like operation.
Furthermore, Applicant's invention is effective even when the files are evenly distributed across the tape, although the read order is fixes based on the initial file list. In contrast the Miyamura reference describes a system that is more effective when the files are located relatively close to one another on the tape, and within each group, the read order is flexible, focusing on more random-access style usage.
Thus, the Miyamura reference fails to anticipate amended independent claim 1.
Therefore, for at least the above reasons, independent claim 1 is patentable over Miyamura. For similar reasons, independent claims 8 and 15 are also patentable over Miyamura. Reconsideration and withdrawal of the rejection is, therefore, respectfully requested.
The other claims are dependent from one of the independent claims (i.e., claims 1, 8, and 15) discussed above, and are therefore believed patentable for at least the same reasons. Since each dependent claim is also deemed to define an additional aspect of the invention, however, the individual reconsideration of the patentability of each on its own merits is respectfully requested.
5. Examiner respectfully disagrees with Applicant. Moreover, Examiner notes that only limitations expressed in the amended claims will be addressed. For example, the claims do not discuss ideas of how “the Applicant’s invention is effective even when the files are evenly distributed across the tape.” Therefore, Examiner will only address the limitations of the amended claims: “wherein the received command includes a LOCATE command” and “executing additional read-ahead operations until the ring buffer is full.” Examiner asserts that Miyamura does teach these limitations. Specifically, Examiner references the following paragraphs:
[0042] Upon receiving a read request (or a Locate command), the tape drive first reads the requested data set at the target position, i.e., at the position on the tape where the requested data set is stored. After reading the requested data set, the read head continues to read data that is stored on the tape after the target position, i.e., the read head thus “reads ahead.”
[0042] After reading the requested data set, the read head continues to read data that is stored on the tape after the target position until the buffer 118 reaches a particular or predefined level of fullness. In one embodiment, data is read ahead until the buffer 118 becomes almost full, e.g., 95%.
[0043] The “read ahead” data stored in the buffer 118 may be used when a subsequent read (or Locate) operation is performed.
[0046] FIG. 4 illustrates an example buffer 418 that has been divided into 14 segments 420. The buffer 418 may be a ring buffer.
6. Here, one can see that the requested read request is a Locate command. Additionally, after reading the requested data, the read head continues to read data until the buffer is full or reaches a certain level of fullness. These paragraphs clearly teach the limitations of the newly amended claims.
7. Additionally, claims 2-3, 5-6, 9-10, 12-13, 16-17, and 19-25 depend from and further limit amended claims 1, 8, and 15 and are therefore also rejected under 35 U.S.C 103. As for the newly added claims, please see the full rejection. The full rejection can be found in the 35 U.S.C. 103 rejection section below.
Claim Rejections - 35 USC § 102
The following is a quotation of the appropriate paragraphs of 35 U.S.C. 102 that form the basis for the rejections under this section made in this Office action:
A person shall be entitled to a patent unless –
(a)(1) the claimed invention was patented, described in a printed publication, or in public use, on sale, or otherwise available to the public before the effective filing date of the claimed invention.
8. Claims 1-3, 5-6, 8-10, 12-13, 15-17, 19-21, and 23-24 are rejected under 35 U.S.C. 102(a)(1) as being anticipated by Miyamura et al. US 20210149590 A1.
9. With regard to claim 1, Miyamura teaches:
A computer implemented method comprising:
executing a read-ahead operation by reading data from a tape according to a read plan and storing the data in a ring buffer ([0042] Referring again to FIG. 1, a buffer 118 associated with tape drive 106 is shown. The buffer 118 is used in the read ahead function. Upon receiving a read request (or a Locate command), the tape drive first reads the requested data set at the target position, i.e., at the position on the tape where the requested data set is stored. After reading the requested data set, the read head continues to read data that is stored on the tape after the target position, i.e., the read head thus “reads ahead.” As data is read by the tape drive, it is stored in the buffer 118; [0046] FIG. 4 illustrates an example buffer 418 that has been divided into 14 segments 420. The buffer 418 may be a ring buffer.);
determining whether the ring buffer is full ([0042] In one embodiment, data is read ahead until the buffer 118 becomes almost full, e.g., 95%; [0046] FIG. 4 illustrates an example buffer 418 that has been divided into 14 segments 420. The buffer 418 may be a ring buffer.);
receiving a command indicating an area to be read according to the read plan, wherein the received command includes a LOCATE command ([0042] Upon receiving a read request (or a Locate command), the tape drive first reads the requested data set at the target position, i.e., at the position on the tape where the requested data set is stored. After reading the requested data set, the read head continues to read data that is stored on the tape after the target position, i.e., the read head thus “reads ahead.”; [0043] The “read ahead” data stored in the buffer 118 may be used when a subsequent read (or Locate) operation is performed.);
responsive to receiving the command and determining that the ring buffer is not full, reading additional data from an area of the list of areas to be read corresponding to the command from the ring buffer ([0043] When a subsequent request is received, the tape drive checks the buffer 118 and if the requested data is in the buffer, the tape drive extracts the record from the buffer without moving the tape to a target position and repositioning the tape head at the target position. Therefore, by reading ahead data and storing the read ahead data in the buffer, the tape drive can immediately send the requested data to the host; [0046] FIG. 4 illustrates an example buffer 418 that has been divided into 14 segments 420. The buffer 418 may be a ring buffer.);
executing additional read-ahead operations until the ring buffer is full ([0042] After reading the requested data set, the read head continues to read data that is stored on the tape after the target position until the buffer 118 reaches a particular or predefined level of fullness. In one embodiment, data is read ahead until the buffer 118 becomes almost full, e.g., 95%; [0046] FIG. 4 illustrates an example buffer 418 that has been divided into 14 segments 420. The buffer 418 may be a ring buffer.).
10. With regard to claim 2, Miyamura further teaches:
wherein one or more areas of the list of areas to be read are indicated by read start positions and read end positions ([0035] For the examples shown in FIGS. 3A and 3B, a starting position S for a tape head is assumed; [0071] In operation 806, one or more Read Position commands are issued to obtain the range of records that have been stored in the buffer. The information obtained as a result of the Read Position commands includes the starting position to the end position of the records stored in the buffer.).
11. With regard to claim 3, Miyamura further teaches:
wherein one or more areas of the list of areas to be read are indicated by read start positions and a number of records to be read ([0044] As mentioned above, the read head continues to read data that is stored on the tape after a target position until the buffer 118 reaches a particular or predefined level of fullness. The read ahead function takes into account the quantity of valid data in the buffer 118 that may be requested. When there is data remaining in the buffer 118, the number of segments to be read ahead from the tape is reduced so that the data remaining in the buffer can be used for as long as possible. A Read Position command can be used to get information about the “from record” and the “up to record,” i.e., the range of records, that have been stored in the buffer 118; [0071] In operation 806, one or more Read Position commands are issued to obtain the range of records that have been stored in the buffer. The information obtained as a result of the Read Position commands includes the starting position to the end position of the records stored in the buffer; [0072] Operation 808 checks whether the records of the selected read ahead group are included in the range of the records stored in the buffer, which is obtained in operation 806; Examiner’s Note: Range of records are the records to be read.).
12. With regard to claim 5, Miyamura further teaches:
wherein the received command includes one or more subsequent READ commands ([0044] A Read Position command can be used to get information about the “from record” and the “up to record,” i.e., the range of records, that have been stored in the buffer 118.).
13. With regard to claim 6, Miyamura further teaches:
wherein the one or more subsequent READ commands include an indication of a travel time between positions corresponding to the one or more subsequent READ commands ([0002] Each time the tape drive needs to read a record, the tape drive needs to locate the position of the record on the magnetic tape. As such, a tape drive may be referred to as a sequential access device. Access time depends on the time it takes to move the tape to the position where the data is stored; [0042] After reading the requested data set, the read head continues to read data that is stored on the tape after the target position until the buffer 118 reaches a particular or predefined level of fullness. In one embodiment, data is read ahead until the buffer 118 becomes almost full, e.g., 95%; [0044] As mentioned above, the read head continues to read data that is stored on the tape after a target position until the buffer 118 reaches a particular or predefined level of fullness; [0054] According to various embodiments, a method, system, and computer program product provide for reading multiple files from a sequential storage media utilizing the read-ahead function of a tape drive. A first aspect performs a classifying operation. The number of records that are likely to remain in the buffer 118 without being overwritten by one read-ahead operation are calculated. Files are classified into groups on the basis of the number of likely remaining records. A second aspect performs a copying operation on a set of files. Multiple files are read from the buffer 118 in an arbitrary order without moving the tape. Advantages of the various embodiments may include faster copy operations. Specifically, multiple files may be copied in a shorter amount of time as compared with a copy operation in which the multiple files are sorted (in advance of reading the files from the tape) into an order corresponding with the position of the files on the tape. The order of the calculations for the proposed embodiments becomes O(n) as compared with O(n log n) for sorting files into an order corresponding with the position of the files on the tape.).
14. Regarding claim 8, it is rejected under the same reasoning as claim 1 above. Therefore, it is rejected under the same rationale.
15. Regarding claim 9, it is rejected under the same reasoning as claim 2 above. Therefore, it is rejected under the same rationale.
16. Regarding claim 10, it is rejected under the same reasoning as claim 3 above. Therefore, it is rejected under the same rationale.
17. Regarding claim 12, it is rejected under the same reasoning as claim 5 above. Therefore, it is rejected under the same rationale.
18. Regarding claim 13, it is rejected under the same reasoning as claim 6 above. Therefore, it is rejected under the same rationale.
19. Regarding claim 15, it is rejected under the same reasoning as claim 1 above. Therefore, it is rejected under the same rationale.
20. Regarding claim 16, it is rejected under the same reasoning as claim 2 above. Therefore, it is rejected under the same rationale.
21. Regarding claim 17, it is rejected under the same reasoning as claim 3 above. Therefore, it is rejected under the same rationale.
22. Regarding claim 19, it is rejected under the same reasoning as claim 5 above. Therefore, it is rejected under the same rationale.
23. Regarding claim 20, it is rejected under the same reasoning as claim 6 above. Therefore, it is rejected under the same rationale.
24. With regard to claim 21, Miyamura further teaches:
further comprising:
determining the ring buffer is full ([0042] After reading the requested data set, the read head continues to read data that is stored on the tape after the target position until the buffer 118 reaches a particular or predefined level of fullness.); and
waiting for the ring buffer to have space available ([0042] In one embodiment, data is read ahead until the buffer 118 becomes almost full, e.g., 95%; Examiner’s Note: The read ahead only continues until the buffer becomes full; therefore, space needs to be available for the read ahead to continue.).
25. With regard to claim 23, Miyamura further teaches:
wherein the executing the additional read-ahead operations further comprises:
moving a tape drive head of the tape to a read start position as indicated by the read-ahead and reading either until an end position is reached or until an indicated number of records is met ([0036] FIG. 3A illustrates reading files A, B, C, D in an order specified in the copy request. Assume the file copy request from the application 108 specifies the set of files in the order: A, B, C, D. The tape head first moves from starting position S to read file A, as shown by M1. The tape head next moves to read file B, as shown by M2. The tape head next moves to read file C, as shown by M3. Finally, the tape head moves to read file D, as shown by M4; [0071] In operation 806, one or more Read Position commands are issued to obtain the range of records that have been stored in the buffer. The information obtained as a result of the Read Position commands includes the starting position to the end position of the records stored in the buffer.).
26. With regard to claim 24, Miyamura further teaches:
further comprising:
reading, in response to receiving the LOCATE command, data from an area of a list of areas to be read corresponding to the LOCATE command from the ring buffer ([0042] Upon receiving a read request (or a Locate command), the tape drive first reads the requested data set at the target position, i.e., at the position on the tape where the requested data set is stored; [0046] When a Locate command is requested to move to a record, the tape drive moves the head (and tape) to the position of the record on the tape specified in the Locate command (which corresponds with segment k in the buffer in FIG. 4), and then reads data sets from the tape located after the position specified in the Locate command (i.e., from positions on the tape corresponding with segment k to segment N−1, and from segment 0 to segment i) and saves them in the buffer in preparation for possible use in subsequent read operations.).
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.
27. Claim 22 is rejected under 35 U.S.C. 103 as being unpatentable over Miyamura et al. US 20210149590 A1, as applied in claim 21, in view of Edmondson et al. US 8464001 B1.
28. With regard to claim 22, Miyamura teaches the computer implemented method of claim 21 but fails to explicitly teach wherein the waiting for the ring buffer to have space available, further comprises: releasing data from the ring buffer for data which has already been read.
However, in analogous art, Edmondson teaches:
wherein the waiting for the ring buffer to have space available, further comprises:
releasing data from the ring buffer for data which has already been read (Col. 15, lines 38-58, Data associated with a write command is retrieved from the corresponding sector in the data cache unit 412 and stored in the corresponding bank page within the DRAM 220, thereby cleaning that data. When dirty data is cleaned, the dirty bit within the line state section in the tag store 422 corresponding to the sector storing the clean data is cleared. The sector storing the clean data may be reserved to store data associated with a future read or write command. Data associated with the read command is retrieved from the corresponding bank page within the DRAM 220 and stored in the reserved sector within the data cache unit 412 associated with the read command. When the data is stored in the reserved sector, the pinned bit within the line state section in the tag store 422 corresponding to the reserved sector is cleared. The data associated with the read command is then transmitted to the read data buffer 426 from the reserved sector until the data is transmitted to the client that transmitted the read command. When the data associated with the read command is transmitted to the read data buffer 426, the full bit within the line state section in the tag store 422 corresponding to the sector from which the data is transmitted is cleared.).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to combine the teachings of Miyamura with the teachings of Edmondson wherein the waiting for the ring buffer to have space available, further comprises: releasing data from the ring buffer for data which has already been read. Similarly to Miyamura, Edmondson teaches of a circular buffer, read commands, and data stored in the buffer. Moreover, Edmondson teaches of clearing data when it is cleaned so that the space can be used for future write commands. By clearing the buffer and making space for future write commands, the likelihood of read command stalls is reduced, as discussed in Edmondson (Col. 1, lines 63 – Col. 2, lines 5).
29. Claim 25 is rejected under 35 U.S.C. 103 as being unpatentable over Miyamura et al. US 20210149590 A1, as applied in claim 1, in view of Jotwani US 6148381 A.
30. With regard to claim 25, Miyamura teaches the computer implemented method of claim 1 but fails to explicitly teach further comprising: clearing, in response to a host access disregarding the area and order notified by the read plan, the read plan and returning a drive to normal access mode, wherein the LOCATE command of the drive prioritizes an instruction issued by the host.
However, in analogous art, Jotwani teaches:
further comprising:
clearing, in response to a host access disregarding the area and order notified by the read plan, the read plan and returning a drive to normal access mode, wherein the LOCATE command of the drive prioritizes an instruction issued by the host (Col. 3, lines 38-51, In one embodiment of the present invention, a buffer circuit includes a buffer input, a memory, a memory controller and an upper buffer limit register. The memory is coupled to receive information from the buffer input. The memory has a single-port for accessing a plurality of storage locations for storing the information. The upper buffer limit register is for storing an upper buffer limit value. The memory controller is coupled to the memory and the upper buffer limit register. The memory controller prioritizes writes over reads when the number of storage locations of the memory storing the information is less than the upper buffer limit value. The memory controller prioritizes reads over writes when the number of storage locations storing the information is greater than the upper buffer limit value.).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to combine the teachings of Miyamura with the teachings of Jotwani further comprising: clearing, in response to a host access disregarding the area and order notified by the read plan, the read plan and returning a drive to normal access mode, wherein the LOCATE command of the drive prioritizes an instruction issued by the host. Similarly to Miyamura, Jotwani teaches of a buffer and read commands. Moreover, Jotwani teaches of instances where write processes are prioritized over read commands when the number of storage locations is less than an upper limit value. By prioritizing other commands the probability of buffer overflow is reduced, ensuring that space is created for new data, as discussed in Jotwani (Col. 3, lines 27-37).
Conclusion
Applicant's amendment necessitated the new ground(s) of rejection presented in this Office action. Accordingly, THIS ACTION IS MADE FINAL. See MPEP § 706.07(a). Applicant is reminded of the extension of time policy as set forth in 37 CFR 1.136(a).
A shortened statutory period for reply to this final action is set to expire THREE MONTHS from the mailing date of this action. In the event a first reply is filed within TWO MONTHS of the mailing date of this final action and the advisory action is not mailed until after the end of the THREE-MONTH shortened statutory period, then the shortened statutory period will expire on the date the advisory action is mailed, and any nonprovisional extension fee (37 CFR 1.17(a)) pursuant to 37 CFR 1.136(a) will be calculated from the mailing date of the advisory action. In no event, however, will the statutory period for reply expire later than SIX MONTHS from the mailing date of this final action.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to AN-AN N NGUYEN whose telephone number is (571)272-6147. The examiner can normally be reached Monday-Friday 8:00-5:00 ET.
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, AIMEE LI can be reached at (571) 272-4169. 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.
/AN-AN NGOC NGUYEN/Examiner, Art Unit 2195
/Aimee Li/Supervisory Patent Examiner, Art Unit 2195