Prosecution Insights
Last updated: October 01, 2026
Application No. 17/660,906

CACHE-AWARE LOAD BALANCING

Non-Final OA §103
Filed
Apr 27, 2022
Examiner
LU, KEVIN X
Art Unit
2199
Tech Center
2100 — Computer Architecture & Software
Assignee
Netapp Inc.
OA Round
3 (Non-Final)
75%
Grant Probability
Favorable
3-4
OA Rounds
0m
Est. Remaining
99%
With Interview

Examiner Intelligence

Grants 75% — above average
75%
Career Allowance Rate
231 granted / 307 resolved
+20.2% vs TC avg
Strong +45% interview lift
Without
With
+44.6%
Interview Lift
resolved cases with interview
Typical timeline
3y 10m
Avg Prosecution
12 currently pending
Career history
324
Total Applications
across all art units

Statute-Specific Performance

§101
12.3%
-27.7% vs TC avg
§103
56.0%
+16.0% vs TC avg
§102
2.3%
-37.7% vs TC avg
§112
22.6%
-17.4% vs TC avg
Black line = Tech Center average estimate • Based on career data from 307 resolved cases

Office Action

§103
DETAILED ACTION The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA . This office action is in response to RCE filed on 5/20/2026, wherein claims 1-2, 9-11, and 16-17 are amended. Claim Rejections - 35 USC § 103 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. 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. Claim(s) 1-2, 7-8, 10-11, 15-17, and 20 are rejected under 35 U.S.C. 103 as being unpatentable over Devireddy et al. (WO 2020/263354), in view of Vermeulen et al (US PGPUB 2020/0028912). As for claim 1, Devireddy teaches an object storage system having load balancing capability (paragraph 6), the system comprising: a memory that stores computer executable components (Fig. 5 – Memory 516); and a processor that executes the computer executable components stored in the memory (Fig. 5 – Processor 514), wherein the computer executable components comprise: a listing component that writes a node storage location of an object of the object storage system to a listing [metadata] (paragraph 95, “…determines…the locality of the object data…decision ….metadata should be stored locally or remotely to the first rack…responsive to …the metadata related to the object data should be located within the first rack…generates the metadata locally to the first rack…” and paragraph 7, “…metadata including the object data locality details for the object data…” teaches creation of the node storage location of an object to a listing in the form of collection of metadata. Fig. 5 teaches access node storing the metadata 550 including the Object Data Locality Details 556. Here, Examiner note while the prior art does not teach “write….” To the listing, the prior art teaches generating the object data locality details, the metadata structure containing the said locality details, and teaches the metadata is stored inside Metadata storage. Thus, it would have been obvious to a person of ordinary skill in the art before the effective filing date of the application to recognize that the act of storing the object data locality details is a form of writing it to a listing because listing is functionally an information storage structure and because doing so allows for persistence of the information for subsequent access.); and a load balancing component that, based on the listing, directs a request regarding the data object to the one node (paragraph 83-84,”"…the metadata related to the requested object data ….determines whether the requested object data is …located in the first (local) rack….responsive to the requested object data is located in the local….sends a request to the storage node within the first rack to retrieve the object data…” teaches when data is send to first rack’s node storing the object data, and alternatively, paragraph 88-91, “determining from the received metadata that the requested object data is not located in the first rack…..the object data is located within the second rack…requests …the object data from the storage node in the third rack…” teaches determining and sending the request and retrieving data from a different node where data is located in a third rack). While Devireddy teaches directing the request to the node or to a second node having a copy of the data object, thus, it would have been obvious the data/data object exists in multiple nodes and are duplicated. However, in the interest of compact prosecution, Examiner note Devireddy does not explicitly state the replicating step of a data object to a subset of the storage nodes that keep track identity of the node, access history of the data object access, and analysis component for identifying, based on the access history, a one node of the subset of the storage nodes to have most recently accessed data object. However, Vermeulen teaches a known method of distributed data storage management including an ingestion component for replicating a data object to a subset of the storage nodes (paragraph 36, “….storing one or more replicas of a data object…..storage nodes…”) a listing component for updating a listing to identify, for each node of the subset of the storage nodes, at least: an identity of the node (paragraph 120, paragraph 120, “instance of an object 30 stored within a storage service system….locator may ….identify…”node ID” corresponding to the node 160 on which the data object instance is stored…”),and an access history comprising a time-stamped record that a time at which a prior request associated with the data object was serviced by the node ( paragraph 177, “get operation…best data available at the time (e.g., the replica data having the most recent timestamp) maybe returned to the requesting client…” and paragraph 196, “…each partition…maybe replicated across a number of bricks…if one brick determines on the basis of timestamp information that its version of an entry 144 is more current than that of a peer brick 415…peer brick 415 may perform …put operation…to update its copy of the entry…” teaching timestamp indicates the recency of the data/entry/block at a specific replica. Here, it is understood recency of data stored at a replica is understood as corresponding to writing operation of the data to the replica. Such operations are clearly within contemplated operations of the present application (see, Specification, e.g., paragraph 25, “….operations, such as GET, READ, LIST, WRITE, and/or the like, without being limited thereto…”) Thus, it is clear each object have a location and a timestamp value associated with its replicas.); an analysis component for comparing the time-stamped records across the subset of storage nodes to identify, based on the access history, a one node of the subset of the storage nodes to have most recently serviced the prior request (paragraph 179, “…if a difference among replicas exists, one of the replicas maybe selected according to a selection criterion…include considering the timestamp value of each replica…replica having the highest timestamp value maybe selected…” See also paragraph 177, “…best data available…replica data having the most recent timestamp…” in view of paragraph 196). In addition, Vermeulen also teaches directs a request regarding the data object to the one node (paragraph 177, “…replica data having the most recent timestamp…maybe returned to the requesting client…” paragraph 179, “one of the replicas maybe selected….the criterion may include considering the timestamp value of each replica…replica having the highest timestamp value maybe selected…the selected replica maybe returned to the requesting client…” in view of paragraph 196, teaching the selected node/replica returns the data, thus, whatever the form of notification to return the data from the specific replica, is understood as the request.) This known technique is applicable to the system of Devireddy as they both share characteristics and capabilities, namely, they are directed to management of data object storage in a distributed storage environment. One of ordinary skill in the art before the effective filing date of the application would have recognized that applying the known technique of Vermeulen would have yielded predictable results and resulted in an improved system. It would have been recognized that applying the technique of Vermeulen to the teachings of Devireddy would have yielded predictable results because the level of ordinary skill in the art demonstrated by the references applied shows the ability to incorporate such data object storage features into similar systems. Further, applying replicating a data object to a subset of the storage nodes and identifying a one node of the subset of the storage nodes to have the most recently accessed copy of the data object to Devireddy with determining whether to direct the request to the node or to a second node accordingly, would have been recognized by those of ordinary skill in the art as resulting in an improved system that would allow improved ability to identify the most up to data replica and by extension the data contained in the replica. (Vermeulen, paragraphs 177 and 179). As for claims 10 and 16, they are the method and product claims of claim 1 above. Thus, they are rejected under the same rationales. As for claim 2, Devireddy also teaches the analysis component that determines whether to instruct or recommend writing of a node storage location of the data object to the listing (paragraph 101-102, the metadata is either stored at the first rack or send to the second rack, see, e.g., “…sends a second request to a remote access node….wherein the remote access node includes metadata including the object data locality details of the object data…”). As for claims 11 and 17, they contain similar limitations as claim 2 above. Thus, they are rejected under the same rationales. As for claim 7, Devireddy also teaches the analysis component that determines whether to direct the request to the node or to a second node having a copy of the data object stored thereat (Fig. 9 - Object data located in storage node of local rack? 908, to either step 910-912 or steps 918-924, paragraph 84-91), wherein the analysis component performs the determination based on recent access history of the data object, of the copy of the data object, or a combination thereof (Fig. 9 – Object data located in storage node of local rack? 908, teaches it is based on information related to the copy of the data object). As for claims 15 and 20, they contain similar limitations as claim 7 above. Thus, they are rejected under the same rationales. As for claim 8, Devireddy also teaches the listing is a cache, lookup table, log, or a combination thereof stored at the load balancing component (Fig. 5 – Metadata 550, and paragraph 50). Claim(s) 3-5, 12-13 and 18 are rejected under 35 U.S.C. 103 as being unpatentable over Devireddy and Vermeulen, in view of Rochel et al. (US PGPUB 2023/0004564). As for claim 3. Devireddy teaches the analysis component performs the determination, of whether to instruct or recommend writing of the node storage location of the object to the listing Fig. 10 – Generate object data metadata in local rack? 1006, and paragraph 95); While Devireddy teaches the locality of the object data (and consequent of which leads to generate of object data metadata either locally or remotely) can be calculated/derived from information (paragraph 95). Devireddy and Vermeulen do not explicitly teach determines a pattern of access to the object storage system based on data defining access behavior to the object storage system and use it for data storage placement. However, Rochel teaches a known method of distributed data object storage across multiple nodes including the analysis component further determines a pattern of access to the object storage system based on data defining access behavior to the object storage system (paragraph 62, “…usage prediction techniques may be applied ….to make ….placement decisions for different data according to a likelihood of different data to be accessed as part of performing subsequent client access requests….for example…different machine learning techniques, such as regression analysis, time series evaluation, or reinforcement learning….” Paragraph 64-66, “…usage of ….nodes for client access requests may be recorded as a time series……used to make a usage prediction….placement of data at different ones of the multi-tenant cache nodes maybe scheduled according to the usage prediction…” teaches pattern of access to different nodes of the object storage system based on previous access behaviors) and instruct or recommend writing of the data object based on the pattern (paragraph 66. In an alternative embodiment to which of the nodes to place, paragraph 63 teaches whether to place data at certain nodes (i.e., by removing data) can also read upon whether to writing of the data object.). node storage location of the data object to the listing, based on the pattern). This known technique is applicable to the system of Devireddy, Vermeulen and Casey as they both share characteristics and capabilities, namely, they are directed to management of data object storage in a distributed storage environment. One of ordinary skill in the art before the effective filing date of the application would have recognized that applying the known technique of Rochel would have yielded predictable results and resulted in an improved system. It would have been recognized that applying the technique of Rochel to the teachings of Devireddy and Vermeulen would have yielded predictable results because the level of ordinary skill in the art demonstrated by the references applied shows the ability to incorporate such data object storage features into similar systems. Further, applying determining a pattern of access and placement of data object based on the pattern to Devireddy and Vermeulen with determining whether to instruct or recommend writing of the node storage location of the data object to the listing based on placement of data object accordingly, would have been recognized by those of ordinary skill in the art as resulting in an improved system that would allow improved speed and efficiency to access data. (Rochel, paragraph 1). As for claims 12 and 18, they contain similar limitations as claim 3 above. Thus, they are rejected under the same rationales. As for claim 4, Rochel also teaches wherein the analysis component comprises or accesses a machine learning model to perform the determination (paragraph 62). It would have been obvious to incorporate Rochael’s teaching because doing so would have been recognized by those of ordinary skill in the art as resulting in an improved system that would allow improved speed and efficiency to access data through better modeling. (Rochel, paragraph 1). As for claim 5, Rochel also teaches a training component that trains the analysis component based on historical data defining access behavior to the object storage system (paragraph 62, in view of paragraph 61, “execution statistics or other historical information ….as usage information…”). It would have been obvious to incorporate Rochael’s teaching because doing so would have been recognized by those of ordinary skill in the art as resulting in an improved system that would allow improved speed and efficiency to access data through better modeling. (Rochel, paragraph 1). As for claim 13, Rochael also teaches employing or accessing a machine learning model to perform a determination of a pattern of access to the object storage system based on data defining access behavior to the object storage system (paragraph 62, “…usage prediction techniques may be applied ….to make ….placement decisions for different data according to a likelihood of different data to be accessed as part of performing subsequent client access requests….for example…different machine learning techniques, such as regression analysis, time series evaluation, or reinforcement learning….” Paragraph 64-66, “…usage of ….nodes for client access requests may be recorded as a time series……used to make a usage prediction….placement of data at different ones of the multi-tenant cache nodes maybe scheduled according to the usage prediction…” teaches pattern of access to different nodes of the object storage system based on previous access behaviors) and instruct or recommend writing of the data object based on the pattern (paragraph 66. In an alternative embodiment to which of the nodes to place, paragraph 63 teaches whether to place data at certain nodes (i.e., by removing data) can also read upon whether to writing of the data object). It would have been obvious to incorporate Rochael’s teaching because doing so would have been recognized by those of ordinary skill in the art as resulting in an improved system that would allow improved speed and efficiency to access data through better modeling. (Rochel, paragraph 1). Claim(s) 6, 14, and 19 are rejected under 35 U.S.C. 103 as being unpatentable over Devireddy and Vermeulen, in view of Brooker et al. (US PAT 8832234). As for claim 6, Devireddy teaches the analysis component that determines whether to direct the request to the node or to a second node having a copy of the data object stored thereat (paragraph 83, “…checks the locality of the data object data determines whether the requested object data is …located in the first (local) rack…sends a request to the storage node….” And paragraph 91, “…requests…the object data from the storage node in the third rack….” teaches determining where to direct the read request for the actual object data, either a first rack’s node or third rack’s node in exemplary embodiment). While Devireddy teaches directing the request to the node or to a second node having a copy of the data object, and under the BRI, “having a copy of the object stored thereat” can be interpreted as applying to one or the other node, i.e., determining which node has the data. However, in the interest of compact prosecution, Examiner note Devireddy and Vermeulen do not explicitly state the decision is made where both the node” and “a second node” both having the same copy of the data object stored at respective nodes, where the determination based on usage history of the node, usage history of the second node, or a combination thereof. However, Brooker teaches a known method of distributed data storage management including determines whether to direct the request to the node or to a second node, both having a copy of the data object stored thereat, wherein the determination based on usage history of the node, usage history of the second node, or combination thereof (col. 15, line 50-col. 16, line 30, “…placement engine has information about various operational parameters of the storage system…storage node capabilities, … usage patterns and availability…may be aware that two storage nodes capable of servicing data with a high expected IPOS requirement exists….all of the storage nodes upon which the requested data exists, and select the storage node able to service data requests of a type determined to be executed at a high frequency in a fashion mostly closely matching the intended use, e.g., highest sustained throughput, lowest latency…” teaches the selection based on which node can provide the sustained throughput, or lowest latency, both of which are clearly related to respective storage node capability and availability.). This known technique is applicable to the system of Devireddy and Vermeulen as they both share characteristics and capabilities, namely, they are directed to management of data object storage in a distributed storage environment. One of ordinary skill in the art before the effective filing date of the application would have recognized that applying the known technique of Brooker would have yielded predictable results and resulted in an improved system. It would have been recognized that applying the technique of Brooker to the teachings of Devireddy and Vermeulen would have yielded predictable results because the level of ordinary skill in the art demonstrated by the references applied shows the ability to incorporate such data object storage features into similar systems. Further, applying determine whether to direct the request to the node or to a second node both having a copy of the data object stored where determination based on usage history of the node or the second node to Devireddy and Vermeulen with determining whether to direct the request to the node or to a second node accordingly, would have been recognized by those of ordinary skill in the art as resulting in an improved system that would allow improved ability to satisfy request’s performance requirements. (Brooker, col. 15 line 50 -col. 16, line 30). As for claims 14 and 19, they contain similar limitations as claim 6 above. Thus, they are rejected under the same rationales. Claim(s) 9 are rejected under 35 U.S.C. 103 as being unpatentable over Devireddy and Vermeulen, in view of Cui (US PGPUB 2016/0205179). As for claim 9, Devireddy also teaches the ingestion component is configured to store object metadata of the data object co-located with object data of the data object (paragraphs 95 teaching metadata for data object co-located in the same rack as the data object), request comprises request for the object data of the data object (paragraph 83-84). Vermeulen also teaches the ingestion component is configured to store object metadata of the data object co-located with object data of the data object (paragraph 107 108 storing data object and metadata and they are located at a specified locator. In view of paragraph 52 teaching metadata corresponds to data object.). While Vermeulen teaches analysis component is configured to identify the one node based on the one node having most recently serviced a request for the data object. Devireddy and Vermeulen do not explicitly teach the identify is based on the one node having most recently serviced a request for the object metadata of the data object. Cui teaches a known method of distributing requests in a clustered storage environment including identifying is based on one node having most recently serviced a request for the object metadata of the data object (paragraph 49, 63-64). This known technique is applicable to the system of Devireddy and Vermeulen as they both share characteristics and capabilities, namely, they are directed to management of data object storage in a distributed storage environment. One of ordinary skill in the art before the effective filing date of the application would have recognized that applying the known technique of Cui would have yielded predictable results and resulted in an improved system. It would have been recognized that applying the technique of Cui to the teachings of Devireddy and Vermeulen would have yielded predictable results because the level of ordinary skill in the art demonstrated by the references applied shows the ability to incorporate such data object storage features into similar systems. Further, applying identifying is based on one node having most recently serviced a request for the object metadata of the data object to Devireddy and Vermeulen with identify the one node based on the one node having most recently serviced a request for the data object where object metadata is co-located with data object accordingly, would have been recognized by those of ordinary skill in the art as resulting in an improved system that would allow improved servicing of requests with the most up-to-date replica (CUI, paragraphs 56, 64). Response to Arguments Applicant's arguments filed on 5/20/2026 have been fully considered but they are not persuasive. Applicant argues in the Remarks: Argument I: “…Vermeulen teaches comparing timestamp values of replicas…comparison is performed only when a difference among replica exists….tempstamp comparison serves a version-selection function…by contrast, claim 1 recites time-stamped records of when each node serviced a prior request….a record of node activity, not of replica state…” (App. Arg. Pg. 9) Examiner respectfully disagrees for the following reasons: With Regard to Argument I, see paragraph 7 above. In addition, Examiner note as applicant admitted, the prior art keep track of timestamp of the replica data, where the timestamp indicates the time when the replica data is modified (thus, the latest version of the data). In another word, the timestamp give indication of the last time the data in the replica was subject to a write/modification. Examiner note, the current application specification explicitly contemplates the request claimed to include, among other operations, write requests (Specification paragraph 25). Tracking the latest replica subject to a write request is functionally the same as finding the latest version of the data in the replica (i.e., the latest one that is changed). As the prior art makes clear, to make a replica having same version as the latest version replica, it requires a “put” (i.e., write) of the data to the same version as the latest version data replica. (see, paragraph 196). Therefore, it’s clear that the prior art’s timestamp is functionally indicating when the replica performed a request (a change in data/write). Moreover, Applicant argument appears to be directed toward the intended use of the functional element. Furthermore, Examiner note applicant mentioning that Vermeulen comparison is performed when a difference among replicas exists is irrelevant because it is an additional feature in addition to the comparison of time stamped records that reads upon the claimed invention. It’s an additional use case to handle situation that the application did not consider. Thus, applicant’s argument is unpersuasive because applicant’s argument is inconsistent with the claimed limitations in view of the specification and mis-represents the teaching of the prior art. Conclusion Applicant's amendment necessitated the new ground(s) of rejection presented in this Office action. Accordingly, THIS ACTION IS MADE FINAL. See MPEP § 706.07(a). Applicant is reminded of the extension of time policy as set forth in 37 CFR 1.136(a). A shortened statutory period for reply to this final action is set to expire THREE MONTHS from the mailing date of this action. In the event a first reply is filed within TWO MONTHS of the mailing date of this final action and the advisory action is not mailed until after the end of the THREE-MONTH shortened statutory period, then the shortened statutory period will expire on the date the advisory action is mailed, and any nonprovisional extension fee (37 CFR 1.17(a)) pursuant to 37 CFR 1.136(a) will be calculated from the mailing date of the advisory action. In no event, however, will the statutory period for reply expire later than SIX MONTHS from the mailing date of this final action. Any inquiry concerning this communication or earlier communications from the examiner should be directed to KEVIN X LU whose telephone number is (571)270-1233. The examiner can normally be reached M-F 10am-6pm. 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, Lewis Bullock can be reached on 5712723759. 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. /KEVIN X LU/Examiner, Art Unit 2199 /LEWIS A BULLOCK JR/Supervisory Patent Examiner, Art Unit 2199
Read full office action

Prosecution Timeline

Show 2 earlier events
May 19, 2025
Interview Requested
May 29, 2025
Applicant Interview (Telephonic)
May 29, 2025
Examiner Interview Summary
Sep 03, 2025
Response Filed
Jan 20, 2026
Final Rejection mailed — §103
May 20, 2026
Request for Continued Examination
May 22, 2026
Response after Non-Final Action
Sep 10, 2026
Non-Final Rejection mailed — §103 (current)

Precedent Cases

Applications granted by this same examiner with similar technology

Patent 12717601
VIRTUAL DEVICE TRANSLATION FOR NESTED VIRTUAL MACHINES
4y 8m to grant Granted Aug 25, 2026
Patent 12710996
NUMA AWARENESS ARCHITECTURE FOR VM-BASED CONTAINER IN KUBERNETES ENVIRONMENT
3y 6m to grant Granted Aug 18, 2026
Patent 12632276
COORDINATED HOOKING MECHANISM FOR CHECKPOINTING VIRTUAL MACHINES
3y 8m to grant Granted May 19, 2026
Patent 12632278
PROCESSING UNIT AND PROCESSING SYSTEM
3y 10m to grant Granted May 19, 2026
Patent 12625729
PACKET PROCESSING COMPUTATIONS UTILIZING A PRE-ALLOCATED MEMORY FUNCTION
3y 11m to grant Granted May 12, 2026
Study what changed to get past this examiner. Based on 5 most recent grants.

Strategy Recommendation AI-generated — please review before filing

Get a prosecution strategy drawn from examiner precedents, rejection analysis, and claim mapping.
Typically takes 5-10 seconds — AI-generated, attorney review required before filing

Prosecution Projections

3-4
Expected OA Rounds
75%
Grant Probability
99%
With Interview (+44.6%)
3y 10m (~0m remaining)
Median Time to Grant
High
PTA Risk
Based on 307 resolved cases by this examiner. Grant probability derived from career allowance rate.

Sign in with your work email

Enter your email to receive a magic link. No password needed.

Personal email addresses (Gmail, Yahoo, etc.) are not accepted.

Free tier: 3 strategy analyses per month