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 .
DETAILED ACTION
This action is in response to communication filed on 6/7/2026.
Claims 1, 2, 4-7, 10-13 and 15-21 are pending.
Claims 1, 2, 7, 12, 13 and 18 have been amended.
Claims 3, 8, 9 and 14 have been canceled.
Claims 19-21 have been added.
Response to Arguments
Applicant’s argument(s) filed on 6/7/2026 with respect to claim(s) 1, 2, 4-7, 10-13 and 15-21 have been considered but are moot in view of the new ground(s) of rejection.
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.
1. Claims 1, 2, 4-5, 7, 10-13, 15-16, and 18-20 are rejected under 35 U.S.C. 102(a)(1) as being anticipated by Blagojevic (US 20180349396 A1).
With respect to independent claims:
Regarding claim(s) 1, Blagojevic teaches a system comprising a local network device and a remote network device, wherein: the local network device is to send over a network a command that (Blagojevic, [0032] A computing node 104 can include any suitable computing hardware and/or software capable of performing computer processes, functions, and/or algorithms. Specifically, a computing node 104 may be configured to transmit RDMA operations to read, write, store, communicate, propagate, and/or transport instructions, data/data objects, computer programs, software, code, routines, etc., to/from memory in another computing node 104. [0073] Referring back to FIGS. 1 through 2C, RDMA operations (e.g., RDMA read operations) from a source computing node 104 can be used to identify and/or directly read data objects from another computing node 104 (e.g., computing node 104 n).) (i) specifies a key for accessing a hash table in a memory that is coupled with the remote network device (Blagojevic, [0073] Referring back to FIGS. 1 through 2C, RDMA operations (e.g., RDMA read operations) from a source computing node 104 can be used to identify and/or directly read data objects from another computing node 104 (e.g., computing node 104 n). In various embodiments, a RDMA operation can perform a hash function on a hash table 206 that may be located on the same or another computing node 104 to generate a hash key, which can be used to assist in identifying the storage location of the target data object. [examiner notes: a remote direct memory access (RDMA) read or write work request must include a memory key to securely access memory.]) and (ii) instructs that a value that matches the key is to be read from a location in the hash table corresponding to the key; and (Blagojevic, [0073] Referring back to FIGS. 1 through 2C, RDMA operations (e.g., RDMA read operations) from a source computing node 104 can be used to identify and/or directly read data objects from another computing node 104 (e.g., computing node 104 n). In various embodiments, a RDMA operation can perform a hash function on a hash table 206 that may be located on the same or another computing node 104 to generate a hash key, which can be used to assist in identifying the storage location of the target data object. In some embodiments, a hash key may include a filename, value, etc., or other type of identifier that is known or may be developed and is capable of identifying a data object. Further, a hash key can be used to identify a target storage bucket within a target storage segment of a target storage device 208, which target storage bucket may or may not be storing the target data object, as discussed further below. [0085] Referring now to FIG. 8, an example method 800 of reading a data object from a storage device is illustrated. As shown, method 800 can begin by a source computing node 104 issuing a RDMA operation to read a target data object from a storage device 208 (block 802). The host computing node 104 may calculate (e.g., via a RDMA operation) a first hash key on the target object (block 804) and identify (e.g., via a RDMA operation) a target storage bucket in a target storage segment based on the first hash key and a map provided by a hash table 206 (block 806). [0086] The source computing node 104 may read (e.g., via a RDMA operation) a data object key for the data object stored in the target storage bucket (block 808). A RDAM operation issued from the source computing node can compare the data object key and the first hash key (block 810) to determine (e.g., via a RDMA operation) if they match (block 812). If there is a match (e.g., a YES), the source computing node 104 can read (e.g., via a RDMA operation) the target data object from the target storage bucket (block 814). [examiner notes: the source computing node 104 is equivalent to the local network device. The computing node 104 is equivalents to the remote network device.])
the remote network device is to receive the command over the network, and to execute the command by performing the following without further communication with the local network device: (Blagojevic, [0085] Referring now to FIG. 8, an example method 800 of reading a data object from a storage device is illustrated. As shown, method 800 can begin by a source computing node 104 issuing a RDMA operation to read a target data object from a storage device 208 (block 802). The host computing node 104 may calculate (e.g., via a RDMA operation) a first hash key on the target object (block 804) and identify (e.g., via a RDMA operation) a target storage bucket in a target storage segment based on the first hash key and a map provided by a hash table 206 (block 806). [0086] The source computing node 104 may read (e.g., via a RDMA operation) a data object key for the data object stored in the target storage bucket (block 808). A RDAM operation issued from the source computing node can compare the data object key and the first hash key (block 810) to determine (e.g., via a RDMA operation) if they match (block 812). If there is a match (e.g., a YES), the source computing node 104 can read (e.g., via a RDMA operation) the target data object from the target storage bucket (block 814). [examiner notes: the source computing node 104 is equivalent to the local network device. The computing node 104 is equivalent to the remote network device. The RDMA operation is equivalent to the command.])
(i) calculating the location in the hash table by applying a hash calculation to the key, wherein the location stores multiple values; and (Blagojevic, [0085] Referring now to FIG. 8, an example method 800 of reading a data object from a storage device is illustrated. As shown, method 800 can begin by a source computing node 104 issuing a RDMA operation to read a target data object from a storage device 208 (block 802). The host computing node 104 may calculate (e.g., via a RDMA operation) a first hash key on the target object (block 804) and identify (e.g., via a RDMA operation) a target storage bucket in a target storage segment based on the first hash key and a map provided by a hash table 206 (block 806). [0086] The source computing node 104 may read (e.g., via a RDMA operation) a data object key for the data object stored in the target storage bucket (block 808). A RDAM operation issued from the source computing node can compare the data object key and the first hash key (block 810) to determine (e.g., via a RDMA operation) if they match (block 812). If there is a match (e.g., a YES), the source computing node 104 can read (e.g., via a RDMA operation) the target data object from the target storage bucket (block 814). [examiner notes: the source computing node 104 is equivalent to the local network device. The computing node 104 is equivalent to the remote network device.]) (ii) reading one or more of the multiple values from the location, until finding the value that matches the key. (Blagojevic, [0085] Referring now to FIG. 8, an example method 800 of reading a data object from a storage device is illustrated. As shown, method 800 can begin by a source computing node 104 issuing a RDMA operation to read a target data object from a storage device 208 (block 802). The host computing node 104 may calculate (e.g., via a RDMA operation) a first hash key on the target object (block 804) and identify (e.g., via a RDMA operation) a target storage bucket in a target storage segment based on the first hash key and a map provided by a hash table 206 (block 806). [0086] The source computing node 104 may read (e.g., via a RDMA operation) a data object key for the data object stored in the target storage bucket (block 808). A RDAM operation issued from the source computing node can compare the data object key and the first hash key (block 810) to determine (e.g., via a RDMA operation) if they match (block 812). If there is a match (e.g., a YES), the source computing node 104 can read (e.g., via a RDMA operation) the target data object from the target storage bucket (block 814). [examiner notes: the source computing node 104 is equivalent to the local network device. The computing node 104 is equivalent to the remote network device.])
Claim(s) 7, 12 and 18 is/are substantially similar to claim 1, and is thus rejected under substantially the same rationale.
With respect to dependent claims:
Regarding claim(s) 2, the apparatus of claim 1,
Blagojevic teaches wherein, in response to the command, the remote network device is to send to the local network device a response comprising the read value. (Blagojevic, [0037] A hash table 206 a may map keys to data object values and use a hash function to compute an index into a set or an array of storage buckets or storage slots from which a data object value for a desired data object can be calculated. The calculated data object value can be compared to a key corresponding to one or more storage buckets and the location/address of the desired data object can be determined when the calculated data object value for the desired data object and the key for a particular storage bucket match one another.[0060] For instance, the controller(s) 202 a in the computing node 104 a (see FIG. 2A) may perform RDMA operations to directly write data objects to, read data objects from, and/or perform other I/O operations related to writing/reading data objects on the storage device(s) 208 (see FIG. 2C) and may further perform RDMA operations to directly read, write/update, and/or perform other I/O operations on the hash table 206 b in the computing node 104 b (see FIG. 2B) in conjunction with the RDMA operations performed on the computing node 104 n.)
Regarding claim(s) 4, the apparatus of claim 1,
Blagojevic teaches wherein the command is embedded in a transport protocol used by the local and remote network devices. (Blagojevic, [0032] A computing node 104 can include any suitable computing hardware and/or software capable of performing computer processes, functions, and/or algorithms. Specifically, a computing node 104 may be configured to transmit RDMA operations to read, write, store, communicate, propagate, and/or transport instructions, data/data objects, computer programs, software, code, routines, etc., to/from memory in another computing node 104. Examples of a computing node 104 include, but are not limited to, a client device/system, a peer device/system, and/or a computing server, etc., among other examples of computing hardware and/or software that are possible and contemplated herein.)
Regarding claim(s) 5, the apparatus of claim 4,
Blagojevic teaches wherein the transport protocol is a Remote Direct Memory Access (RDMA) protocol. (Blagojevic, [0032] A computing node 104 can include any suitable computing hardware and/or software capable of performing computer processes, functions, and/or algorithms. Specifically, a computing node 104 may be configured to transmit RDMA operations to read, write, store, communicate, propagate, and/or transport instructions, data/data objects, computer programs, software, code, routines, etc., to/from memory in another computing node 104. Examples of a computing node 104 include, but are not limited to, a client device/system, a peer device/system, and/or a computing server, etc., among other examples of computing hardware and/or software that are possible and contemplated herein.)
Claim(s) 13 is/are substantially similar to claim 2, and is thus rejected under substantially the same rationale.
Claim(s) 10,15 and 19 is/are substantially similar to claim 4, and is thus rejected under substantially the same rationale.
Claim(s) 11, 16 and 20 is/are substantially similar to claim 5, and is thus rejected under substantially the same rationale.
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 of this title, 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.
2. Claim(s) 6, 17 and 21 are rejected under 35 U.S.C. 103 as being unpatentable over Blagojevic in view Shamis (US 20170103039 A1).
Regarding claim(s) 6, the system according to claim 1,
Blagojevic does not teach wherein the remote network device is to execute the command atomically.
Shamis however in the same field of computer networking teaches wherein the remote network device is to execute the command atomically. (Shamis, [0080] The RDMA atomic compare and swap (CAS) operation is used to atomically compare a value in the RDMA CAS message from the client to a value of a specified virtual address of the host. If the compared values are equal, a value specified by the RDMA CAS message will be stored at the virtual address of the host. In other words, in an atomic transaction, a series of database operations either all occur, or nothing occurs.)
Therefore, it would have been obvious to one with ordinary skill in the art at the time before the effective filing date of the claim invention to have modified the system/method of Meng to specify wherein the remote network device is to execute the command atomically as taught by Shamis. The motivation/suggestion would have been because there is a need to enabling the Key-Value Manager to scale to very large numbers of concurrent accesses by very large numbers of computing devices (Shamis, [0004]).
Claim(s) 17 and 21 is/are substantially similar to claim 6, and is thus rejected under substantially the same rationale.
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 extension fee 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 date of this final action.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to WUJI CHEN whose telephone number is (571)270-0365. The examiner can normally be reached on 9am-6pm.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, VIVEK SRIVASTAVA can be reached on (571) 272-7304. 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). If you would like assistance from a USPTO Customer Service Representative or access to the automated information system, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
/WUJI CHEN/
Examiner, Art Unit 2449
/VIVEK SRIVASTAVA/ Supervisory Patent Examiner, Art Unit 2449