DETAILED ACTION
1. This Office Action is taken in response to Applicants’ Amendments and Remarks filed on 12/17/2025 regarding application 18/497,878 filed on 10/30/2023.
Claims 1-20 are pending for consideration.
2. Response to Amendments and Remarks
Applicants’ amendments and remarks have been fully and carefully considered, with the Examiner’s response set forth below.
(1) In response to the amendments and remarks, an updated claim analysis has been made. Refer to the corresponding sections of the following Office Action for details.
3. Examiner’s Note
(1) In the case of amending the Claimed invention, Applicant is respectfully requested to indicate the portion(s) of the specification which dictate(s) the structure relied on for proper interpretation and also to verify and ascertain the metes and bounds of the claimed invention. This will assist in expediting compact prosecution. MPEP 714.02 recites: “Applicant should also specifically point out the support for any amendments made to the disclosure. See MPEP § 2163.06. An amendment which does not comply with the provisions of 37 CFR 1.121(b), (c), (d), and (h) may be held not fully responsive. See MPEP § 714.” Amendments not pointing to specific support in the disclosure may be deemed as not complying with provisions of 37 C.F.R. 1.131(b), (c), (d), and (h) and therefore held not fully responsive. Generic statements such as “Applicants believe no new matter has been introduced” may be deemed insufficient.
(2) Examiner has cited particular columns/paragraph and line numbers in the references applied to the claims above for the convenience of the applicant. Although the specified citations are representative of the teachings of the art and are applied to specific limitations within the individual claim, other passages and figures may apply as well. It is respectfully requested from the applicant in preparing responses, to fully consider the references in entirety as potentially teaching all or part of the claimed invention, as well as the context of the passage as taught by the prior art or disclosed by the Examiner.
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.
4. Claims 1, 6-7, 9, 14-15, and 17 are rejected under 35 U.S.C. 103 as being unpatentable over Murata (US Patent Application Publication 2016/0314153),
and in view of Gupta et al. (US Patent Application Publication 2017/0329828, hereinafter Gupta)
As to claim 1, Murata teaches A method of database management [In this exemplary embodiment, the write information storage device 1 may be a computer or an interchangeable storage medium for storing a database. When the write information storage device 1 is an interchangeable medium for storing a database, for example, a magnetic tape medium, such magnetic tape medium is mounted on a magnetic tape drive device of a computer device and a database is installed on the computer (¶ 0093)], the method comprising:
generating a first metadata table, a second metadata table, and a third metadata table from a preliminary metadata table [as shown in figure 6A, where the top overlapping node is the corresponding “preliminary metadata table,” and the rest of the nodes shown in the tree, including node x and node y, and the corresponding “first metadata table, second metadata table, and third metadata table,” respectively; figure 3 shows the contents of each node/metadata table, including key value range, and a plurality of pointers; When the write request 100 of FIG. 4 is received, the search and update unit 33 generates the self-balancing binary search tree 111 including five nodes 112 as shown in the lower left of FIG. 4 … (¶ 0051)], based on a size of the preliminary metadata table satisfying a threshold [this limitation is taught by Gupta -- as shown in figure 3, where the corresponding “preliminary metadata table” is the time series data table (305), and the first metadata table (310) and the second metadata table (315) are generated from the preliminary metadata table (305); Metadata table generator 230 may be responsible for creating a new metadata table associated with the time series data 250. In some implementations, the amount of data stored in a single metadata table associated with time series data store may exceed a threshold size, and a second metadata table can be created to further optimize data retrieval. For example, if the first metadata table associated with the time series data 250 is configured using time period columns with date/timestamps narrowed to the hour, an additional metadata table may be created that is configured using time period columns with date/timestamps narrowed by day, by month, or in any similar manner. In some implementations, metadata table generator 230 may be invoked automatically by metadata table manager 200 based on determining that the size of the initial metadata table has exceeded a threshold size. Alternatively, metadata table generator 230 may be invoked by metadata manager 200 via a command to create a second metadata table received by request processing module 205 from a computing device connected to the server computing device executing metadata manager 200 (e.g., an administrator console for the network) (¶ 0053)];
changing a preliminary metadata table key range of the preliminary metadata table to have a range outside of a first metadata table key range of the first metadata table [Then, the search and update unit 33 searches an overlapping node (S3). This overlapping node is a node 112 whose key value range overlaps at least part of the write segment. If there is an overlapping node (Y in S4), the search and update unit 33 removes an overlapped part from a key value range of the overlapping node (S5, S6, S10) and inserts a newly created node 112 at the same position as an overlapping node (hereinafter referred to as the top overlapping node) … (¶ 0054); With reference to FIGS. 6A to 6C, an example of searching and removing operation of an overlapping node is now described. FIG. 6A is a diagram showing a process where the search and update unit 33 removes overlapped parts from key value ranges for overlapping nodes. This is called Case 1-A. FIG. 6B is a diagram showing a process where the search and update unit 33 reduces key value ranges and inserts a new node into a position of the top overlapping node. This is called Case 1-B. Also, FIG. 6C is a diagram showing a process where the search and update unit 33 rotates the nodes. This is called Case 1-C … (¶ 0057-0059)];
locating, with a recovery logic, the first metadata table using a beginning metadata table key [This invention efficiently reads out written data from differential data and restores a write state back to an arbitrary time in the past … (abstract); When a write state is restored back to a certain time in the past, the search and update unit 33 initializes the self-balancing binary search tree 111 on the index storage unit 11. Then, the search and update unit 33 deletes a write record which is an unnecessary write from the data list 221 (¶ 0076); For this problem, a measure may be taken to put a limit, up to which data can be recovered on a write basis, on the number of the write records recorded on the data lists 221, reflect older write data than the limit on the data storage unit 21 and delete it from the data list 221. However, it is not efficient to reorganize the self-balancing binary search trees 111 every time old write data is deleted from the data lists 221 (¶ 0085); FIG. 3 is a diagram showing a data structure of each node 112 configuring the self-balancing binary search tree 111 … The self-balancing binary search tree 111 is retrieved, using an address as a key. Therefore, the address range of the node 112 is sometimes called a key value range … (¶ 0043-0046); In this processing, the search and update unit 33 uses an end position address of the write segment as a retrieval key for the right subtree … (¶ 0063-0066)]; and
retrieving, with the recovery logic, a first next metadata table key of the first metadata table [FIG. 3 is a diagram showing a data structure of each node 112 configuring the self-balancing binary search tree 111 … The self-balancing binary search tree 111 is retrieved, using an address as a key. Therefore, the address range of the node 112 is sometimes called a key value range … (¶ 0043-0046); In this processing, the search and update unit 33 uses an end position address of the write segment as a retrieval key for the right subtree … (¶ 0063-0066)].
Regarding claim 1, Murata teaches generating a first metadata table, a second metadata table, and a third metadata table from a preliminary metadata table [as shown in figure 6A, where the top overlapping node is the corresponding “preliminary metadata table,” and the rest of the nodes shown in the tree, including node x and node y, and the corresponding “first metadata table, second metadata table, and third metadata table,” respectively; figure 3 shows the contents of each node/metadata table, including key value range, and a plurality of pointers; When the write request 100 of FIG. 4 is received, the search and update unit 33 generates the self-balancing binary search tree 111 including five nodes 112 as shown in the lower left of FIG. 4 … (¶ 0051)], but does not teach doing so based on a size of the preliminary metadata table satisfying a threshold.
However, Gupta specifically teaches generating multiple metadata tables from a preliminary metadata table based on a size of the preliminary metadata table satisfying a threshold [as shown in figure 3, where the corresponding “preliminary metadata table” is the time series data table (305), and the first metadata table (310) and the second metadata table (315) are generated from the preliminary metadata table (305); Metadata table generator 230 may be responsible for creating a new metadata table associated with the time series data 250. In some implementations, the amount of data stored in a single metadata table associated with time series data store may exceed a threshold size, and a second metadata table can be created to further optimize data retrieval. For example, if the first metadata table associated with the time series data 250 is configured using time period columns with date/timestamps narrowed to the hour, an additional metadata table may be created that is configured using time period columns with date/timestamps narrowed by day, by month, or in any similar manner. In some implementations, metadata table generator 230 may be invoked automatically by metadata table manager 200 based on determining that the size of the initial metadata table has exceeded a threshold size. Alternatively, metadata table generator 230 may be invoked by metadata manager 200 via a command to create a second metadata table received by request processing module 205 from a computing device connected to the server computing device executing metadata manager 200 (e.g., an administrator console for the network) (¶ 0053)].
Therefore, it would have been obvious to one having ordinary skill in the art before the effective filing date of the claimed invention to generate multiple metadata tables from a preliminary metadata table based on a size of the preliminary metadata table satisfying a threshold, as demonstrated by Gupta, and to incorporate it into the existing scheme disclosed by Murata, because Gupta teaches doing so would optimize retrieving data from the metadata table [Metadata table generator 230 may be responsible for creating a new metadata table associated with the time series data 250. In some implementations, the amount of data stored in a single metadata table associated with time series data store may exceed a threshold size, and a second metadata table can be created to further optimize data retrieval … (¶ 0053)].
As to claim 6, Murata in view of Gupta teaches The method of claim 1, further comprising allocating, by the recovery logic, the first next metadata table key [Murata -- This invention efficiently reads out written data from differential data and restores a write state back to an arbitrary time in the past … (abstract); When a write state is restored back to a certain time in the past, the search and update unit 33 initializes the self-balancing binary search tree 111 on the index storage unit 11. Then, the search and update unit 33 deletes a write record which is an unnecessary write from the data list 221 (¶ 0076); For this problem, a measure may be taken to put a limit, up to which data can be recovered on a write basis, on the number of the write records recorded on the data lists 221, reflect older write data than the limit on the data storage unit 21 and delete it from the data list 221. However, it is not efficient to reorganize the self-balancing binary search trees 111 every time old write data is deleted from the data lists 221 (¶ 0085); FIG. 3 is a diagram showing a data structure of each node 112 configuring the self-balancing binary search tree 111 … The self-balancing binary search tree 111 is retrieved, using an address as a key. Therefore, the address range of the node 112 is sometimes called a key value range … (¶ 0043-0046); In this processing, the search and update unit 33 uses an end position address of the write segment as a retrieval key for the right subtree … (¶ 0063-0066)].
As to claim 7, Murata in view of Gupta teaches The method of claim 1, further comprising storing, by the recovery logic, a first allocated metadata table key of the first metadata table and the beginning metadata table key in a manifest [Murata -- as shown in figures 2-4, and 6A, and 6B; FIG. 3 is a diagram showing a data structure of each node 112 configuring the self-balancing binary search tree 111 … The self-balancing binary search tree 111 is retrieved, using an address as a key. Therefore, the address range of the node 112 is sometimes called a key value range … (¶ 0043-0046); In this processing, the search and update unit 33 uses an end position address of the write segment as a retrieval key for the right subtree … (¶ 0063-0066)].
As to claim 9, it recites substantially the same limitations as in claim 1, and is rejected for the same reasons set forth in the analysis of claim 1. Refer to "As to claim 1" presented earlier in this Office Action for details.
As to claim 14, it recites substantially the same limitations as in claim 6, and is rejected for the same reasons set forth in the analysis of claim 6. Refer to "As to claim 6" presented earlier in this Office Action for details.
As to claim 15, it recites substantially the same limitations as in claim 7, and is rejected for the same reasons set forth in the analysis of claim 7. Refer to "As to claim 7" presented earlier in this Office Action for details.
As to claim 17, it recites substantially the same limitations as in claim 1, and is rejected for the same reasons set forth in the analysis of claim 1. Refer to "As to claim 1" presented earlier in this Office Action for details.
5. Claims 8, and 16 are rejected under 103 as being unpatentable over Murata in view of Gupta, and further in view of Milligan et al. (US Patent Application Publication 2004/0128269, hereinafter Milligan2004).
As to claim 8, Murata in view of Gupta does not teach associating the first metadata table with a write lock.
However, using a lock to prevent data from being changed is well non and commonly adopted in the art to maintain data integrity.
For example, Milligan2004 specifically teaches associating the first metadata table with a write lock [metadata table, figure 4, 410; figure 5, 510, 520, 530, 540, 550, and 560; The present invention describes a method for managing data through the use of metadata. More specifically, the present invention is directed to a system and method of families of inter-related tables of metadata in which the tables are logically linked. When certain types of changes are made to any member of such a family these changes will be propagated to all members of that family. This mechanism is particularly suited to use in distributed systems, where diverse elements of the system would each contain logically linked metadata tables that are members of some such family of tables (¶ 0003); … When an application desires to change a metadata entry in a locally stored metadata table, the application must first request a lock of the physical storage location associated with the metadata entry. Once the lock is obtained, the data at the physical storage location and the corresponding metadata entry in the local copy of the metadata table may be modified (¶ 0014)].
Therefore, it would have been obvious to one having ordinary skill in the art before the effective filing date of the claimed invention to associate the first metadata table with a write lock as demonstrated by Milligan2004, and to incorporate it into the existing scheme disclosed by Murata in view of Gupta, in order to maintain the control and integrity of the metadata data entries.
A s to claim 16, it recites substantially the same limitations as in claim 8, and is rejected for the same reasons set forth in the analysis of claim 8. Refer to "As to claim 8" presented earlier in this Office Action for details.
6. Claims 2-3, 5, 10-11, 13, and 18-19 are rejected under 35 U.S.C. 103 as being unpatentable over Murata in view of Gupta, and further in view of Rousseau (US Patent Application Publication 2011/0072300).
As to claim 2, Murata in view of Gupta teaches The method of claim 1, further comprising: locating, by the recovery logic, the second metadata table based on the first next metadata table key or based on a third next metadata table key of the third metadata table [Murata – as shown in figures 2-4, and 6A, and 6B; FIG. 3 is a diagram showing a data structure of each node 112 configuring the self-balancing binary search tree 111 … The self-balancing binary search tree 111 is retrieved, using an address as a key. Therefore, the address range of the node 112 is sometimes called a key value range … (¶ 0043-0046); In this processing, the search and update unit 33 uses an end position address of the write segment as a retrieval key for the right subtree … (¶ 0063-0066)].
Regarding claim 2, Murata in view of Gupta does not teach determining, by the recovery logic, that the second metadata table contains first erroneous keys in a second metadata table key range; and making available, by the recovery logic, first memory space associated with the second metadata table.
However, Rousseau teaches the cited limitations. Specifically, Rousseau teaches determining that the second metadata table contains first erroneous keys in a second metadata table key range; and making available first memory space associated with the second metadata table [According to one embodiment, the method comprises the steps consisting of: defining a virtual memory comprising logical pages having a logical address; defining, in the logical pages, logical blocks having a logical address; defining write commands and read commands of data in the logical blocks; defining, in the first memory zone, erasable physical pages having a physical address; defining, in the erasable physical pages, programmable physical blocks of the same size as the logical blocks and having a physical address; and defining, in the second memory zone, metadata structures associated with the physical blocks, comprising information about the status of each physical block from among the following statuses: block erased, block containing a valid data, or block containing an invalid data (¶ 0022); On the other hand, the program VPG implements the data write method with delayed erase both in the memory zone A1 and in the memory zone A2. Thus, maintenance tasks are equally provided in the memory zone A2 so as to free up memory space for the metadata by erasure of pages containing invalid metadata … The program VPG determines an optimum repartition between the memory space attributed to data and the memory space attributed to metadata, and thus determines the limits of each memory zone. The physical memory zone A1 is necessarily larger than the virtual memory zone due to the invalid data generated by the delayed-erase write method … (¶ 0069-0070)].
Therefore, it would have been obvious to one having ordinary skill in the art before the effective filing date of the claimed invention to determine the second metadata table contains first erroneous data in a second metadata table address range; and making available first memory space associated with the second metadata table, as demonstrated by Rousseau, and to incorporate it into the existing scheme disclosed by Murata in view of Gupta, because Rousseau teaches doing so prevent memory space from being exhausted by invalid data [Besides tasks of erasing invalid data, the program VPG may conduct maintenance tasks consisting of regrouping the valid data that are dispersed in the memory array in order to reveal groups of invalid data that will then be erased in order to free up memory space (¶ 0056)].
As to claim 3, Murata in view of Gupta & Rousseau teaches The method of claim 2, further comprising updating, by the recovery logic, the first next metadata table key or the third next metadata table key to comprise a second next metadata table key of the second metadata table [Murata -- as shown in figures 2-4, and 6A, and 6B; FIG. 3 is a diagram showing a data structure of each node 112 configuring the self-balancing binary search tree 111 … The self-balancing binary search tree 111 is retrieved, using an address as a key. Therefore, the address range of the node 112 is sometimes called a key value range … (¶ 0043-0046); In this processing, the search and update unit 33 uses an end position address of the write segment as a retrieval key for the right subtree … (¶ 0063-0066)].
As to claim 5, Murata in view of Gupta & Rousseau teaches The method of claim 2, further comprising making available, by the recovery logic, second memory space associated with a fourth metadata table containing second erroneous keys in a fourth metadata table key range thereof [Rousseau -- According to one embodiment, the method comprises the steps consisting of: defining a virtual memory comprising logical pages having a logical address; defining, in the logical pages, logical blocks having a logical address; defining write commands and read commands of data in the logical blocks; defining, in the first memory zone, erasable physical pages having a physical address; defining, in the erasable physical pages, programmable physical blocks of the same size as the logical blocks and having a physical address; and defining, in the second memory zone, metadata structures associated with the physical blocks, comprising information about the status of each physical block from among the following statuses: block erased, block containing a valid data, or block containing an invalid data (¶ 0022); On the other hand, the program VPG implements the data write method with delayed erase both in the memory zone A1 and in the memory zone A2. Thus, maintenance tasks are equally provided in the memory zone A2 so as to free up memory space for the metadata by erasure of pages containing invalid metadata … The program VPG determines an optimum repartition between the memory space attributed to data and the memory space attributed to metadata, and thus determines the limits of each memory zone. The physical memory zone A1 is necessarily larger than the virtual memory zone due to the invalid data generated by the delayed-erase write method … (¶ 0069-0070)], wherein a second next metadata table key of the second metadata table points to the fourth metadata table [Murata -- as shown in figures 2-4, and 6A, and 6B; FIG. 3 is a diagram showing a data structure of each node 112 configuring the self-balancing binary search tree 111 … The self-balancing binary search tree 111 is retrieved, using an address as a key. Therefore, the address range of the node 112 is sometimes called a key value range … (¶ 0043-0046); In this processing, the search and update unit 33 uses an end position address of the write segment as a retrieval key for the right subtree … (¶ 0063-0066)].
As to claim 10, it recites substantially the same limitations as in claim 2, and is rejected for the same reasons set forth in the analysis of claim 2. Refer to "As to claim 2" presented earlier in this Office Action for details.
As to claim 11, it recites substantially the same limitations as in claim 3, and is rejected for the same reasons set forth in the analysis of claim 3. Refer to "As to claim 3" presented earlier in this Office Action for details.
As to claim 13, it recites substantially the same limitations as in claim 5, and is rejected for the same reasons set forth in the analysis of claim 5. Refer to "As to claim 5" presented earlier in this Office Action for details.
As to claim 18, it recites substantially the same limitations as in claim 2, and is rejected for the same reasons set forth in the analysis of claim 2. Refer to "As to claim 2" presented earlier in this Office Action for details.
As to claim 19, it recites substantially the same limitations as in claim 3, and is rejected for the same reasons set forth in the analysis of claim 3. Refer to "As to claim 3" presented earlier in this Office Action for details.
7. Claims 4, 12, and 20 are rejected under 35 U.S.C. 103 as being unpatentable over Murata in view of Gupta & Rousseau, and further in view of Kim (US Patent Application Publication 2015/0310053).
As to claim 4, Murata in view of Gupta & Rousseau teaches the second metadata table comprises a second metadata table key range; the third metadata table comprises a third metadata table key range [Murata – as shown in figures 2-4, and 6A, and 6B; FIG. 3 is a diagram showing a data structure of each node 112 configuring the self-balancing binary search tree 111 … The self-balancing binary search tree 111 is retrieved, using an address as a key. Therefore, the address range of the node 112 is sometimes called a key value range … (¶ 0043-0046); In this processing, the search and update unit 33 uses an end position address of the write segment as a retrieval key for the right subtree … (¶ 0063-0066); Rousseau -- Still in reference to FIG. 2, the memory zone A2 comprises metadata physical pages MPP designated by their physical address MPPA … (¶ 0068); figure 8 shows different ranges of MPPA], and the method further comprises updating, by the recovery logic, the first metadata table key range or the third metadata table key range to include the second metadata table key range [Murata -- as shown in figures 2-4, and 6A, and 6B; FIG. 3 is a diagram showing a data structure of each node 112 configuring the self-balancing binary search tree 111 … The self-balancing binary search tree 111 is retrieved, using an address as a key. Therefore, the address range of the node 112 is sometimes called a key value range … (¶ 0043-0046); In this processing, the search and update unit 33 uses an end position address of the write segment as a retrieval key for the right subtree … (¶ 0063-0066)].
Regarding claim 4, Murata in view of Gupta & Rousseau does not expressively teach a third metadata table key range between the first metadata table key range and the second metadata table key range.
However, Kim specifically teaches a third metadata table key range between the first metadata table key range and the second metadata table key range [as shown in figure 1A; In accordance with an aspect of the present invention, a method of generating a secondary index is provided. The method includes generating, in response to a size of an index data being greater than a size of a memory block, an index data table including the index data and recording the index data table in a memory, generating a metadata table of the index data table and recording the metadata table in the memory, and performing a merge and sort regarding at least one of the index data table and the metadata table (¶ 0015); In addition, the controller 120 generates the metadata table for the index data table on which the range merge and sort is performed, and records the index data table in the memory 110. In other words, the metadata table (10, 13) 830 is generated with respect to the newly-sorted table (10,11,12), (13,15,17) 830. In an embodiment of the present invention illustrated in FIG. 9, when a range merge and sort is performed for the index data tables (11,15,17), (10,12,13), (9,10,11) 910, new index data tables (9,10,10), (11,11,12), (13,15,17) 920 are generated. The metadata table (9,11,13) 930 regarding these index data tables 920 is generated (¶ 0057-0058)].
Therefore, it would have been obvious to one having ordinary skill in the art before the effective filing date of the claimed invention to have a third metadata table key range between the first metadata table key range and the second metadata table key range, as demonstrated by Kim, and to incorporate it into the existing scheme disclosed by Murata in view of Gupta & Rousseau, because Kim teaches doing so reduces I/O traffic cost, reduces merge overhead, and improves space efficiency and a method for generating the secondary index [The present invention has been made to address the above-mentioned problems and disadvantages, and to provide at least the advantages described below. Accordingly, an aspect of the present invention provides a secondary index structure which reduces I/O traffic cost, reduces merge overhead, and improves space efficiency and a method for generating the secondary index (¶ 0014)].
As to claim 12, it recites substantially the same limitations as in claim 4, and is rejected for the same reasons set forth in the analysis of claim 4. Refer to "As to claim 4" presented earlier in this Office Action for details.
As to claim 20, it recites substantially the same limitations as in claim 4, and is rejected for the same reasons set forth in the analysis of claim 4. Refer to "As to claim 4" presented earlier in this Office Action for details.
Conclusion
8. Claims 1-20 are rejected as explained above.
9. Any inquiry concerning this communication or earlier communications from the examiner should be directed to SHENG JEN TSAI whose telephone number is 571-272-4244. The examiner can normally be reached on Monday-Friday, 9-6.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Reginald Bragdon can be reached on 571-272-4204. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of an application may be obtained from the Patent Application Information Retrieval (PAIR) system. Status information for published applications may be obtained from either Private PAIR or Public PAIR. Status information for unpublished applications is available through Private PAIR only. For more information about the PAIR system, see http://pair-direct.uspto.gov. Should you have questions on access to the Private PAIR system, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free).
/SHENG JEN TSAI/Primary Examiner, Art Unit 2139
February 5, 2026