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
Response to Amendment
This office action has been issued in response to the response filed 9/15/25. Claims 1-20 are pending in this application. Applicant's arguments have been carefully considered, but are not persuasive in view of the “response to arguments” section below. The examiner appreciates Applicant's effort to distinguish over the cited prior art by presenting arguments/amendments in an attempt to distinguish or clarify the claimed invention, however, upon further consideration and/or search, the claims remain unpatentable over the cited prior art for the reasons articulated in the “response to arguments” section below. All claims pending in the instant application remain rejected and clarification and/or elaboration regarding why the claims are not in condition for allowance will hereafter be provided in order to efficiently further prosecution. Accordingly, this action is made FINAL.
Claim Rejections - 35 USC § 103
The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
The factual inquiries set forth in Graham v. John Deere Co., 383 U.S. 1, 148 USPQ 459 (1966), that are applied for establishing a background for determining obviousness under 35 U.S.C. 103(a) 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.
Claims 1, 3-4, 10, 12-13, 18, are rejected under 35 U.S.C. 103 as being unpatentable over Garthwaite (US PGPUB # 20040193662) in view of Waldo (US PGPUB # 20020138662) further in view of Burka (US PGPUB # 20120203994). With respect to independent claims 1, 10, 18 Garthwaite/Waldo/Burka discloses: A method comprising:
storing data objects in one or more partitions of a storage node [data objects are stored to a heap, of a storage system/node, the heap is comprised of partitions - Garthwaite 0035];
recovering storage space from a partition of the storage node by processing a plurality of data objects in the storage space, wherein the plurality of data objects are processed one data object, of the plurality of data objects at a time before processing a next data object of the plurality of data objects [Garthwaite/Waldo does not explicitly disclose this limitation although it is suggested @ Garthwaite fig 9 step 122-124. Nevertheless, in the same field of endeavor Burka teaches: single-pass compaction in a garbage collector where live objects are not overwritten by other live objects. This may be accomplished by moving individual objects, one at a time, disclosed as: “above-described compaction process has focused primarily on moving individual objects, the compaction process could also be applied to data entities having different granularities” – Burka abstract, 0008, 0054], and wherein processing the one data object includes:
identifying whether the one data object is active based on a reference count for the one data object [reference counting garbage collection – Garthwaite 0031, 0132; although this limitation is not explicitly taught by Garthwaite, Waldo teaches: One conventional approach uses a form of reference counting, in which a count is maintained of the number of applications referring to each resource. When a resource's count goes to zero, the garbage collection system may reclaim the resource. The garbage collection system increments the resource's reference count as additional applications refer to the resource, and decrements the count when an application no longer refers to the resource – Waldo 0036/], wherein reference counts for the data objects are updateable based on a number of different applications that access the data objects [Waldo 0036]; and
responsive to identifying that the one data object is active, transferring the one data object from the storage space of the partition to a shadow storage area [active objects are transferred/evacuated, one object at a time - Garthwaite fig 9 step 122-124], wherein stale data objects are not transferred from the storage space of the partition to the shadow storage area [non-active or stale objects are not transferred and are reclaimed or garbage collected to avoid heap fragmentation – Garthwaite 0035].
Garthwaite does not explicitly disclose identifying whether the one data object is active based on a reference count for the one data object wherein reference counts for the data objects are updateable based on a number of different applications that access the data objects although Garthwaite appears to suggest and implicitly teach this limitation as indicated above.
Nevertheless, in the same field of endeavor, Waldo teaches: One conventional approach uses a form of reference counting, in which a count is maintained of the number of applications referring to each resource. When a resource's count goes to zero, the garbage collection system may reclaim the resource. The garbage collection system increments the resource's reference count as additional applications refer to the resource, and decrements the count when an application no longer refers to the resource – Waldo 0036.
It would have been obvious to one of ordinary skill in the art before the effective filing date of the invention to identify whether a data object is active based on a reference count for the data object wherein reference counts for the data objects are updateable based on a number of different applications that access the data objects in the invention of Garthwaite as taught by Waldo because it would be advantageous for avoiding referential integrity failures and memory leaks (Waldo 0036).
Garthwaite/Waldo does not explicitly disclose recovering storage space from a partition of the storage node by processing a plurality of data objects in the storage space, wherein the plurality of data objects are processed one data object, of the plurality of data objects at a time before processing a next data object of the plurality of data objects.
Nevertheless, in the same field of endeavor Burka teaches: single-pass compaction in a garbage collector where live objects are not overwritten by other live objects. This may be accomplished by moving individual objects, one at a time, disclosed as: “above-described compaction process has focused primarily on moving individual objects, the compaction process could also be applied to data entities having different granularities” – Burka abstract, 0008, 0054
Therefore Garthwaite/Waldo/Burka teaches all limitations of the instant claim(s).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the invention to recover data objects, one at a time in the invention of Garthwaite/Waldo as taught by Burka because it would be advantageous for facilitating garbage collection at different granularities thereby providing an improvement over a stop-the-world garbage collection algorithm while ensuring that live objects don’t overwrite other live objects (Burka 0054 in view of 0004-0008).
With respect to dependent claim 3, 12 Garthwaite/Waldo/Burka discloses wherein the recovering is initiated based on available storage space falling below a threshold [Garthwaite 0058; Moreover the examiner is taking official notice that initiating garbage collection or recovery based on available storage space falling below a threshold would have been obvious to one of ordinary skill in the art before the effective filing date of the invention because it would be advantageous for ensuring that adequate space was available to service write commands, as evidenced by 0004, 0073 of HASHIMOTO US PGPUB # 20160299715].
With respect to dependent claim 4, 13 Garthwaite/Waldo/Burka discloses wherein the recovering is initiated based on time [the examiner is taking official notice that initiating garbage collection or recovery based on time would have been obvious to one of ordinary skill in the art before the effective filing date of the invention because it would be advantageous to schedule garbage collection at opportune times when there is less valid data that requires relocation for a given garbage collection unit, thereby improving garbage collection time, as evidenced by 0081, 0107 of HASHIMOTO US PGPUB # 20160299715].
Claims 2, 5, 11, 14, 17-18 are rejected under 35 U.S.C. 103 as being unpatentable over Garthwaite/Waldo/Burka further in view of HASHIMOTO (US PGPUB # 20160313943).
With respect to dependent claim 2, 11, 17 Garthwaite/Waldo/Burka does not explicitly disclose all limitations of the instant claim. Nevertheless, in the same field of endeavor HASHIMOTO teaches transferring valid data from memory blocks (data recovery operation) – HASHIMOTO abstract. The combination of Garthwaite/Waldo/Burka/HASHIMOTO discloses wherein the recovering is for the data objects stored in a range of addresses of the storage node that includes the partition [recovery of object/address range – 0121 in view of 0414-0417 of HASHIMOTO; note that namespaces used in place of partitions – HASHIMOTO 0163]. It would have been obvious to one of ordinary skill in the art before the effective filing date of the invention to recover data objects stored in a range of addresses of storage included in a partition in the invention of Garthwaite/Waldo/Burka as taught by HASHIMOTO because performing garbage collection in systems using LBA addressing is more efficiently performed when extracting valid data from a range of addresses corresponding to multiple LBAs - 0414-0417 of HASHIMOTO.
With respect to dependent claim 5, 14, 18 Garthwaite/Waldo/Burka/HASHIMOTO discloses wherein the recovering includes receiving compaction requests for the data objects stored in the partition from a compaction queue [collection queue – Garthwaite 0060], and wherein the processing the one data object is based on receiving a compaction request for the one data object [command requesting a list of the logical addresses to be collected reads on compaction request – HASHIMOTO 0412, 0421].
Claims 6-8, 15, 19-20 are rejected under 35 U.S.C. 103 as being unpatentable over Garthwaite/Waldo/Burka/HASHIMOTO further in view of Coelho (US PGPUB # 20100251263).
With respect to dependent claim 6, 19 Garthwaite/Waldo/Burka/HASHIMOTO does not explicitly disclose all limitations of the instant claim. Nevertheless, in the same field of endeavor Coelho teaches means for monitoring of distributed applications (Coelho abstract) and a memory system using a garbage collector (Coelho 0004, 0054) and means for throttling requests, that may be queued in work queues based on QOS parameters/considerations – 0019 & 0074 of Coelho. The combination of Garthwaite/Waldo/Burka/HASHIMOTO/Coelho discloses throttling the compaction requests based one or more quality of service parameters [throttling requests, that may be queued in work queues based on QOS parameters/considerations – 0019 & 0074 of Coelho]. It would have been obvious to one of ordinary skill in the art before the effective filing date of the invention to throttling the compaction requests based one or more quality of service parameters in the invention of Garthwaite/Waldo/Burka/HASHIMOTO as taught by Coelho because it would be advantageous to reduce an impact of compaction or garbage collection operations, which are not mission critical, on higher priority or mission critical operations – Coelho 0019 & 0074.
With respect to dependent claim 7, 20 Garthwaite/Waldo/Burka/HASHIMOTO/Coelho discloses wherein the one or more quality of service parameters include at least one of a latency of I/O operations or a number of I/O operations per period of time [Coelho 0029, 0035, 0077].
With respect to dependent claim 8, 15 Garthwaite/Waldo/Burka/HASHIMOTO discloses wherein processing the data objects indicated by the compaction requests is interspersed with I/O requests [work item manager is further configured to schedule the particular work item for execution when the impact is less than the acceptable performance impact threshold, and drop the particular work item without scheduling the particular work item for execution when the impact is greater than the acceptable performance impact threshold – Coelho 0019; foreground and background operations/threads – Coelho 0040. Moreover, the examiner is taking official notice that interspersing the processing of data objects indicated by compaction requests with I/O requests would have been obvious to one of ordinary skill in the art before the effective filing date of the invention because it would be advantageous for providing sustained and predictable performance, as evidenced by Karamcheti US Patent # 8341300 col 15 lines 54-61 ].
Claims 9 are rejected under 35 U.S.C. 103 as being unpatentable over Garthwaite/Waldo/Burka further in view of Karamcheti (US Patent # 8341300).
With respect to dependent claim 9 Garthwaite/Waldo/Burka does not explicitly disclose all limitations of the instant claim. Nevertheless, in the same field of endeavor Karamcheti teaches methods for garbage collection where by default, memory regions with the highest invalid-to-valid ratio are selected for garbage collection – Karamcheti col 17 lines 35-50. Therefore the combination of Garthwaite/Waldo/Burka/Karamcheti discloses prioritizing the one or more partitions of the storage node based on a ratio of stale data objects to active data objects stored in the one or more partitions [memory regions with the highest invalid-to-valid ratio are selected for garbage collection, such that they are prioritized over lower invalid to valid ratio regions - Karamcheti col 17 lines 47-48]. It would have been obvious to one of ordinary skill in the art before the effective filing date of the invention to prioritize partitions based on a ratio of stale data objects to active data objects because it would be advantageous for yielding the maximal reclamation with the least amount of relocation, and hence least perturbation to foreground performance (Karamcheti col 17 lines 35-50).
Response to Arguments
Applicant's arguments have been fully considered but are not persuasive in view of the prior art. All claims pending in the instant application remain rejected. Please note that any rejections/objection not maintained from the previous Office Action have been rectified either by applicant's amendment and/or persuasive argument(s).
Regarding applicant’s arguments on page 9, that “The Office then asserts Burka for “single-pass compaction in a garbage collector where live objects are not overwritten by other live objects” (Office Action, p. 4). Burka does not describe processing one data object at a time before processing a next data object. Instead, Burka describes parallelizing object movement (e.g., movement of multiple objects at a same time), so that object movement is performed in a single pass over an object heap (Burka, [0008]). Parallel movement of multiple objects is a completely different approach from identifying and transferring one data object before identifying and transferring a next data object. Notably, the notion of “parallel” movement requires at least two objects to be moved at a same time, and such movement cannot be “parallel” with just one single object.” [The examiner respectfully submits that the claim language does not require single-threaded operation nor does it exclude concurrent operation from its broadest reasonable interpretation. A broadest reasonable interpretation of the limitation argued (recovering storage space from a partition of the storage node by processing a plurality of data objects in the storage space, wherein the plurality of data objects are processed one data object, of the plurality of data objects at a time before processing a next data object of the plurality of data objects) is satisfied when compaction/recovery is performed for each object individually, in sequence regardless of whether multiple worker threads perform per-object operations concurrently across other objects. Parallel operation does not negate that each object is identified/transferred/compacted in a per-object operation before the next object is handled by that worker/thread. Burka teaches processing/compacting one object at a time by any number of worker threads – Burka fig 5 & paragraph 0042-0047. Stated another way: The claim language pertains to processing a plurality of data objects and does not prohibit multiple per-object cations occurring in parallel on distinct objects by individual worker threads operating on one object at a time before moving on to a next object.
Regarding applicant’s arguments on page 10, that “Forcing Burka’s system to process (e.g., identify and transfer) one data object at a time before processing a next data object would change a principle of operation of Burka. Due to this, a person of skill in the art would not be motivated to combine Burka with any references, let alone the other two asserted references, in an attempt to yield the claimed subject matter. Moreover, rather than teach or suggest the claimed subject matter, the parallel movement described in Burka teaches away from the claimed one-at-a-time processing (emphasis added by Applicant).” [The examiner respectfully submits that teaching away requires a reference to discourage or criticize the claimed approach. Burka does not discourage/criticize per-object processing, rather Burka teaches this exact concept and simply proposes per-object processing done in parallel as an optimization to enhance performance, therefore it does not teach away but suggests an optimization in performing the process via parallel processing].
Regarding applicant’s arguments on page 10, that “During the interview, Examiner Ayash asserted [0032] of Burka. This portion of Burka describes that the “garbage collection module” may in certain embodiments be configured to operate in an incremental manner, elaborating on an “incremental manner” by stating “[t]hat is, the garbage collection module 208 may be configured to perform garbage collection on a portion of the object heap 210 at a time, as opposed to the entire object heap” (Burka, [0032]). As far as a “portion” Burka describes that the object heap “may be divided into a number of regions (e.g., hundreds or even thousands of regions)” (Burka, [0032]). However, there is no indication that a portion of the object heap or a “region” of the object heap is limited to just a single object. Indeed, dividing an object heap into portions with just a single object is inconsistent with the principle of Burka of parallel movement of objects, because movement of just a single object at a time is not parallel.” [The examiner respectfully submits that the claim requires that, in recovering space from a partition (region), “the plurality of data objects are processed one data object … at a time before … a next” That is also what Burka’s move phase does at the per-object granularity inside each region. It picks an object, identifies its destination, moves it, and then proceeds to the next object. Other threads processing different/other objects in parallel does not negate that each object is processed one-at-a-time before a next object is processed by that same thread].
Regarding applicant’s arguments on page 10-11 that “Although Burka at [0054] indicates that the “above-described” compaction process has focused on moving individual objects, there is no indication in this portion or elsewhere in Burka that such individual objects are processed (e.g., moved) only one object at a time. Rather, Burka centers on the notion of moving objects (e.g., multiple objects) in parallel. This notion is supported throughout Burka, including in the title “Parallel, Single-Pass Compaction in a Region-Based Garbage Collector,” abstract, and fifteen other times throughout the specification. The parallel movement of objects for single-pass garbage collection, as described in Burka, is not the same as “recovering storage space from a partition of the storage node by processing a plurality of data objects in the storage space, wherein the plurality of data objects are processed one data object of the plurality of data objects at a time before processing a next data object of the plurality of data objects,” as recited in claim 1. Burka fails to cure the deficiencies of Garthwaite and Waldo. Applicant submits that the subject matter of claim 1 is missing from the combination of Garthwaite, Waldo, and Burka.” [The examiner respectfully submits that the claim does not recite “only a single object can be processed in the entire system at any given time” as this appears to be what applicant is arguing. It recites that the plurality of objects “are processed one at a time before … a next” which is satisfied where each objects movement is a discrete step that completes before that worker/threads proceeds to its next object. In other words, the claim language limits granularity (one object at a time), not concurrency ]
Remaining arguments are understood to be predicated on the previous arguments being persuasive and thus are unpersuasive at least on dependency merits.
All remarks are understood to have been addressed herein. If any issues remain which may be clarified by the examiner, the applicant is invited to contact the examiner to set up a telephone interview.
When responding to the office action, any new claims and/or limitations should be accompanied by a reference as to where the new claims and/or limitations are supported in the original disclosure.
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 MARWAN AYASH whose telephone number is (571)270-1179. The examiner can normally be reached 9a-730p M-R.
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, Rocio del Mar Perez-Velez can be reached on 571-270-5935. 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.
/Marwan Ayash/ - Examiner - Art Unit 2133
/ROCIO DEL MAR PEREZ-VELEZ/Supervisory Patent Examiner, Art Unit 2133