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 Amendment filed on 9/3/2025, wherein claims 1-3, 6-7, 9-12, 14-20 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-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), further in view of Casey et al. (US PGPUB 2020/0252410).
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 a node having the data object stored thereat (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 and an access history comprising a time-stamped record that indicate when the data object was stored by the node (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…”, 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 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…” Thus, it is clear each object have a location and a timestamp value associated with its replicas.); an analysis component for identifying, based on the access history, a one node of the subset of the storage nodes to have the most recently stored data object (paragraph 177, “…best data available…replica data having the most recent timestamp…” and 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…”). 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).
While Vermeulen clearly teaches the access history for a data object stored in different nodes and based on the access history/timestamp, the most recently accessed replica data block. Devireddy and Brooker do not explicitly teach the timestamp value associated with the replicas of datablocks are the timestamps of when data is cached.
However, Casey teaches a known method of distributed peer to peer storage system for data block storage including a listing component identifying an access history comprising time-stamped records indicate when the data object was stored in cache memory by the node (paragraph 0086 including a listing component for updating a listing to identify an identity of the node and an access history comprising time-stamped records that indicate when the data object was stored in cache memory by the node (paragraph 86, “retrieving the data …responsive to the received first request….based on a determine that the cache contains data that is responsive to the received first request….first perform….tests based on time to live (“TTL”) analysis to determine timestamps indicating when such data was stored in the cache…” teaching the timestamp associated with when the cache loading of the data was performed). 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 Casey would have yielded predictable results and resulted in an improved system. It would have been recognized that applying the technique of Casey 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 an access history comprising time-stamped records that indicate when the data object was stored in cache memory by the node and use of timestamp associated with cache of data block to determine validity of the data to be returned to Devireddy and Vermeulen with access history comprising time-stamped records that indicate when the data object was stored in the node and an analysis component for identifying, based on the access history, a one node of the subset of the storage nodes to have most recently stored 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 ability to identify and only return still valid data. (Casey, paragraph 86).
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 the 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).
As for claim 9, Devireddy also teaches the request comprises request for access to or information of the data object (paragraph 82, “….request….such as a GET request, maybe received….”, paragraph 84, “…sends a request to the storage node ….to retrieve the object data…”, and paragraph 91, “…requests….the object data from the storage node in the third rack….”).
Claim(s) 3-5, 12-13 and 18 are rejected under 35 U.S.C. 103 as being unpatentable over Devireddy, Vermeulen and Casey, 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, Vermeulen and Casey 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, Vermeulen and Casey 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, Vermeulen and Casey 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, Vermeulen and Casey, 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, Vermeulen and Casey 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, 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 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, Vermeulen and Casey 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, Vermeulen and Casey 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.
Response to Arguments
Applicant’s arguments with respect to claim(s) 1-20 have been considered but are moot because the new ground of rejection does not rely on any reference applied in the prior rejection of record for any teaching or matter specifically challenged in the argument.
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