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 .
In the event the determination of the status of the application as subject to AIA 35 U.S.C. 102 and 103 (or as subject to pre-AIA 35 U.S.C. 102 and 103) is incorrect, any correction of the statutory basis (i.e., changing from AIA to pre-AIA ) for the rejection will not be considered a new ground of rejection if the prior art relied upon, and the rationale supporting the rejection, would be the same under either status.
Response to Amendment
The amendment filed July 14, 2026 has been entered. Claims 18 and 21 are cancelled and claims 30 and 31 are newly filed, leaving claims 1-17, 26, 30, and 31 pending in this application.
Applicant’s election without traverse of claims 1-16 and 26 in the reply filed on July 14, 2026 is acknowledged. Claim 17 is withdrawn from consideration and claims 1-16, 26, 30, and 31 are examined in this office action.
Priority
Applicant’s claim for the benefit of prior-filed application PCT/CN2023/118948 under 35 U.S.C. 119(e) or under 35 U.S.C. 120, 121, 365(c), or 386(c) is acknowledged.
Acknowledgment is made of applicant's claim for foreign priority based on application CN202211154101.5 filed in China on September 21, 2022.
Receipt is acknowledged of certified copies of papers required by 37 CFR 1.55.
Information Disclosure Statement
The information disclosure statement (IDS) submitted on May 26, 2025 is in compliance with the provisions of 37 CFR 1.97. Accordingly, the information disclosure statement is being considered by the examiner.
Specification
The lengthy specification has not been checked to the extent necessary to determine the presence of all possible minor errors. Applicant’s cooperation is requested in correcting any errors of which applicant may become aware in the specification.
Claim Objections
Claims 1-16, 30, and 31 are objected to because of the following informalities:
Claim 1 recites “the first storage node”, but should recite “the at least one first storage node” for consistency with the earlier recitation,
The dependent claims are objected to for dependence on claim 1.
Appropriate correction is required.
Claim Rejections - 35 USC § 112
The following is a quotation of 35 U.S.C. 112(b):
(b) CONCLUSION.—The specification shall conclude with one or more claims particularly pointing out and distinctly claiming the subject matter which the inventor or a joint inventor regards as the invention.
The following is a quotation of 35 U.S.C. 112 (pre-AIA ), second paragraph:
The specification shall conclude with one or more claims particularly pointing out and distinctly claiming the subject matter which the applicant regards as his invention.
Claims 1-16, 30, and 31 are rejected under 35 U.S.C. 112(b) or 35 U.S.C. 112 (pre-AIA ), second paragraph, as being indefinite for failing to particularly point out and distinctly claim the subject matter which the inventor or a joint inventor (or for applications subject to pre-AIA 35 U.S.C. 112, the applicant), regards as the invention.
Claim 1 recites “when the storage node is determined to be the first storage node”. The phrase “the storage node” lacks proper antecedent basis, as there are multiple storage nodes recited at this point in the claim: at least one first storage node, at least one storage node, and each of the at least one storage node, and the language on its face does not make clear which of the antecedent storage nodes is referred to, leading to an indefinite scope. For the purpose of examination, as it is assumed that the intent is to refer to each of the individual storage node’s capabilities, it is assumed this recites “when the respective storage node is determined to be the first storage node”.
Claims 2-16, 30, and 31 are rejected for dependence on claim 1.
Claim 2 recites “determine a storage node situation of the storage node… reported by the storage node… node information of the storage node”. The phrase “the storage node” lacks proper antecedent basis for a similar reason as with claim 1, as multiple storage nodes have been recited at this point. For the purpose of examination, as the clause immediately prior recites “for each of the at least one storage node”, it is assumed each of these recites ”the respective storage node”.
Claim 5 recites “the storage node includes a node… storage device corresponding to the storage node, the storage node is configured to…”. For the same reason as in claim 1, “the storage node” lacks proper antecedent basis as it is unclear from the immediate claim language which of the already recited storage nodes this generic “the storage node” is meant to draw antecedent basis from. For the purpose of examination, as the context of the claim’s functional configuration is drawn to each of the storage nodes’ configuration, it is assumed claim 5 recites “each respective storage node includes a node… a storage device corresponding to the respective storage node, each of the at least one storage node is configured to”.
Claims 6-8 recites “the storage node is configured to…”. For the same reason as in claim 1, “the storage node” lacks proper antecedent basis. Following the suggestion of parent claim 5, for the purpose of examination it is assumed this instead recites “each of the at least one storage node is configured to…”.
Claim 9 recites “the storage node is further configured to… storage device corresponding to the storage node”. For the same reason as in claim 1, “the storage node” lacks proper antecedent basis. Similar to claim 5, it is assumed for the purpose of examination that claim 9 recites “wherein each of the at least one storage node is further configured to… storage device corresponding to the respective storage node”.
Claim 9 also recites “the list of active storage areas”. This lacks proper antecedent basis, as this is the first recitation of “the list of active storage areas” with respect to claims 1 or 9. For the purpose of examination, it is assumed this recites “a list of active storage areas”.
Claim 10 recites “the storage node is further configured to…”. For the same reason as in claim 1, “the storage node” lacks proper antecedent basis. For the purpose of examination, similar to other dependent claims, it is assumed this instead recites “each of the at least one storage node is further configured to…”.
Claim 11 recites “the storage node is further configured to… storage space information of the storage node”. For the same reason as in claim 1, “the storage node” lacks proper antecedent basis. For the purpose of examination, similar to other dependent claims, it is assumed this instead recites “each of the at least one storage node is further configured to… storage space information of the respective storage node”.
Claim 12 recites “states of data blocks in the storage node from the storage node”. For the same reason as in claim 1, “the storage node” lacks proper antecedent basis. For the purpose of examination, similar to other dependent claims, it is assumed this instead recites “states of data blocks in the respective storage node from the respective storage node”.
Claim 15 recites “the target count of first storage nodes” but this lacks proper antecedent basis as this is the first recitation of the limitation in claim 1 or claim 15. For the purpose of examination, it is assumed this recites “a target count of first storage nodes”.
Claim 16 recites “the target count of second storage nodes”, but this lacks proper antecedent basis as this is the first recitation of the limitation in claims 1, 15 or 16. For the purpose of examination, it is assumed this recites “a target count of second storage nodes”
Claim 16 also recites “each of the target count of second data blocks obtained…” but this limitation lacks proper antecedent basis, as this is the first recitation of the limitation in claims 1, 15, or 16. For the purpose of examination, it is assumed this recites “each of a target count of second data blocks obtained by…”.
Claim 30 recites “reported by the storage node… available space of the storage node… storage areas of the storage node”. For the same reason as provided in claim 1, “the storage node” lacks proper antecedent basis. For the purpose of examination, it is assumed that each recitation of “the storage node” recites “the respective storage node”.
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.
(a)(2) the claimed invention was described in a patent issued under section 151, or in an application for patent published or deemed published under section 122(b), in which the patent or application, as the case may be, names another inventor and was effectively filed before the effective filing date of the claimed invention.
Claims 1-3, 11, and 26 are rejected under 35 U.S.C. 102(a)(1) and 102(a)(2) as being anticipated by Luo et al. (US 2020/0285591).
Regarding claim 1, Luo teaches a distributed storage system (Fig. 9), comprising a client (while not explicitly shown, a client is described accessing the distributed storage system in [0003]), a management node (Fig. 9, management server), and at least one storage node (Fig. 9, storage nodes 1-6), wherein:
the management node is configured to determine at least one first storage node from the at least one storage node in response to a data storage request of storing target data sent by the client (“An access request used by the client to access the volume, for example, a write request, includes a storage address and data. In the distributed block storage system, the storage address is a logical block address (LBA). A data block corresponding to the write request is determined based on the storage address in the write request. The client queries, based on the data block, the partition view in the management server or a partition view locally stored by the client, and determines an NVMe storage device that allocates storage space to the data block. For example, it is assumed that a size of the data block is 1024 bytes, and a data block in the volume is numbered from 0. The storage address included in the write request is a write start address and is 1032 bytes, and a size of the to-be-written data is 64 bytes. The write request is located in a data block numbered 1 (1032/1324), and an internal offset of the data block is 8 (1032%1024),” [0046], where [0065,0066] also describe an embodiment where write requests can be sent to multiple nodes as a result); and
each of the at least one storage node is configured to write the target data sent by the client to a target storage area of a storage device corresponding to the storage node in response to a data write request when the respective storage node is determined to be the first storage node (Fig. 5 shows NVMe controller 501 within the storage node, where [0051] describes how NVMe controller processes requests sent by the client, and [0066-0082] describing an RDMA write process and [0076] specifically has the NVMe controller executing the request).
Regarding claim 2, Luo teaches the system of claim 1, wherein to determine the at least one first storage node from the at least one storage node, the management node is configured to:
for each of the at least one storage node, determine a data storage situation of the storage node based on file storage information and/or storage space information reported by the respective storage node, wherein the storage space information consists of node information of the respective storage node (“A correspondence between a partition and an NVMe storage device, to be specific, a mapping relationship between a partition and an NVMe storage device included in the partition, is also referred to as a partition view. As shown in FIG. 3, for example, a partition includes four NVMe storage devices, and a partition view is “P2-(storage node N1−NVMe storage device 1)-(storage node N2−NVMe storage device 2)-(storage node N3−NVMe storage device 3)-(storage node N4−NVMe storage device 4)”,” [0045]); and
determine the at least one first storage node from the at least one storage node based on the data storage situation (“ The client queries, based on the data block, the partition view in the management server or a partition view locally stored by the client, and determines an NVMe storage device that allocates storage space to the data block,” [0046]).
Regarding claim 3, Luo teaches the system of claim 1, wherein
the target data includes at least one data block of an object (“A data block corresponding to the write request is determined based on the storage address in the write request,” [0046]); and
to determine the at least one first storage node from the at least one storage node, the management node is configured to:
obtain a count of the at least one data block of the object based on the data storage request (Luo’s system utilizes striping across nodes/storage devices, so one data block can be striped across four data slices and two parity slices, see [0048]); and
determine the at least one first storage node from the at least one storage node based on the count of the at least one data block, wherein a count of the at least one first storage node is equal to the count of the at least one data block (“For example, in a first stripe, the NVMe storage device 1, the NVMe storage device 2, the NVMe storage device 3, and the NVMe storage device 4 store data slices whose storage addresses are 0 to 2 KB−1, 2 KB to 4 KB−1, 4 KB to 6 KB−1, and 6 KB to 8 KB−1, respectively, and the NVMe storage device 5 and the NVMe storage device 6 store parity slices of the first stripe, respectively”, [0048]).
Regarding claim 11, Luo teaches the system of claim 1, wherein each of the at least one storage node is further configured to:
store a mapping relationship between the target data and the target storage area, and a mapping relationship between the target storage area and the storage device to which the target storage area belongs; and/or
report, to the management node, related information of a data block in the storage node, and/or storage space information of the respective storage node (the NVMe storage devices in the storage nodes are disclosed to utilize queues for processing access requests to the storage device, see [0051]; when storage devices are added, the storage node will report start addresses of the queue to the management server, necessarily providing information about additional space in the storage node, see [0055]; similarly, when a storage device is removed, the storage node sends queue information deletion message to the management server, which necessarily reflects a decrease in available storage space, see [0058,0059]).
Regarding claim 26, Luo teaches a distributed storage method implemented on a distributed storage system, wherein the distributed storage system includes a management node and at least one storage node (Fig. 9 depicting storage system with management server and storage nodes), and the method is executed by the management node, the method comprising:
determining at least one first storage node from the at least one storage node in response to a data storage request of storing target data sent by a client (“ The client queries, based on the data block, the partition view in the management server or a partition view locally stored by the client, and determines an NVMe storage device that allocates storage space to the data block,” [0046]); and
sending the at least one first storage node to the client to cause the client to send a data write request to the at least one first storage node (“With reference to FIG. 8, the management server receives the query request from the client, queries a mapping relationship recorded in the entries, and sends a query request response to the client. The response includes the start address Add1 of the queue of the NVMe storage device 1 in the storage node 1, a start address Addk of a queue of the NVMe storage device 2 in the storage node 2, a start address Addy of a queue of the NVMe storage device 3 in the storage node 3, and a start address Addz of a queue of the NVMe storage device 4 in the storage node 4,” [0063]; where “The client determines the NVMe storage devices that provide the logical addresses, and obtains memory addresses, in a memory, of start addresses of queues (briefly referred to as the start addresses of the queues below) of the NVMe storage device 1, the NVMe storage device 2, the NVMe storage device 3, and the NVMe storage device 4. For specific implementation in which the client obtains the memory addresses, in the memory, of the start addresses of the queues of the NVMe storage devices, refer to the following description. The client sends RDMA write requests to the NVMe storage device 1, the NVMe storage device 2, the NVMe storage device 3, and the NVMe storage device 4, respectively. The RDMA write request sent to the NVMe storage device 1 by the client includes the logical address L1 and the start address of the queue of the NVMe storage device 1, and further includes data that is to be written into L1 and that is in a write request received by the client. The RDMA write request sent to the NVMe storage device 2 by the client includes the logical address L2 and the start address of the queue of the NVMe storage device 2, and further includes data that is to be written into L2 and that is in the write request received by the client. The RDMA write request sent to the NVMe storage device 3 by the client includes the logical address L3 and the start address of the queue of the NVMe storage device 3, and further includes data that is to be written into L3 and that is in the write request received by the client. The RDMA write request sent to the NVMe storage device 4 by the client includes the logical address L4 and the start address of the queue of the NVMe storage device 4, and further includes data that is to be written into L4 and that is in the write request received by the client,” [0047]).
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.
The factual inquiries for establishing a background for determining obviousness under 35 U.S.C. 103 are summarized as follows:
1. Determining the scope and contents of the prior art.
2. Ascertaining the differences between the prior art and the claims at issue.
3. Resolving the level of ordinary skill in the pertinent art.
4. Considering objective evidence present in the application indicating obviousness or nonobviousness.
This application currently names joint inventors. In considering patentability of the claims the examiner presumes that the subject matter of the various claims was commonly owned as of the effective filing date of the claimed invention(s) absent any evidence to the contrary. Applicant is advised of the obligation under 37 CFR 1.56 to point out the inventor and effective filing dates of each claim that was not commonly owned as of the effective filing date of the later invention in order for the examiner to consider the applicability of 35 U.S.C. 102(b)(2)(C) for any potential 35 U.S.C. 102(a)(2) prior art against the later invention.
Claim 4 is rejected under 35 U.S.C. 103 as being unpatentable over Luo in view of Mimatsu (US 2010/0088335).
Luo teaches the system of claim 1, wherein the target data includes at least one data block of an object (“A data block corresponding to the write request is determined based on the storage address in the write request,” [0046]).
Luo fails to teach wherein to determine the at least one first storage node from the at least one storage node, the management node is configured to:
obtain a size of the least one data block of the object based on the data storage request; and
determine the at least one first storage node from the at least one storage node based on the size of the least one data block of the object and an available size of each of the at least one storage node.
Mimatsu’s disclosure relates to a distributed storage system, and as such comprises analogous art in the same field of endeavor of distributed storage systems.
As part of this disclosure, Mimatsu discloses when a file is to be written, an owner node can be identified, where “For example, the storage system control program 4007 can select a node which has the largest available capacity among the nodes,” [0054]. In addition, the size of the file to be stored is determined, see [0064].
An obvious modification can be identified: incorporating Mimatsu’s process of determining a size of the file to be stored, as well as determining an owner node of a file based on available capacity. Such a modification reads upon the limitation of the claim.
It would have been obvious to one of ordinary skill in the art prior to the effective filing date of the claimed invention to incorporate Mimatsu’s process of determining file sizes to be stored and an owner node based on available capacity into Luo’s system, as this ensures that writes to the storage system do not overwhelm a node’s capacity.
Claims 5-7 are rejected under 35 U.S.C. 103 as being unpatentable over Luo in view of BenHanokh et al. (US 2022/0121572).
Regarding claim 5, Luo teaches the system of claim 1, wherein
each respective storage node includes a node related to a device based on sequential storage (Luo utilizes a sequential process of appending storage data at the end of currently allocated storage space, see [0094], providing sequential storage); and
to write the target data to the target storage area of the storage device corresponding to the respective storage node, each of the at least one storage node is configured to:
select at least one available storage area of the storage device as the target storage area (“ Fetch-and-add (ptr, len value) is an RDMA atomic operation instruction, and is used to obtain an end address of currently allocated storage space and a length of to-be-written data. len value indicates the length of the to-be-written data. In this embodiment, the end address of the currently allocated storage space is 10, and len value is 8 bytes,” [0094] and “The storage node receives the fetch-and-add (ptr, 8) command, and reserves a storage address 11-18 for the client,” [0096]); and
write the target data to the target storage area (“ The client sends the RDMA write request to the storage node. The RDMA write request includes data whose length is 8 bytes and the end address (base address) 10 of the currently allocated storage space,” [0098]).
Luo fails to teach wherein each respective node includes a node related to a device of other type of storage, as all of Luo’s storage nodes utilize NVMe devices, identified to read on the sequential storage.
BenHanokh’s disclosure relates to distributed storage systems, and as such comprises analogous art in the same field of endeavor of distributed storage systems.
As part of this disclosure, BenHanokh discloses in Fig. 1 a distributed storage system, where each storage node includes both non-volatile and volatile memory, see also [0022], where [0023] describes utilizing the volatile memory to provide write-back caching for the underlying non-volatile memory.
An obvious modification can be identified: incorporating BenHanokh’s volatile memory within the storage nodes of Luo’s system. Such a modification reads upon the limitation of the claim, as the volatile memory provides an other type of storage compared to the NVMe of Luo.
It would have been obvious to one of ordinary skill in the art prior to the effective filing date of the claimed invention to incorporate BenHanokh’s volatile memory for write-caching into the storage nodes of Luo’s system, as allowing for a period of time where the storage nodes can utilize the volatile memory to perform various data operations leads to faster performance compared to performing the data operations in non-volatile memory, see [0023].
Regarding claim 6, the combination of Luo and BenHanokh teaches the system of claim 5, wherein to select the at least one available storage area of the storage device as the target storage area, each of the at least one storage node is configured to:
select, from a list of active storage areas of the storage device, one storage area that is capable of storing the target data; and
determine the selected storage area as the target storage area;
wherein the list of active storage areas is formed by storage areas that are capable of responding to a data write operation, as follows.
Luo teaches where the partition view of the storage system shows devices mapped to different nodes, see [0047], where as part of the RDMA write operation, the client can send a fetch-and-add operation to identify and reserve a storage address within the storage device for the operation,. See [0094,0096], teaching that the partition provides a list of devices capable of responding to the data write operation, and the act of the RDMA operation also selects a particular location to allocate and direct write operations to.
Regarding claim 7, the combination of Luo and BenHanokh teaches the system of claim 6, wherein to select, from the list of active storage areas of the storage device, one storage area that is capable of storing the target data, each of the at least one storage node is configured to:
determine whether at least one storage area capable of storing the target data exists in the list of active storage areas;
in response to determining that at least one storage area capable of storing the target data exists in the list of active storage areas, select the at least one storage area from the storage device as the target storage area (the fetch-and-add operation obtains the end of currently allocated space and then reserves a storage address for the write, i.e. it determines that there is additional space available to store the target data, see [0094,0096]); or
in response to determining that no storage area capable of storing the target data exists in the list of active storage areas, add a new storage area of the storage device to the list of active storage areas; and determine the new storage area as the target storage area (as this is recited in the alternative and Luo is considered to teach the alternative, then this limitation is not required for rejection). .
Claims 9 is rejected under 35 U.S.C. 103 as being unpatentable over Luo in view of Zhang et al. (US 2017/0351603).
Luo teaches the system of claim 1, but fails to teach wherein each of the at least one storage node is further configured to:
remove one or more storage areas that have been used longer than a reuse cycle from a list of active storage areas of the storage device corresponding to the storage node; and/or
in response to determining that a ratio of a used space of the target storage area to a capacity of the target storage area is greater than or equal to a first ratio, remove the target storage area from the list of active storage areas.
Zhang’s disclosure relates to garbage collection, and as such comprises analogous art in the same field of endeavor of storage management.
As part of this disclosure, Zhang provides a garbage collection process that is triggered when a number of free pages Is less than a threshold, see [0031], and selecting a victim block, where in Fig. 2, an example victim block is fully used, containing both invalid and valid pages.
An obvious modification can be identified: incorporating Zhang’s garbage collection process, and further selecting victim blocks that are full to move valid pages and free the victim block after being erased. Such a modification reads upon the second limitation of the claim (as it is recited in the alternative, the first limitation of the claim does not need to be addressed).
It would have been obvious to one of ordinary skill in the art prior to the effective filing date of the claimed invention to incorporate Zhang’s garbage collection process and victim block selection, as this garbage collection ensures the ability to free up physical space to reclaim free pages as pages become invalid, so that the overall capacity of the storage device is not unnecessarily reduced.
Claim 10 is rejected under 35 U.S.C. 103 as being unpatentable over Luo in view of Li (US 2017/0199680).
Luo teaches the system of claim 1, but fails to teach wherein each of the at least one storage node is further configured to:
change an expired storage area into a new storage area by deleting data of the expired storage area in the storage device.
Li’s disclosure is related to managing flash drive data blocks, and as such comprises analogous art in the same field of endeavor of flash storage.
As part of this disclosure, Li provides for a delete operation as part of the overall context of garbage collection, where in the deletion operation, a block is deleted and then returned to a free block pool for later write operations, see [0032[.
An obvious modification can be identified: incorporating Li’s deletion operation in garbage collection into Luo’s NVMe storage devices. Such a modification reads upon the limitation of the claim.
It would have been obvious to one of ordinary skill in the art prior to the effective filing date of the claimed invention to incorporate Li’s deletion/garbage collection process into Luo’s system, as this allows for the system to recover data blocks and free them up for future operations.
Claims 12-14 are rejected under 35 U.S.C. 103 as being unpatentable over Luo in view of Vastrad et al. (US 2022/0019372).
Regarding claim 12, Luo teaches the system of claim 11, but fails to teach wherein the management node is further configured to:
for each of the at least one storage node, obtain states of data blocks in the storage node from the storage node;
determine states of data blocks of an object based on a mapping relationship between the object and the data blocks in the storage node; and
determine a state of the object and a state of a file corresponding to the object based on the states of the data blocks of the object.
Vastrad’s disclosure is related to a distributed storage system, and as such comprises analogous art in the same field of endeavor of distributed storage systems.
As part of this disclosure, Vastrad discloses metadata subsystems that track the state of data storage subsystems, see [0083], where this includes tracking when a storage pool has failed, see [0111], where [0124] shows how every block in a file maintains states in the metadata nodes. Vastrad also discloses how files can be associated with disks based on inode mappings, see [01222].
An obvious modification can be identified: incorporating Vastrad’s mapping between files and disks, and also tracking block states of the file system. Such a modification reads upon the limitation of the claim.
It would have been obvious to one of ordinary skill in the art prior to the effective filing date of the claimed invention to incorporate Vastrad’s mapping and state tracking into Luo’s system, as the metadata provides the system with a greater sense of the state of different files, such as identifying storage pools that have failed and processing the data accordingly.
Regarding claim 13, the combination of Luo and Vastrad teaches the system of claim 12, wherein the management node is further configured to:
in response to determining that the state of the object is to be restored, determine a target storage node from the at least one storage node (in the context of Fig. 8, providing a migration of data when a storage pool has failed, i.e. needs to be restored, see [0156] for further context; Fig. 8, step 806 and “At operation 806, data storage subsystem 150 identifies another data storage resource (e.g., working physical disk, working storage pool) that can act as a destination/replacement storage pool for the failed disk,” [0157]); and
send storage node information and states of data blocks of the object to the target storage node to facilitate the target storage node to recover a damaged data block in the object (Fig. 8, steps 810-818 provide for using state information such as the fragments associated with the data block to reconstruct data blocks/generate the missing fragment to write to the destination storage pool).
Regarding claim 14, the combination of Luo and Vastrad teaches the system of claim 13, wherein to recover the damaged data block in the object, the target storage node is configured to:
delete the damaged data block of the object and a storage device cache related to the damaged data block (in the context of Fig. 8, the original storage pool is failed, and necessarily inaccessible or deleted);
mark a state of a source damaged data block as deleted (in the context of Fig. 8, the original storage pool is failed, and necessarily inaccessible or deleted);
recover, based on the storage node information of the data blocks of the object, a target data block corresponding to the damaged data block (Fig. 8, steps 812-816 recovering the fragment previously stored on the failed disk from the recovered fragments being used to reconstruct the data block); and
write the target data block to the target storage node (Fig. 8, step 818 writing fragments to the destination storage pool).
Claim 15 is rejected under 35 U.S.C. 103 as being unpatentable over Luo in view of Shatsky et al. (US 2023/0342212)
Luo teaches the system of claim 1, and teaches where the client is further configured to:
Send the data write request to the at least one storage node (“. The client sends RDMA write requests to the NVMe storage device 1, the NVMe storage device 2, the NVMe storage device 3, and the NVMe storage device 4, respectively,” [0047]).
Luo fails to teach recites wherein the client is configured to:
determine a size of a first object of a write file based on a capacity of the target storage area selected from each of the at least one first storage node; and
extract the first object from the write file based on the size of the first object; and
divide the first object into a target count of first data blocks; and
send the target count of first data blocks to the target count of first storage nodes, respectively, to cause each of the at least one the first storage node to write the corresponding first data block to the target storage area.
Shatsky’s disclosure relates to distributed storage systems, and as such comprises analogous art in the same field of endeavor of distributed storage systems.
As part of this disclosure, Shatsky notes that storage nodes are able to aggregate the capacity of storage devices into virtual storage pools from which volumes are exposed to applications, see [0023]. When processing a file object, in the context of Fig. 3, Shatsky provides for taking an object and dividing them into distributions of a fixed granularity, where the blocks are then assigned to be sent to target destination storage nodes, see [0035] and Fig. 3A.
An obvious modification can be identified: incorporating Shatsky’s load balancing solution of dividing objects across multiple blocks of a given size, and then distributing them across storage nodes. Such a modification reads upon the claim.
It would have been obvious to one of ordinary skill in the art prior to the effective filing date of the claimed invention to incorporate Shatsky’s load balancing into Luo’s distributed storage system, as this ensures a higher resource utilization and throughput, see [0002].
Claim 30 is rejected under 35 U.S.C. 103 as being unpatentable over Luo in view of Subramanian et al. (US 2019/0146675).
Luo teaches the system of claim 2, but fails to teach wherein the storage space information reported by the storage node to the management node contains merely remaining available space of the storage node, and does not contain information indicating which storage areas of the storage node the remaining available space corresponds to, and how much storage space remains in each of the storage areas.
Luo’s partition view does not include remaining available space of the storage node.
Subramanian’s disclosure relates to a network distributed storage system, and as such comprises analogous art in the same field of endeavor.
As part of this disclosure, Subramanian discloses a process for processing write requests to store data in a storage node, where first an allocated storage space is checked, and then the storage node is checked for remaining capacity that can be allocated, see [0051], with Subramanian processing and negotiating with allocated storage space with other nodes or the first node based on these determinations, see Fig. 4.
An obvious modification can be identified: incorporating Subramanian’s process of checking the capacity in a storage node. As disclosed, Subramanian does not contain information indicating which areas of the storage node the remaining available space corresponds to, nor how much space remains in each of the storage area, instead just providing a general check for available capacity to process a write request, reading on the claim.
It would have been obvious to one of ordinary skill in the art prior to the effective filing date of the claimed invention to incorporate Subramanian’s process of checking capacity in a storage node for processing write requests, to ensure that a storage node is capable of handling a directed write request and allowing for some flexibility in allocated storage space.
Allowable Subject Matter
Claim 8, 16, and 31 would be allowable if rewritten to overcome the rejection(s) under 35 U.S.C. 112(b) or 35 U.S.C. 112 (pre-AIA ), 2nd paragraph, set forth in this Office action and to include all of the limitations of the base claim and any intervening claims.
Claim 8 recites, wherein to add the new storage area of the storage device to the list of active storage areas, each of the at least one the storage node is configured to:
in response to determining that no storage area capable of storing the target data exists in the list of active storage areas, determine whether a size of the list of active storage areas is less than an upper limit; and
in response to determining that the size of the list of active storage areas is less than the upper limit, add the new storage area of the storage device to the list of active storage areas.
Subramanian, cited in the rejection of claim 30, does disclose adding new storage area to a storage node, but does not disclose checking whether a size of the list of active storage areas is less than an upper limit and add the storage area in response to this determination. In a review of the art, no reference was found to render this feature obvious.
Claim 16 recites wherein to send the target count of first data blocks to the target count of first storage nodes respectively, the client is configured to:
when a ratio of an amount of data of the first object written to each of the target count of first storage nodes to a capacity of the first storage node is greater than or equal to a second ratio, extract a second object from the write file; and
send, based on the second object, the data storage request to the management node to store, into one of a target count of second storage nodes corresponding to the second object, each of a target count of second data blocks obtained by dividing the second object.
Shatsky, relied upon in the claim 15 rationale, does not disclose selecting a second group of storage nodes for processing blocks, le alone where this is based on a ratio of data written to a storage node capacity. No reference was found in a search to render this feature obvious.
Claim 31 recites wherein the target data includes at least one data block of an object, and the management node is further configured to:
predict a size of subsequent data to be supplemented for writing associated with an entire file to which the object belongs based on a count and a block size of the at least one data block of the object; and
determine, in advance from the at least one storage node, a storage node configured to store the subsequent data.
The claim requires a specific prediction of a size for data to be supplemented associated with an entire file based on a count and block size of the data blocks of the object, and no reference was found to render this feature obvious.
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure.
Jeon et al. (US 10,095,417) and Fan et al. (US 2021/0326224) disclose a distributed storage system recovering data upon a failure,
Wei et al. (US 12,032,849), Xu et al. (US 2017/0235499), Ohira et al. (US 2020/0301842), Iwase (US 2021/0004355), Subramanian et al. (US 2022/0391361), disclose a distributed storage systems,
Oh (US 2020/0089421) discloses checking if there is sufficient capacity in individual namespaces.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to AARON D HO whose telephone number is (469)295-9093. The examiner can normally be reached Mon-Fri 8:00-4:00 CT.
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, Reginald Bragdon can be reached at (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 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.
/A.D.H./Examiner, Art Unit 2139
/REGINALD G BRAGDON/Supervisory Patent Examiner, Art Unit 2139