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 2/6/2026.
Claims 1-18 are pending.
Claims 1, 7, 12 and 18 have been amended.
Response to Arguments
Applicant’s argument(s) filed on 2/6/2026 with respect to claim(s) 1-18 have been considered but are moot in view of the new ground(s) of rejection.
Continued Examination Under 37 CFR 1.114
A request for continued examination under 37 CFR 1.114, including the fee set forth in 37 CFR 1.17(e), was filed in this application after final rejection. Since this application is eligible for continued examination under 37 CFR 1.114, and the fee set forth in 37 CFR 1.17(e) has been timely paid, the finality of the previous Office action has been withdrawn pursuant to 37 CFR 1.114. Applicant's submission filed on 2/6/2026 has been entered.
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.
1. Claim(s) 1-5, 7-16 and 18 are rejected under 35 U.S.C. 103 as being unpatentable over Parambil (US 20200341940 A1) in view of Meng (US 20160203102 A1).
With respect to independent claims:
Regarding claim(s) 1, 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 and (Parambil, [0015] FIG.1; the client device 102 pre-registers memory regions for use as buffers at the client device 102 with an RDMA interface at the client device 102. An RDMA interface allows a first device to write data directly to and/or read data directly from a registered memory region at a second device without going through the operating system and/or central processing unit at the second device. For pre-registration, the client device 102 provides the RDMA interface with an identification of a portion of memory at the client device 102 to be used for the buffer, such as a starting address of the buffer and a length of the buffer. [0023], FIG.2; the client application 202 may include one or more components for processing the request to access the file from the distributed file system 108. For example, the client application 202 may include a component that translates the name or identifier of the file into a hash value that is used to access the distributed file system 108. Each storage unit within the data storage devices 110 a-c at the server devices 104 a-c may be assigned a range of hash values, such as a range of numbers within a 32-bit hash space. In some implementations, the entire hash space is covered across the storage units without gaps or overlaps across the ranges for the storage units. Each file is assigned a hash value in the hash space by hashing the name or identifier of the file. The file is then located on a storage unit 236 that has the range that includes the hash value of the file. [examiner notes: client device 102 is equivalent to local device. distributed file system 108 is equivalent to remote device. The request is equivalent to the command.])
the remote network device is to receive the command over the network, and to execute the command by and (ii) reading or writing the value at the location. (Parambil, [0023] FIG.2; the client application 202 may include one or more components for processing the request to access the file from the distributed file system 108. For example, the client application 202 may include a component that translates the name or identifier of the file into a hash value that is used to access the distributed file system 108. Each storage unit within the data storage devices 110 a-c at the server devices 104 a-c may be assigned a range of hash values, such as a range of numbers within a 32-bit hash space. In some implementations, the entire hash space is covered across the storage units without gaps or overlaps across the ranges for the storage units. Each file is assigned a hash value in the hash space by hashing the name or identifier of the file. The file is then located on a storage unit 236 that has the range that includes the hash value of the file. [0029], in the case of a request where the system call or file operation is a request to read data from the file, the storage unit application 116 may access the file through the virtual file system 232 and use the RDMA interface 228 to send the data for the file to one of the buffers 204 at the client device 102 that was identified in the request from the client application 202.)
Parambil does not teach (i) specifies a key for accessing a hash table in a memory that is coupled with the remote network device and (ii) instructs that a value be read or written at a location in the hash table corresponding to the key; (i) calculating the location in the hash table by applying a hash calculation to the key;
Meng however in the same field of computer networking teaches (i) specifies a key for accessing a hash table in a memory that is coupled with the remote network device and (ii) instructs that a value be read or written at a location in the hash table corresponding to the key; (i) calculating the location in the hash table by applying a hash calculation to the key; (Meng, [0016]. FIG.1; When client_0 105 needs to an access value 114 that is associated with key 113 in key-value store 110, client_0 105 sends key 106 (that is equal to key 113 that is stored with value 114) to hash table 112. In an embodiment, hash table 112 hashes key 106 into the address of remote DMA pointer 109 in remote DMA pointer cache 108. Remote DMA pointer 109 contains information (e.g., a server identifier, a map identifier, and key 106) that enables server host 102 to access value 114 in key-value store 110, without interrupting a processor in server host 102. If the access is a GET, then key-value store 110 uses the information in remote DMA pointer 109 to access value 114 and return access value 114 through network 103 to client 105 in client host 101. If the access is an UPDATE, then key-value store 110 updates value 114 with a new value from client_0 105. [examiner notes: the access is a GET equivalent to read. the access is a UPDATE equivalent to write. FIG.1 shows shared memory 108 couple to server host 102 (the remote network device).])
Therefore, it would have been obvious to one of ordinary skill in the art before the effective date of the claimed invention to modify Meng by incorporating the teachings of Meng. The motivation/suggestion would have been because there is a need to enable fast access to the data on the system (Meng, [0005]).
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,
Parambil- Meng teach wherein the command instructs that the value be read from the location in the hash table, (Meng, [0016]. FIG.1; When client_0 105 needs to an access value 114 that is associated with key 113 in key-value store 110, client_0 105 sends key 106 (that is equal to key 113 that is stored with value 114) to hash table 112. In an embodiment, hash table 112 hashes key 106 into the address of remote DMA pointer 109 in remote DMA pointer cache 108. Remote DMA pointer 109 contains information (e.g., a server identifier, a map identifier, and key 106) that enables server host 102 to access value 114 in key-value store 110, without interrupting a processor in server host 102. If the access is a GET, then key-value store 110 uses the information in remote DMA pointer 109 to access value 114 and return access value 114 through network 103 to client 105 in client host 101. If the access is an UPDATE, then key-value store 110 updates value 114 with a new value from client_0 105. [examiner notes: the access is a GET equivalent to read. the access is a UPDATE equivalent to write. FIG.1 shows shared memory 108 couple to server host 102 (the remote network device).])
and wherein, in response to the command, the remote network device is to send to the local network device a response comprising the read value. (Parambil, [0015] FIG.1; the client device 102 pre-registers memory regions for use as buffers at the client device 102 with an RDMA interface at the client device 102. An RDMA interface allows a first device to write data directly to and/or read data directly from a registered memory region at a second device without going through the operating system and/or central processing unit at the second device. For pre-registration, the client device 102 provides the RDMA interface with an identification of a portion of memory at the client device 102 to be used for the buffer, such as a starting address of the buffer and a length of the buffer. [0023] FIG.2; the client application 202 may include one or more components for processing the request to access the file from the distributed file system 108. For example, the client application 202 may include a component that translates the name or identifier of the file into a hash value that is used to access the distributed file system 108. Each storage unit within the data storage devices 110 a-c at the server devices 104 a-c may be assigned a range of hash values, such as a range of numbers within a 32-bit hash space. In some implementations, the entire hash space is covered across the storage units without gaps or overlaps across the ranges for the storage units. Each file is assigned a hash value in the hash space by hashing the name or identifier of the file. The file is then located on a storage unit 236 that has the range that includes the hash value of the file.)
The same motivation to combine as the independent claim 1 applies here.
Regarding claim(s) 3, the apparatus of claim 1,
Parambil- Meng teach wherein the command specifies the value and instructs that the value be written to the location in the hash table. (Meng, [0016]. FIG.1; When client_0 105 needs to an access value 114 that is associated with key 113 in key-value store 110, client_0 105 sends key 106 (that is equal to key 113 that is stored with value 114) to hash table 112. In an embodiment, hash table 112 hashes key 106 into the address of remote DMA pointer 109 in remote DMA pointer cache 108. Remote DMA pointer 109 contains information (e.g., a server identifier, a map identifier, and key 106) that enables server host 102 to access value 114 in key-value store 110, without interrupting a processor in server host 102. If the access is a GET, then key-value store 110 uses the information in remote DMA pointer 109 to access value 114 and return access value 114 through network 103 to client 105 in client host 101. If the access is an UPDATE, then key-value store 110 updates value 114 with a new value from client_0 105. [examiner notes: the access is a GET equivalent to read. the access is a UPDATE equivalent to write. FIG.1 shows shared memory 108 couple to server host 102 (the remote network device).])
The same motivation to combine as the independent claim 1 applies here.
Regarding claim(s) 4, the apparatus of claim 1,
Parambil- Meng teach wherein the command is embedded in a transport protocol used by the local and remote network devices. (Parambil, [0011] FIG. 1 is a schematic diagram that shows an example of a system 100 for pre-registering memory regions for remote direct memory access in a distributed file system. The system 100 includes a client device 102 in communication with multiple server devices 104 a-c over one or more networks 106. For example, the networks may include an Internet Protocol (IP) network, such as an IP network using Transmission Control Protocol (TCP/IP), and/or a Remote Direct Memory Access protocol network. [0016] The client device 102 may also specify an access level for the buffer, such as REMOTE READ, REMOTE WRITE, and/or LOCAL WRITE. In some implementations, the client device 102 specifies all three access levels during pre-registration as the level of access that will eventually be needed may not be known at the time the buffer is pre-registered. The pre-registration process registers the buffers with the kernel or operating system at the client device 102 so that the RDMA interface may later access the memory to place data there for a file from the distributed file system 108 without going through the kernel or operating system at the client device 102 and so that the kernel or operating system will not modify or assign the memory for the buffers to another application at the client device 102.)
The same motivation to combine as the independent claim 1 applies here.
Regarding claim(s) 5, the apparatus of claim 4,
Parambil- Meng teach wherein the transport protocol is a Remote Direct Memory Access (RDMA) protocol. (Parambil, [0011] FIG. 1 is a schematic diagram that shows an example of a system 100 for pre-registering memory regions for remote direct memory access in a distributed file system. The system 100 includes a client device 102 in communication with multiple server devices 104 a-c over one or more networks 106. For example, the networks may include an Internet Protocol (IP) network, such as an IP network using Transmission Control Protocol (TCP/IP), and/or a Remote Direct Memory Access protocol network. [0016] The client device 102 may also specify an access level for the buffer, such as REMOTE READ, REMOTE WRITE, and/or LOCAL WRITE.)
Regarding claim(s) 8, the network device according to claim 7,
Parambil- Meng teach wherein the command instructs that the value be read from the location in the hash table. (Meng, [0023] FIG.3; in decision step 304, if client 105 finds a remote DMA pointer record with the key (decision step 304, YES branch), then client 105 obtains the remote DMA pointer in the remote DMA pointer record that is associated with the key (step 309). Client 105 uses the remote DMA pointer to access key-value store 110 (step 310), and the access is complete. [0018] FIG.1; If the access is a GET, then key-value store 110 uses the information in remote DMA pointer 109 to access value 114 and return access value 114 through network 103 to client 105 in client host 101. If the access is an UPDATE, then key-value store 110 updates value 114 with a new value from client_0 105. [examiner notes: a GET request in RDMA (remote DMA) typically refers to a read operation where data is fetched from the memory of a remote node. An RDMA update request can be considered a form of writing.])
Claim(s) 13 is/are substantially similar to claim 2, and is thus rejected under substantially the same rationale.
Claim(s) 9 and 14 is/are substantially similar to claim 3, and is thus rejected under substantially the same rationale.
Claim(s) 10 and 15 is/are substantially similar to claim 4, and is thus rejected under substantially the same rationale.
Claim(s) 11 and 16 is/are substantially similar to claim 5, and is thus rejected under substantially the same rationale.
2. Claim(s) 6 and 17 are rejected under 35 U.S.C. 103 as being unpatentable over Parambil in view of Meng further in view of Shamis (US 20170103039 A1).
Regarding claim(s) 6, the system according to claim 1,
Parambil- Meng do 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 is/are substantially similar to claim 6, and is thus rejected under substantially the same rationale.
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure.
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