Notice of Pre-AIA or AIA Status
1. The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
Response to Arguments
2. Applicant’s arguments with respect to claim(s) 1-5, 7-21 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.
Claim Rejections - 35 USC § 103
3. 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.
4. Claims 1-5 are rejected under 35 U.S.C. 103 as being unpatentable over Kremer et al. Pat. No. US 12,481,675 B2 (hereafter Kremer) in view of Tsirkin Pub. No. US 2016/0124763 A1 (hereafter Tsirkin), and OGAWA et al. Pub. No. US 2023/0185489 A1 (hereafter Ogawa).
5. Regarding claim 1, Kremer teaches “A non-transitory machine-readable storage medium comprising instructions that upon execution cause a processing system to: create a partition map comprising a plurality of entries mapping partitions of a data bucket to respective virtual processors executed in a cluster of computer nodes that are coupled to a shared storage system to store data of the data bucket (Col 16, line 11 – Col 17, line 57; Kremer teaches a cluster of storage nodes with entities (partitions) that map to authorities (virtual processors) using identifiers, hashes (see Col 20, lines 1-35 and Col 22, lines 42-62 for more explicit details), and/or segment numbers. Col 20, lines 45-65 mention the storage nodes all being connected, hence forming a storage cluster [Also see Fig. 1C, 1D, 2B]. Col 24, lines 3-12 explicitly state authorities being allocated partitions in flash memory/storage units and NVRAM (data buckets))
wherein portions of metadata for the data bucket are divided across the partitions (Col 18, lines 31-43; Kremer teaches that metadata of object buckets may be stored across storages);
responsive to a request to access a data object in the data bucket (Col 24, lines 20-23), apply a function on a key associated with the data object to obtain a value identifying a partition of the partitions that contains metadata for the data object (Col 17, line 21 – Col 18, line 22; Kremer teaches calculating a hash value for a data segment in order to locate a particular piece of data such that it applies a hash function onto an entity ID associated with the entity (partition) that contains the particular piece of data; it first maps an entity ID to an authority ID, and the mapping includes a hash function applied to the entity ID. After hashing the entity ID, it results in mapping to an authority ID. The authority ID is then mapped to the particular NVSSD that contains that data object within the specified NVSSS. Col 58, lines 22-40; Kremer teaches the metadata of the object indicates the physical location in the storage resource. Also see Col 25, lines 6-24 and Fig. 2E);
obtain, from an entry for the identified partition selected from the plurality of entries of the partition map, an identifier of a first virtual processor that has the metadata for the data object, the first virtual processor being a member of the virtual processors; provide, by the first virtual processor, information from the metadata for the data object for use in accessing the data object (Col 16, line 49 – Col 17, line 40; Kremer teaches that authorities control a range of inode numbers, segment numbers, or other data identifiers such that the range of identifiers represent a plurality of data objects within a managed partition. The hashed entity ID determines the authority ID corresponding to the metadata ownership range responsible for the metadata associated with the entity. Because each authority controls a range of identifiers, the authority ID identifies the authority that manages a partition of metadata objects, hence a group of one or more entity IDs may represent a certain partition, whereas another group of identifiers may represent another partition, establishing a mapping between authorities and partitions. Also see Col. 23, line 50 – Col. 24, line 12 for authorities using partitions belonging to them);
and responsive to a migration of the first virtual processor from a first computer node to a second computer node of the cluster of computer nodes (Col 21, lines 20-35; Kremer teaches that authorities can be transferred between storage nodes and authority owners -- also referred to as a storage node in Col 18, line 54 – Col 19, line 3),
wherein the partition map remains unchanged in response to the migration of the first virtual processor from the first computer node to the second computer node (Col 24, lines 50-67 – Col 25, lines 1-5, Kremer teaches authorities migrating between blades [blades are also storage nodes as described in Col 13, lines 50-52], allowing them to manage the same storage partition from its new location, therefore would not require a map update/address change for partitions to authorities)”.
Kremer teaches that authorities control how and where data is stored in storage (Col. 16, lines 43-48). Kremer however does not explicitly teach that an authority is a virtual processor.
Tsirkin teaches that a virtual processor mapped to a location in a storage device such that it teaches authorities may be virtual processors ([0025] Hypervisor 125 can use virtual processor mapping table 127 to store cross reference information regarding which of the virtual processors 131-1 through 131-N of VM 130 are associated with shared device 190. Hypervisor 125 may store a unique identifier that is associated with each of the virtual processors 131-1 through 131-N, along with an identifier for the shared memory location of the associated shared device 190 for use by polling manager 128. If hypervisor 125 determines that a virtual processor of VM 130 needs to be reassigned to another physical processor as described below in FIG. 3, it may use virtual processor mapping table 127 to assist with identification of eligible physical processors. For example, if a virtual processor is associated with a shared device, and a host processor normally conducts polling of that shared device, then that host processor may not be deemed eligible to assume the load for all virtual processors since it could interfere with polling operations. Virtual processor mapping table 127 may be a memory location within hypervisor 125. Alternatively, virtual processor mapping table 127 may be written to a location in storage device 180).
It would have been obvious to a person of ordinary skill in the art before the effective filing date to combine the teachings of Tsirkin with the invention of Kremer to show that an authority is a virtual processor. A person having ordinary skill in the art would have been motivated to make this combination to allow for efficient access of memory/data from a component to a storage location. Together, Tsirkin in combination with Kremer teach every limitation of the claimed invention. Since the teachings were analogous art known at the filing time of invention, one of ordinary skill could have applied said teachings to achieve expected results.
Kremer teaches an authority-node map and migration of authorities (In Col. 20, lines 14-29, Kremer teaches that a function may assign authorities to storage nodes and create a list where the authorities are assigned. In Col 25, lines 1-5, Kremer teaches that when a blade is removed, the system redistributes the authorities among the remaining blades), however Kremer does not explicitly teach that in response to a migration, it updates a virtual processor-computer node map that maps the respective processors to corresponding computer nodes.
Ogawa teaches a map update such that it teaches the limitation “updates a virtual processor-computer node map that maps the respective processors to corresponding computer nodes ([0202] the first controller acquires the post-migration mapping information from the second controller, and updates the second mapping information by using the post-migration mapping information in a case where information that is in the second mapping information and is to be used for accessing the data in the predetermined storage area).”
It would have been obvious to a person of ordinary skill in the art before the effective filing date to combine the teachings of Ogawa to the combination of Kremer and Tsirkin to show that in response to a migration of an authority to another node, the mapping of the two would be updated to reflect the new location of an authority. A person having ordinary skill in the art would have been motivated to make this combination with a reasonable expectation of success to achieve data integrity and redundancy. Together, Ogawa in combination with Kremer and Tsirkin teach every limitation of the claimed invention. Since the teachings were analogous art known at the filing time of invention, one of ordinary skill could have applied said teachings to achieve expected results.
6. Regarding claim 2, wherein the combination Kremer teaches “The non-transitory machine-readable storage medium of claim 1, wherein the migration of the first virtual processor from the first computer node to the second computer node causes migration of one or more portions of the metadata associated with the first virtual processor from the first computer node to the second computer node (Col 24, lines 36-63; Kremer teaches that authorities are stateless, therefore they can cache active metadata and can migrate between blades. Also, Col 16, lines 49-66 explicitly state that every piece of metadata has an owner, referred to as an authority).”
7. Regarding claim 3, wherein the combination Kremer teaches “The non-transitory machine-readable storage medium of claim 2, wherein the migration of the first virtual processor from the first computer node to the second computer node is performed without performing movement of data owned by the first virtual processor between computer nodes of the cluster of computer nodes (Col 24, lines 50-63; Kremer teaches that when migrated, authorities still manage the same storage partitions from its new location, not requiring the storage partitions to move with the authority).”
8. Regarding claim 4, wherein the combination Kremer teaches “The non-transitory machine-readable storage medium of claim 1, wherein: prior to the migration of the first virtual processor, a first request for a first data object associated with a first key maps, based on the partition map, to the first virtual processor on the first computer node (Col 17, lines 58-67 – Col 18, lines 1-22; Kremer teaches a request to write to data (data object) determined by segment ID (key associated with data object), then maps to a corresponding authority on the storage node), and after the migration of the first virtual processor, a second request for the first data object associated with the first key maps, based on the partition map, to the first virtual processor on the second computer node (Col 24, lines 50-67 – Col 25 lines 1-5; Kremer teaches that even after migration, authorities still fulfill the client requests that endpoints directly to them, managing the same storage partition such that if a second request for the same data object with the first key were requested, it would still go to the same processor on a different node).”
9. Regarding claim 5, wherein the combination Kremer teaches “The non-transitory machine-readable storage medium of claim 4, wherein the instructions upon execution cause the processing system to: in response to the first request, obtain metadata for the first data object from the first virtual processor on the first computer node (Col 24, lines 20-23);
and in response to the second request, obtain the metadata for the first data object from the first virtual processor on the second computer node (Col 24, line 20 – Col 25, lines 1-5; As Kremer previously taught in claim 4, the authority still manages the same storage partition after moving, therefore in the mentioned column, the authority would obtain still obtain metadata stored in that storage even on a different node).”
10. Claims 7-9 are rejected under 35 U.S.C. 103 as being unpatentable over Kremer in view of Tsirkin and Ogawa as applied to claims 1-5 above and in further view of Schlegel et al. Pub. No. US 202/0348933 A1 (hereafter Schlegel).
11. Regarding claim 7, the combination does not explicitly teach that a portion of the key is a prefix.
Schlegel explicitly teaches that keys are split up into prefixes and suffixes such that it teaches the limitation “The non-transitory machine-readable storage medium of claim 1, wherein the function is applied on prefix of the key ([0043] teaches applying a hash function onto a prefix) , the prefix of the key being less than an entirety of the key.” ([0058] For example, if 100 8-byte key values that are split up in a 6-byte prefix value and a 2-byte suffix value all share the same prefix value, then about 32 bytes are required to store the prefix value in the prefix hash table and the prefix heap and 200 bytes are required for storing the suffix values).
It would have been obvious to a person of ordinary skill in the art before the effective filing date to combine the teachings of Schlegel to the combination of Kremer, Tsirkin, and Ogawa to show that a first portion of a key is a prefix, that prefix being less than the entirety of a key, and applying a hashing function onto the prefixes in order to identify corresponding the suffixes. A person having ordinary skill in the art would have been motivated to make this combination with a reasonable expectation of success to show that prefixes can be less than an entirety of a key. Together, Schlegel with the combination teaches every limitation of the claimed invention. Since the teachings were analogous art known at the filing time of invention, one of ordinary skill could have applied said teachings to achieve expected results.
12. Regarding claim 8, wherein the combination Kremer does not explicitly teach the storing configuration information indicating a length of the prefix.
Wherein the combination Schlegel teaches storing prefixes in a prefix hash table such that it teaches “The non-transitory machine-readable storage medium of claim 7, wherein the instructions upon execution cause the processing system to: store configuration information indicating a length of the prefix ([0044] In this example, the prefix length is set to 2 bytes while the suffix length is set to one byte for illustration purposes. All values are represented as hexadecimal numbers, i.e., each value starts with 0x followed by either two or four numbers that represent one or two bytes, respectively. Also see at least Figure 3 & [0044-0045]).”
It would have been obvious to a person of ordinary skill in the art before the effective filing date to combine a further teaching of Schlegel to the combination to show as evidence that the combination may include storing configuration information containing prefix lengths. A person having ordinary skill in the art would have been motivated to make this combination with a reasonable expectation of success to increase the workflow for performing key searches. Together, the combination teaches every limitation of the claimed invention. Since the teachings were analogous art known at the filing time of invention, one of ordinary skill could have applied said teachings to achieve expected results.
13. Regarding claim 9, wherein the combination Schlegel teaches different prefix lengths for different suffixes such that it teaches the limitation “The non-transitory machine-readable storage medium of claim 8, wherein the configuration information indicates different lengths of prefixes for different data buckets ([0042] The number of suffix d-heaps depends on the number of unique prefix values for all key values indexed in the generic vectorized d-heap. Thus, there is one suffix d-heap for each prefix value. Also see figure 3).”
14. Claim 10 is rejected under 35 U.S.C. 103 as being unpatentable over Kremer in view of Tsirkin and Ogawa as applied to claims 1 and 7 and Schlegel as applied in claim 7 above, and in further view of MANJANATHA et al. Pub. No. WO/2022/220830 (hereafter Manjanatha).
15. Regarding claim 10, the wherein combination Schlegel teaches that prefixes associated with different destinations with the same prefix may map to the same suffix heap such that it teaches “The non-transitory machine-readable storage medium of claim 7, wherein different keys associated with respective data objects that share a same prefix map to a same partition of the partitions ([0042] Each suffix d-heap hold the suffix values of the key values stored in the generic vectorized d-heap. Suffix d-heaps are used to quickly obtain suffix values in order of priority. A single suffix d-heap contains all suffix values of key values that share the same prefix value. [0045] Key values 0x000101, 0x000103, 0x000110, 0x000124, 0x000141, and 0x000138 share a prefix 0x0001 and thus the key values' respective suffix values are stored in the same suffix d-heap).”
The combination does not teach performing a range query at virtual processors mapped to a partition associated with the range of keys.
Manjanatha teaches querying a service for a partition key space range such that it teaches “the instructions upon execution cause the processing system to: perform a range query for a range of keys at one or more virtual processors mapped to a partition associated with the range of keys ([0056] the metadata gateway services 416 may subsequently look up the entry by directly querying the remote metadata gateway service 440 or 442 for that partition key space range, and may respond to the end user when the lookup completes successfully).”
It would have been obvious to a person of ordinary skill in the art before the effective filing date to combine the teaching of Manjanatha to the combination to show as evidence that a virtual processor may perform a query of key ranges to determine if a key exists at a current location. A person having ordinary skill in the art would have been motivated to make this combination with a reasonable expectation of success to validate data requests made to virtual processors. Together, Manjanatha with the combination teaches every limitation of the claimed invention. Since the teachings were analogous art known at the filing time of invention, one of ordinary skill could have applied said teachings to achieve expected results.
16. Claim 11 are rejected under 35 U.S.C. 103 as being unpatentable over Kremer in view of Tsirkin and Ogawa as applied to claims 1-5 above and in further view of Schlegel et al. Pub. No. US 202/0348933 A1 (hereafter Schlegel) and Sahni et al. Pub. No. 2004/0141509 A1 (hereafter Sahni).
17. Regarding claim 11, wherein the combination Kremer teaches “The non-transitory machine-readable storage medium of claim 1, wherein the data object is a first data object, the data bucket is a first data bucket (Col 58, lines 22-40; Kremer teaches objects and buckets for storing objects. There may be a plurality such that there may be a first object and first data bucket), and the function is applied on a prefix of the key associated with the first data object to obtain the value identifying the partition, and wherein the instructions upon execution cause the processing system to: apply the function on … a key associated with a … data object in a … data bucket to obtain a … value (Col 16, line 49 - Col 17, line 57), and use the … value to obtain, from another entry of the partition map, an identifier of another partition that contains metadata for the … data object (Col 24, line 20 – Col 25, lines 1-5).”
Kremer does not explicitly teach a second data object with a key associated in comparison of a first data object’s key, only a plurality of objects having keys associated with them.
Schlegel explicitly teaches a table representing multiple prefixes being hashed to obtain a reference to corresponding suffixes such that it teaches the limitation “apply a function on a prefix of a key associated with a second data object in a second data bucket to obtain a second value ([0043] In an embodiment, a C++ standard template library ‘unordered map’ is used to implement prefix hash tables where the key value being hashed is the prefix value and the prefix value, through a hash function, includes reference to a suffix d-heap).
It would have been obvious to a person of ordinary skill in the art before the effective filing date to combine a further teaching of Schlegel to combination of Kremer, Tsirkin, and Ogawa to show as evidence that a applying a function onto a prefix maps to a respective data object, inside of their respective data locations buckets. A person having ordinary skill in the art would have been motivated to make this combination with a reasonable expectation of success in order to group similar data objects together.
The combination does not explicitly teach variable prefixes with different lengths mapping to different partitions. Sahni teaches partitioning methods with variable prefix lengths such that it teaches the limitation “wherein a length of the first portion of the key associated with the second data object in the second data bucket is different from a length of the first portion of the key associated with the first data object in the first data bucket ([0131] teaches a routing table that receives packets specifying prefixes. The prefixes are represented as a range to establish intervals, the intervals used to partition the prefixes using s bits, each set of bits representing a next partition to move into. Also, [0067] teaches an example of using fixed-stride tries partitioning, separating the bits into levels, meaning different lengths of bits result in different levels or partitions. Also see Fig. 6A, 6B, and 7)”.
It would have been obvious to a person of ordinary skill in the art before the effective filing date to combine the teachings of Sahni to combination of Kremer, Tsirkin, Ogawa, and Schlegel to show as evidence that a different length prefixes may map to different partitions. A person having ordinary skill in the art would have been motivated to make this combination with a reasonable expectation of success in order to efficiently group similar data objects, improve lookup efficiency, and reduce search scope (Sahni [0011]). Together, the combination teaches every limitation of the claimed invention. Since the teachings were analogous art known at the filing time of invention, one of ordinary skill could have applied said teachings to achieve expected results.
18. Claim 12 is rejected under 35 U.S.C. 103 as being unpatentable over Kremer in view of Tsirkin and Ogawa as applied to claim 1, 14 and in addition to Schlegel as applied to 14, and in further view of MANJANATHA et al. Pub. No. WO/2022/220830 (hereafter Manjanatha).
19. Regarding claim 12, the combination does not explicitly teach migration of a partition due to a hotspot.
Manjanatha teaches the migration of a partition to another computing device due to it being overloaded and updating a partition map in response such that it teaches the limitation “The non-transitory machine-readable storage medium of claim 1, wherein the instructions upon execution cause the processing system to: in response to detecting a metadata hotspot at a given virtual processor, migrate a first partition of the partitions from the given virtual processor to another virtual processor; and update the partition map in response to the migration of the first partition, the updating of the partition map comprising including in the partition map an entry corresponding to the first partition and containing an identifier of the further virtual processor ([0062] For instance, if the frequency of access load 614 of a particular partition or to a number of partitions hosted by particular ones of the service computing devices 202 exceeds a threshold amount over a specified period of time, the service computing device(s) 202 may be overloaded and accordingly, one or more partitions may be split and migrated to other computing devices. The decision to split and migrate a partition may also be based on the amount of remaining storage space available on respective ones of the service computing devices 202. [0063] A split operation for splitting a selected partition initially just results in an update to the respective local partition map. See [0062 - 0065] for full details). Kremer [Col. 21, lines 20 - 49] teaches that when authorities are transferred between storage nodes, the authority owners update entities in their authorities such that the mapping of entities and authorities are updated to reflect the changes, and if the updated entity IDs are hashed, respective authority IDs are then identified as previously taught in Kremer Col 16, line 49 – Col 17, line 40”).
It would have been obvious to a person of ordinary skill in the art before the effective filing date to combine the teaching of Manjanatha to the combination to show as evidence that in response to an overloaded virtual processor, a migration of a partition from the virtual processor to another may occur. A person having ordinary skill in the art would have been motivated to make this combination with a reasonable expectation of success to achieve load balancing, and allow users to access metadata that is physically closer to them to reduce latency times (Manjanatha [0030]). Together, Manjanatha with the combination teaches every limitation of the claimed invention. Since the teachings were analogous art known at the filing time of invention, one of ordinary skill could have applied said teachings to achieve expected results.
20. Claim 13 is rejected under 35 U.S.C. 103 as being unpatentable over Kremer in view of Tsirkin and Ogawa as applied to claims 1 above, and in further view of Gupta et al. Pat. No. US 11,226,905 B2 (hereafter Gupta).
21. Regarding claim 13, wherein the combination Kremer teaches creating a partition map; the mapping of entities to authorities (Col 16, line 11 – Col 17, line 57).
Kremer does not teach creating the map in response to the generation of receipt of a data bucket.
Gupta teaches creating bucket and allocating a region to a bucket, creating map entries such that it teaches the limitation “The non-transitory machine-readable storage medium of claim 1, wherein the instructions upon execution cause the processing system to: create the partition map in response to generation or receipt of the data bucket to be stored in the shared storage system (Col 14, lines 3-31).”
It would have been obvious to a person of ordinary skill in the art before the effective filing date to combine the teaching of Gupta to the combination to show as evidence that a map is created in response to adding, creating, or allocating a region for a bucket. A person having ordinary skill in the art would have been motivated to make this combination with a reasonable expectation of success to dynamically allocate buckets and maintain a consistent mapping. Together, Gupta with the combination teaches every limitation of the claimed invention. Since the teachings were analogous art known at the filing time of invention, one of ordinary skill could have applied said teachings to achieve expected results.
22. Claims 14-18 are rejected under 35 U.S.C. 103 as being unpatentable over Kremer et al. Pat. No. US 12,481,675 B2 (hereafter Kremer) in view of Tsirkin Pub. No. US 2016/0124763 A1 (hereafter Tsirkin), OGAWA et al. Pub. No. US 2023/0185489 A1 (hereafter Ogawa), Schlegel et al. Pub. No. US 202/0348933 A1 (hereafter Schlegel), and Sahni et al. Pub. No. US 2004/0141509 A1 (hereafter Sahni).
23. Claim 14 has similar limitations to claims 1 and 11 and is rejected for similar reasons. Claim 14 is directed towards “A system comprising: a cluster of computer nodes to execute a plurality of virtual processors, (Kremer, Col 25, lines 6-24)
wherein the cluster of computer nodes is to store: a first partition map that maps partitions of a first data bucket to a first subset of virtual processors, wherein portions of metadata for the first data bucket are divided across the partitions of the first data bucket,
and a second partition map that maps partitions of a second data bucket to a second subset of virtual processors, wherein portions of metadata for the second data bucket are divided across the partitions of the second data bucket; and a shared storage system accessible by the cluster of computer nodes to store data of the first and second data buckets (Kremer, Col 16, line 11 – Col 17, line 57 & Col 18, lines 31-43 & Col 20, lines 45-65 & Col 24, lines 3-12),
wherein a first virtual processor in the cluster of computer nodes is to: responsive to a request to access a first data object in the first data bucket, identify a first given partition of the partitions of the first data bucket that contains metadata for the first data object based on a first portion of a first key associated with the first data object, (Kremer Col 17, line 58 – Col 18, line 22)
and identify, based on the first given partition and using the first partition map, a virtual processor that has the metadata for the first data object, (Kremer, Col 16, line 49 – Col 17, line 40)
wherein a second virtual processor in the cluster of computer nodes is to: responsive to a request to access a second data object in the second data bucket, identify a second given partition of the partitions of the second data bucket that contains metadata for the second data object based on a second portion of a second key associated with the second data object, (Kremer Col 17, line 58 – Col 18, line 22)
wherein the second portion of the second key is of a different length than the first portion of the first key, (Sahni [0067, 0131, Figs. 6A, 6B, and 7])
and identify, based on the second given partition and using the second partition map, a virtual processor that has the metadata for the second data object (Kremer, Col 16, line 49 – Col 17, line 40).”
24. Claim 15 has similar limitations to claim 1 and is rejected for similar reasons. Claim 15 is directed towards “The system of claim 14, wherein a first computer node of the cluster of computer nodes is to: migrate the first virtual processor from the first computer node to a second computer node of the cluster of computer nodes, (Kremer, Col 21, lines 20-35)
and update a virtual processor-computer node map that maps the virtual processors of the first subset of virtual processors to corresponding computer nodes of the cluster of computer nodes, (Kremer, Col. 20, lines 14-29 & Col 25, lines 1-5 & Ogawa [0202])
wherein the first partition map remains unchanged in response to the migration of the first virtual processor from the first computer node to the second computer node (Kremer, Col 24, lines 50-67 – Col 25, lines 1-5).”
25. Regarding claim 16, wherein the combination, Schlegel teaches “The system of claim 14, wherein the first portion of the first key is a first prefix of the first key, and the second portion of the second key is a second prefix of the second, … , and the system further comprises: a memory to store configuration information specifying different … prefixes for different data buckets … key ([0043-0045] teaches a prefix hash table used to index all of the key values that are stored in the heap, different prefixes mapping to different suffix heap)”.
Schlegel does not explicitly teach of storing variable length prefixes within the prefix hash table.
Sahni teaches variable prefix lengths used to mapped to different address ranges such that it teaches the limitations “the first prefix having a first length, and the second prefix having a second length different from the first length … information specifying different lengths of prefixes for different data buckets ([0067-0077] teaches using FST to determine where to route a packet based on the length of the prefix, and each stage of bits of the prefix is used to go deeper into a tree/deeper level nodes. Prefixes are also represented as ranges defining an interval in order to route to their designated address destinations)”.
It would have been obvious to a person of ordinary skill in the art before the effective filing date to combine the teachings of Sahni to combination of Kremer, Tsirkin, Ogawa, and Schlegel to show as evidence that the prefix table of Schlegel may store prefixes of different lengths matching to different addresses. A person having ordinary skill in the art would have been motivated to make this combination with a reasonable expectation of success in order to efficiently group similar data objects, improve lookup efficiency, and enable memory efficiency (Shani [0073]). Together, the combination teaches every limitation of the claimed invention. Since the teachings were analogous art known at the filing time of invention, one of ordinary skill could have applied said teachings to achieve expected results.
26. Claim 17 has similar limitations to claim 6 and is rejected for similar reasons. Claim 17 is directed towards “The system of claim 14, wherein the identifying of the first given partition of the partitions of the first data bucket that contains metadata for the first data object is based on applying a hash function on the first portion of the first key associated with the first data object, and wherein the identifying of the second given partition of the partitions of the second data bucket that contains metadata for the second data object is based on applying the hash function on the second portion of the second key associated with the second data object (Kremer, Col 16, line 49 - Col 17, line 57 – Col 18 line 22).”
27. Claim 18 has similar limitations to claim 6 and is rejected for similar reasons. Claim 18 is directed towards “The system of claim 17, wherein the first portion of the first key is a first prefix of the first key, and the second portion of the second key is a second prefix of the second key (Schlegel [0058]).”
28. Claim 19 is rejected under 35 U.S.C. 103 as being unpatentable over Kremer et al. Pat. No. US 12,481,675 B2 (hereafter Kremer) in view of Tsirkin Pub. No. US 2016/0124763 A1 (hereafter Tsirkin), OGAWA et al. Pub. No. US 2023/0185489 A1 (hereafter Ogawa), and Gupta et al. Pat. No. US 11,226,905 B2 (hereafter Gupta), Sahni et al. Pub. No. US 2004/0141509 A1 (hereafter Sahni).
29. Claim 19 has similar limitations to claims 1 and 13, and is rejected for similar reasons. Claim 19 is directed towards “A method of a system comprising a hardware processor, comprising: (Kremer, Col 15, lines 49-59)
receiving a request to create a data bucket; (Gupta, Col 10, lines 57 – 67)
based on the request to create the data bucket, creating a partition map comprising a plurality of entries mapping partitions of the data bucket to respective virtual processors (Tsirkin [0025]) executed in a cluster of computer nodes (Kremer, Col. 20, lines 14-29) that are coupled to a shared storage system to store data of the data bucket (Kremer, Col 20, lines 45-65), wherein portions of metadata for the data bucket are divided across the partitions (Kremer, Col 18, lines 31-43);
receiving a request to access a data object in the data bucket (Kremer, Col 4, lines 64-67);
as a response to the request to access the data object in the data bucket, applying a function on a key associated with the data object to obtain a value identifying a partition of the partitions that contains metadata for the data object (Kremer, Col 17, line 21 – Col 18, line 22);
obtain, from an entry for the identified partition selected from the plurality of entries of the partition map, an identifier of a first virtual processor that has the metadata for the data object, the first virtual processor being a member of the virtual processors; (Kremer, Col 16, line 49 – Col 17, line 40
and providing, by the first virtual processor, information from the metadata for the data object for use in accessing the data object; and responsive to a migration of the first virtual processor of the virtual processors from a first computer node to a second computer node of the cluster of computer nodes (Kremer, Col 21, lines 20-35), updating a virtual processor-computer node map that maps the respective virtual processors to corresponding computer nodes of the cluster of computer nodes, (Kremer, Col 25, lines 1-5 & Ogawa [0202])
wherein the partition map remains unchanged in response to the migration of the first virtual processor from the first computer node to the second computer node (Kremer, Col 24, lines 50-67 – Col 25, lines 1-5).”
30. Claims 20 and 21 are rejected under 35 U.S.C. 103 as being unpatentable over Kremer, Tsirkin, OGAWA, and Gupta as used in claim 19 above, and in further view of Schlegel et al. Pub. No. US 2020/0348933 A1 (hereafter Schlegel) and Sahni et al. Pub. No. US 2004/0141509 A1 (hereafter Sahni).
31. Claim 20 has similar limitations to claims 8 and 16, and is rejected for similar reasons.
32. Regarding claim 21, it is similar to claim 11 and is rejected for similar reasons.
Conclusion
33. THIS ACTION IS MADE FINAL. 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.
34. Any inquiry concerning this communication or earlier communications from the examiner should be directed to BRANDON A NGUYEN whose telephone number is (571)272-6074. The examiner can normally be reached Mon-Fri (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, Aimee Li can be reached at (571) 272-4169. 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.
/BRANDON NGUYEN/Examiner, Art Unit 2195